¿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. __