機械学習に次元削減を取り入れたいと考えています。
そこで、以下のように訓練データとテストデータを分ける際に分ける前に次元削減を行うべきか分けてから次元削減を行うべきか混乱しています。
個人的には、分けてから次元削減を行う方がシステムの都合上便利なのですが、
やはり、データ全体の相関をみて次元削減しないといけないことから次元削減を行ってから訓練データとテストデータに分けないといけないのでしょうか。
Python
1#分けてからの次元削減 2#機械学習に用いるデータ 3train_feature = pd.concat([feature_df01, feature_df02, feature_df03]) 4train_feature = train_feature.sample(frac=1, random_state=0).reset_index(drop=True) 5 6#訓練データ 7X_train = train_feature.ix[:119, 1:] 8y_train = train_feature.ix[:119, 0] 9 10#テストデータ 11X_test = train_feature.ix[120:134, 1:] 12y_test = train_feature.ix[120:134, 0] 13 14#次元削減(1) 15lda = LDA(n_components=2) 16lda.fit(X_train, y_train) 17X_train = lda.transform(X_train) 18 19lda = LDA(n_components=2) 20lda.fit(X_test, y_test) 21X_test = lda.transform(X_test)
Python
1#次元削減を行ってから分ける 2#機械学習に用いるデータ 3train_feature = pd.concat([feature_df01, feature_df02, feature_df03]) 4train_feature = train_feature.sample(frac=1, random_state=0).reset_index(drop=True) 5 6#次元削減(2) 7lda = LDA(n_components=2) 8lda.fit(train_feature, feature_label) 9X_train = lda.transform(train_feature) 10 11#訓練データ 12X_train = train_feature.ix[:119, 1:] 13y_train = train_feature.ix[:119, 0] 14 15#テストデータ 16X_test = train_feature.ix[120:134, 1:] 17y_test = train_feature.ix[120:134, 0]
よろしくお願いいたします。

回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。