Я пытаюсь классифицировать с помощью python. Я использую классификатор Naive Bayes MultinomialNB для веб-страниц (извлечение веб-формы данных в текст, позже я классифицирую этот текст: классификация в Интернете).
Теперь я пытаюсь применить PCA к этим данным, но python дает некоторые ошибки.
Мой код для классификации с Naive Bayes:
from sklearn import PCA
from sklearn import RandomizedPCA
from sklearn.feature_extraction.text import CountVectorizer
from sklearn.naive_bayes import MultinomialNB
vectorizer = CountVectorizer()
classifer = MultinomialNB(alpha=.01)
x_train = vectorizer.fit_transform(temizdata)
classifer.fit(x_train, y_train)
Эта классификация наивных заливов дает результат:
>>> x_train
<43x4429 sparse matrix of type '<class 'numpy.int64'>'
with 6302 stored elements in Compressed Sparse Row format>
>>> print(x_train)
(0, 2966) 1
(0, 1974) 1
(0, 3296) 1
..
..
(42, 1629) 1
(42, 2833) 1
(42, 876) 1
Чем я пытаюсь применить PCA к своим данным (temizdata
):
>>> v_temizdata = vectorizer.fit_transform(temizdata)
>>> pca_t = PCA.fit_transform(v_temizdata)
>>> pca_t = PCA().fit_transform(v_temizdata)
но это поднимает следующие erros:
raise TypeError ('Разрешенная матрица передана, но плотная' TypeError: A была разрешена разреженная матрица, но необходимы плотные данные. Использовать X.toarray() для преобразования в плотный массив numpy.
Преобразую матрицу в матрицу densematrix или numpy. Затем я попытался создать новую densematrix, но у меня есть ошибка.
Моя основная цель заключается в том, что тест PCA влияет на классификацию текста.
Преобразовать в плотный массив:
v_temizdatatodense = v_temizdata.todense()
pca_t = PCA().fit_transform(v_temizdatatodense)
Наконец, попробуйте classfy:
classifer.fit(pca_t,y_train)
ошибка для final classfy:
повысить значение ValueError ( "Вход X должен быть неотрицательным" ) ValueError: Input X должен быть неотрицательным
С одной стороны мои данные (temizdata
) помещаются только в Naive Bayes, с другой стороны temizdata
сначала помещаются в PCA (для уменьшения входов), чем классифицируются.
__