01.3
数値データ前処理
まとめ
この章は、数値の列をモデルに渡す前に整える 4 種類の処理を扱います。スケーリングでは
StandardScaler(平均 0・分散 1)、MinMaxScaler(0〜1)、RobustScaler(中央値と IQR)の 3 つを同じデータで比べ、k-NN や SVM のように距離を使うモデルでなぜ必須になるかを確認します。分布変換では右に裾を引いた列を Box-Cox・Yeo-Johnson 変換で対称に近づけ、ビニングでは pandas.cut・pandas.qcut で連続値を区間に区切ります。最後に Hotelling の T^2 と Isolation Forest で外れ値に異常ラベルを付ける手順を Python で追います。直感 #
「数値ならそのまま使える」と思われがちですが、身長 cm と年収 万円を並べて k-NN に渡すと距離は年収の差だけで決まり、年収の外れ値が 1 人いるだけで MinMaxScaler の 0〜1 の目盛りが崩れます。右に裾を引いた売上の列は線形回帰の係数を少数の大きな値に引っぱらせ、連続値のままでは「所得五分位」のような説明しやすい区分も作れません。この章では、モデル種別(線形・木・ニューラルネット)に応じてどのスケーリングを選ぶか、どの分布変換・離散化・外れ値処理をパイプラインに組み込むかを、1 手法 1 ページで確認します。
詳細な解説 #
このチャプターで学べること #
- ビニング(
pandas.cut/pandas.qcut)による数値の離散化と、連続値のままで扱う場合の判断基準 - StandardScaler / MinMaxScaler / RobustScaler の特性比較と選択指針
- Box-Cox 変換・Yeo-Johnson 変換の適用条件と値域の制約
- Hotelling の T^2 統計量や Isolation Forest による異常値検知とラベル付与
これがわかるとできること #
- モデル種別(線形 / ツリー / NN)に応じた前処理ポリシーを設計できる
- 外れ値を除外・補正する際の根拠を \(\chi^2\) の閾値や経路長スコアで定量的に説明できる
- スケーラーや変換器を
Pipelineに組み込み、fitで覚えた統計量を推論環境で再利用できる
学習の進め方 #
まず ビニング で、数値を区切って離散化する処理と連続値のまま扱う処理の違いを比べます。次に StandardScaler・MinMaxScaler・RobustScaler を同じ図の形(ヒストグラム・散布図・箱ひげ図)で読み、スケーリングの基本を押さえます。続けて Box-Cox と Yeo-Johnson で、歪んだ分布を正規分布に近づける \(\lambda\) の推定を理解します。最後に Hotelling の T^2 と Isolation Forest で、外れ値にラベルを付けて処理方針を決める手順を身に付けます。