私はkaggle.com's digit recognizer competitionをPythonとscikit-learnを使って試しています。PCA実行前後のデータサイズ
トレーニングデータからラベルを除去した後、私はこのようなリストにCSV内の各行を追加します。
for row in csv:
train_data.append(np.array(np.int64(row)))
私は、テストデータのために同じことを行います。 (?と特徴抽出):
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)
私は、k最近傍分類器を作成し、X_train
たデータを使ってフィットし、使用して予測を行う
私は、次元削減を実行するために、PCAを使用してこのデータを前処理しますX_test
データ。
この方法を使用すると、約97%の精度が得られます。
私の質問は、PCAの前と後のデータの次元についてですが
を行いtrain_data
とX_train
の大きさは何ですか?
コンポーネントの数は出力の次元にどのように影響しますか?彼らは同じことですか?