¿Es posible aplicar PCA en cualquier clasificación de texto?

Estoy intentando una clasificación con python. Estoy usando el clasificador Naive Bayes MultinomialNB para las páginas web (Recuperando datos de la web a texto, luego clasifico este texto: clasificación web).

Ahora, estoy tratando de aplicar PCA en estos datos, pero Python está dando algunos errores.

Mi código para la clasificación con 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)

Esta ingenua clasificación de bayes da ese resultado:

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

De lo que trato de aplicar PCA en mis datos (temizdata):

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

pero esto plantea los siguientes errores:

raise TypeError ('Se pasó una matriz dispersa, pero densa' TypeError: Se pasó una matriz dispersa, pero se requieren datos densos. Utilice X.toarray () para convertir a una matriz numpy densa.

Convierto la matriz en matriz densa o matriz numpy. Luego traté de clasificar la nueva matriz densa, pero tengo un error.

Mi objetivo principal es probar el efecto PCA en la Clasificación en el texto.

Convertir a matriz densa:

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

Finalmente intente classfy:

classifer.fit(pca_t,y_train)

error para classfy final:

raise ValueError ("La entrada X debe ser no negativa") ValueError: La entrada X debe ser no negativa

Por un lado mis datos (temizdata) se coloca solo en Naive Bayes, en el otro ladotemizdata en primer lugar poner en PCA (para reducir entradas) que clasificar. __

Respuestas a la pregunta(2)

Su respuesta a la pregunta