Мне нужна коррекция в моей наивной байесовской визуализации - PullRequest
1 голос
/ 30 октября 2019

Я построил наивную байесовскую модель, и у меня возникли проблемы с визуализацией, поскольку она показывает ошибку Error ValueError: операнды не могут быть переданы вместе с фигурами (60000,2) (533,) два - просто пример с 22переменные с двумя выходными данными наблюдения

from matplotlib.colors import ListedColormap
X_set, y_set = X_train, y_train
X1, X2 = np.meshgrid(np.arange(start = X_set[:, 0].min() - 1, stop = X_set[:, 0].max() + 1, step = 0.01),
                     np.arange(start = X_set[:, 1].min() - 1, stop = X_set[:, 1].max() + 1, step = 0.01))
plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape),
             alpha = 0.75, cmap = ListedColormap(('red', 'green')))
plt.xlim(X1.min(), X1.max())
plt.ylim(X2.min(), X2.max())
for i, j in enumerate(np.unique(y_set)):
    plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],
                c = ListedColormap(('red', 'green'))(i), label = j)
plt.title('Classifier (Training set)')
plt.xlabel('xxx')
plt.ylabel('xxxxxx')
plt.legend()
plt.show()

Моя ошибка теперь из этой строки

plt.contourf(X1, X2, classifier.predict(np.array([X1.ravel(), X2.ravel()]).T).reshape(X1.shape)

Сообщение: ValueError: операнды не могут быть переданы вместе с фигурами (92600,2) (533,)

x1, x2, где мои результаты после выполнения операции np.meshgrid и их формы. То же самое относится и к x_train и x_test. Я сделал x_set только потому, что я мог выполнить то же самое снова и сделать общий код

Небольшая история о моих данных: я работаю с классификацией данных текстов с контролируемой моделью машинного обучения - так что я нарисовал этотестовый образец и создал матрицу условий документа для моей модели. сделал предсказания, но я просто хочу сделать визуализацию.

Пожалуйста, если есть какие-либо предложения по любому другому способу визуализации, я буду более чем доволен

Я также применил KPCA и использовал 2основные компоненты. это также выкинуло и ошибка

 plt.scatter(X_set[y_set == j, 0], X_set[y_set == j, 1],

IndexError: too many indices for array

вот пример кода от создания мешка слов модель

# Creating the Bag of Words model
#countvectorizer

vectorizer = CountVectorizer(max_features = 1500)
#the corpus is an array list of processed texts with each row containing alphabeths
#total array length 22 
data_Vectorizer = vectorizer.fit_transform(corpus)
#data_dtm now transformed into an array of length 22 and 533 columns
data_dtm = DataFrame(data_Vectorizer.toarray(),columns = vectorizer.get_feature_names())
#the x is an array with numbers either 0 or 1  with length 22,1 column
y = x 


# Splitting the dataset into the Training set and Test set
from sklearn.model_selection import train_test_split
X_train, X_test, y_train, y_test = train_test_split(data_dtm, y, test_size = 0.20, random_state = 0)
#Xtrain (17,533)
#Xtest (5,533)
#ytrain (17,1)
#ytest (5,1)

from sklearn.preprocessing import StandardScaler
sc = StandardScaler()
X_train = sc.fit_transform(X_train)
X_test = sc.transform(X_test)

from sklearn.decomposition import KernelPCA
kpca = KernelPCA(n_components = 2, kernel = 'rbf')
X_train = kpca.fit_transform(X_train)
X_test = kpca.transform(X_test)


# Fitting Naive Bayes to the Training set with GaussianNB
from sklearn.naive_bayes import GaussianNB
classifier = GaussianNB()
classifier.fit(X_train, y_train)
# Predicting the Test set results
y_pred = classifier.predict(X_test)

# Making the Confusion Matrix
from sklearn.metrics import confusion_matrix
cm = confusion_matrix(y_test, y_pred)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...