Fit_transform()およびtransform()



Fit_transform Transform



Python Machine Learning and Practiceでコードを入力したとき、データの前処理に関係するfit_transform()関数とtransform()関数の違いは非常にあいまいです。多くの情報を確認しました。




これら2つの関数に関連するコードは次のとおりです。

  1. # Import StandardScaler from sklearn.preprocessing
  2. from sklearn.preprocessing import StandardScaler
  3. # Standardize the data to ensure that the variance of the feature data of each dimension is 1 and the mean is 0, so that the prediction result will not be dominated by the eigenvalues ​​of some dimensions.
  4. ss = StandardScaler()
  5. # fit_transform() first fit the data, then standardize
  6. X_train = ss.fit_transform(X_train)
  7. # transform()Data standardization
  8. X_test = ss.transform(X_test)

これら2つの関数のAPIとパラメーターの意味を見てみましょう。

1、fit_transform()関数




つまり、fit_transform()の役割は、最初にデータを適合させてから、それを標準形式に変換することです。

2、変換()関数




つまり、tranform()の役割は、中心を見つけてスケーリングすることによって標準化することです。


ここに着くと、名前の違いと同じように、2つの違いを知っているようです。前者には適合データのステップがありますでは、データを正規化するときにfit_transform()関数を使用してみませんか?

その理由は次のとおりです。

データの正規化(固有値の分散が1で平均が0の場合)の場合、固有データの平均μと分散σ^ 2を計算してから、次の式を使用して正規化する必要があります。


トレーニングセットでfit_transform()を呼び出し、実際にそれを見つけました。平均μそして分散σ^ 2、つまり、変換ルールが見つかりましたこのルールはトレーニングセットで使用します。同様に、テストセット(または相互検証セット)に直接適用できるため、テストセットの処理では、データを再フィッティングせずにデータを正規化するだけで済みます。 。写真を使用して、次のことを示します。


(画像ソース: クリックしてリンクを開きます )。