é possível aplicar PCA em qualquer classificação de texto?

Estou tentando uma classificação com python. Estou usando o classificador Naive Bayes MultinomialNB para as páginas da web (Recuperando o formulário da Web para texto, depois classifico este texto: classificação da Web).

Agora, estou tentando aplicar o PCA nesses dados, mas o python está dando alguns erros.

Meu código para classificação com 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)

Essa classificação ingênua de bayes fornece essa saída:

>>> 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

Depois tento aplicar o PCA nos meus dados (temizdata):

>>> v_temizdata = vectorizer.fit_transform(temizdata)
>>> pca_t = PCA.fit_transform(v_temizdata)
>>> pca_t = PCA().fit_transform(v_temizdata)

mas isso gera os seguintes erros:

raise TypeError ('Uma matriz esparsa foi passada, mas densa' TypeError: Uma matriz esparsa foi passada, mas são necessários dados densos. Use X.toarray () para converter em uma matriz numpy densa.

Eu converto matriz em matriz densa ou matriz numpy. Então tentei classificar o novo densematrix, mas tenho um erro.

Meu principal objetivo é testar o efeito PCA na classificação do texto.

Converter em matriz densa:

v_temizdatatodense = v_temizdata.todense()
pca_t = PCA().fit_transform(v_temizdatatodense)

Finalmente tente classfy:

classifer.fit(pca_t,y_train)

erro para a classe final:

raise ValueError ("A entrada X deve ser não negativa") ValueError: a entrada X deve ser não negativa

De um lado, meus dados (temizdata) é colocado apenas em Naive Bayes, do outro ladotemizdata primeiro coloque no PCA (para reduzir entradas) do que classifique. __

questionAnswers(2)

yourAnswerToTheQuestion