Domanda

ho postato la mia domanda su stack overflow, ma c'è qualcuno che ha suggerito che dovrei provare qui. Quello che sto facendo ora :)

OK, in primo luogo i miei dati. Ho una matrice frequenza word-bi-gram (1100 x 100.658, dtype = int), dove i primi 5 colonne contengono informazioni sul documento. Così ogni riga è un documento e ogni colonna di una parola-bi-gram, come (of-the, on-the e-che, ...). Voglio visualizzare i dati, ma prima di farlo, io voglio ridurre la dimensione. Così ho pensato che faccio con PCA da sklearn. In primo luogo ho impostato le etichette delle colonne con

myPandaDataFrame.columns = word-bi-grams

poi ho cancellato alcuni doc-colonne, perché voglio vedere che tipo di informazioni posso ottenere se guardo solo alla professionalità.

del existing_df['SUBSET']
del existing_df['PROMPT']
del existing_df['L1']
del existing_df['ESSAYID']

poi ho impostato la colonna competenza per essere l'indice con il

myPandaDataFrame.columns.set_index(['PROFICIENCY'], inplace=True, drop=True)

e poi ho fatto questo

from sklearn.decomposition import PCA
x = 500
pcax = PCA(n_components=x)
pcax.fit(myPandaDataFrame)
PCA(copy=True, n_components=x, whiten=False)
existing_2dx = pcax.transform(myPandaDataFrame)
existing_df_2dx = pandas.DataFrame(existing_2dx)
existing_df_2dx.index = myPandaDataFrame.index
existing_df_2dx.columns = ['PC{0}'.format(i) for i in range(x)]

Ma con questa implementazione posso impostare solo 1100 n_components come massimo. Questo è il numero di documenti (righe). Questo mi fa sospetto. Ho provato un paio di esempi / tutorial, ma non riesco a farlo bene. Quindi spero che qualcuno possa aiutarmi a scoprire quello che sto facendo male? Se sarebbe anche molto contento di un buon esempio / tutorial che mi può aiutare con il mio problema. Grazie.

Con i migliori saluti.

È stato utile?

Soluzione

Dato m righe di n colonne, penso che sia naturale pensare dei dati come n-dimensionale. Tuttavia la dimensione intrinseca d dei dati può essere inferiore; d <= n. d è la posizione di m x n matrice che si potrebbe formare dai dati. La dimensionalità dei dati può essere ridotto a d senza perdita di informazioni, anche. Lo stesso vale per le righe realtà, che è meno intuitiva ma vero; d <= m. Quindi, si fa sempre senso di ridurre la dimensionalità a qualcosa di <= d perché non c'è nessuna perdita; Noi di solito ridurre molto di più. Questo è il motivo per cui non ti consente di ridurre al più rispetto al numero di righe.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
scroll top