Wymiar danych przed i po wykonaniu PCA
PróbujęKonkurs na rozpoznawanie cyfr kaggle.com przy użyciu Pythona i scikit-learn.
Po usunięciu etykiet z danych treningowych dodaję każdy wiersz w CSV do listy w następujący sposób:
for row in csv:
train_data.append(np.array(np.int64(row)))
Robię to samo dla danych testowych.
Wstępnie przetwarzam te dane za pomocą PCA w celu przeprowadzenia redukcji wymiarów (i ekstrakcji funkcji?):
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)
Następnie tworzę klasyfikator kNN i dopasowuję go doX_train
dane i przewidywania za pomocąX_test
dane.
Dzięki tej metodzie mogę uzyskać około 97% dokładności.
Moje pytanie dotyczy wymiarów danych przed i po przeprowadzeniu PCA
Jakie są wymiarytrain_data
iX_train
?
Jak liczba elementów wpływa na wymiarowość wyniku? Czy są tym samym?