fit&transformとfit transformの違い
2268 ワード
ずっと
機械学習を開始するとき、いくつかのコードを参考にして、データセットの分離、学習-変換コードが少し異なることを発見しました.これらのコードの間にどんな違いがあるか知りたいです.
ビッグデータ分析記事を準備している初心者なので、気軽に読んでほしいです.
なぜ fit()とtransform()を同時に使用するのか
これは、学習データセットでfit()で変換の基礎設定を設定し、それに基づいて学習データの変換()を行い、学習データで設定した変換の基礎設定を直接テストデータに適用するためである. すなわち、()学習データセットに適合するScalerを用いて試験データを変換する場合、試験データから()を再フィッティングする必要はなく、このScalerを用いて変換()を実行する必要がある.
例1
トレーニングデータの変換基準でテストセットに適用する必要があります.
例1に示すように、データセットが切断された後にfit transform()を列車に入れるか、testにのみ変換を適用して実行を続行する
例2に示すように、データセット全体をスケーリングし、データセットを分離する
例2のようなデータは少ないので、例1のようにすると便利です.
リファレンス
https://subinium.github.io/MLwithPython-3-3/
機械学習を開始するとき、いくつかのコードを参考にして、データセットの分離、学習-変換コードが少し異なることを発見しました.これらのコードの間にどんな違いがあるか知りたいです.
ビッグデータ分析記事を準備している初心者なので、気軽に読んでほしいです.
これは、学習データセットでfit()で変換の基礎設定を設定し、それに基づいて学習データの変換()を行い、学習データで設定した変換の基礎設定を直接テストデータに適用するためである.
例1
# 붓꽃 데이터 세트를 로딩합니다.
iris = load_iris()
iris_data = iris.data
iris_label = iris.target
X_train, X_test, y_train, y_test = train_test_split(iris_data, iris_label, test_size=0.2, random_state=2)
# MinMaxScaler() Scaler객체 생성.
scaler = MinMaxScaler()
# 학습 데이터에 대해서 fit(), transform() 수행.
scaler.fit(X_train)
scaled_X_train = scaler.transform(X_train) # ---> scaled_X_train = scaler.fit_transform(X_train) 과 같이 한 라인으로 대체 될 수 있습니다.
# 테스트 데이터에서는 다시 fit(), fit_transform()을 수행하지 않고 transform만 수행.
scaled_X_test = scaler.transform(X_test)
lr = LogisticRegression()
lr.fit(scaled_X_train, y_train)
pred = lr.predict(scaled_X_test)
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred))
예측 정확도: 0.9333
例2# 붓꽃 데이터 세트를 로딩합니다.
iris = load_iris()
iris_data = iris.data
iris_label = iris.target
# MinMaxScaler() Scaler객체 생성.
scaler = MinMaxScaler()
# 학습 데이터, 테스트 데이터로 나누기 전에 fit_transform()을 이용해 변환
scaled_iris_data = scaler.fit_transform(iris.data)
# scale된 iris_data로 학습과 테스트 데이터를 나눔.
X_train, X_test, y_train, y_test = train_test_split(scaled_iris_data, iris_label,
test_size=0.2, random_state=2)
lr = LogisticRegression()
lr.fit(scaled_X_train, y_train)
pred = lr.predict(scaled_X_test)
print('예측 정확도: {0:.4f}'.format(accuracy_score(y_test,pred)))
예측 정확도: 0.9333
n/a.結論トレーニングデータの変換基準でテストセットに適用する必要があります.
例1に示すように、データセットが切断された後にfit transform()を列車に入れるか、testにのみ変換を適用して実行を続行する
例2に示すように、データセット全体をスケーリングし、データセットを分離する
例2のようなデータは少ないので、例1のようにすると便利です.
リファレンス
https://subinium.github.io/MLwithPython-3-3/
Reference
この問題について(fit&transformとfit transformの違い), 我々は、より多くの情報をここで見つけました https://velog.io/@classe55/fittransformテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol