Sto tentando di utilizzare kaggle.com's digit recognizer competition utilizzando Python e scikit-learn.Dimensione dei dati prima e dopo l'esecuzione di PCA
Dopo aver rimosso le etichette dai dati formazione, aggiungo ogni riga CSV in una lista come questa:
for row in csv:
train_data.append(np.array(np.int64(row)))
faccio lo stesso per i dati di test.
ho pre-processo di questi dati con PCA al fine di eseguire la riduzione dimensione (e estrazione delle caratteristiche?):
def preprocess(train_data, test_data, pca_components=100):
# convert to matrix
train_data = np.mat(train_data)
# reduce both train and test data
pca = decomposition.PCA(n_components=pca_components).fit(train_data)
X_train = pca.transform(train_data)
X_test = pca.transform(test_data)
return (X_train, X_test)
Ho quindi creare un classificatore kNN e in forma con i dati X_train
e fare previsioni utilizzando il X_test
dati.
Utilizzando questo metodo, è possibile ottenere un'accuratezza del 97%.
La mia domanda riguarda la dimensionalità dei dati prima e dopo PCA viene eseguita
Quali sono le dimensioni di train_data
e X_train
?
In che modo il numero di componenti influenza la dimensionalità dell'output? Sono la stessa cosa?