Upgrade to Pro — share decks privately, control downloads, hide ads and more …

特徴量エンジニアリング_vol.1.pdf

Avatar for Haruhisa Kimoto Haruhisa Kimoto
November 26, 2023
39

 特徴量エンジニアリング_vol.1.pdf

Avatar for Haruhisa Kimoto

Haruhisa Kimoto

November 26, 2023
Tweet

Transcript

  1. 2. 数値データの扱い 数値データで確認すべきこと • その値に意味があるか 必要な粒度はどのくらい? • 取りうる範囲  最小値は?最大値は? ◦ 入力のスケールに、出力のスケールが影響を受けるもの ▪

    モデルが滑らかな関数として表現される場合 ▪ ユークリッド距離を使用するモデル ▪ k-means, kNN, RBFカーネル ◦ 入力のスケールに、出力のスケールが影響を受けないもの ▪ 論理関数 ▪ 決定木系モデル • データの分布 正規分布に従っている? ◦ 線形回帰モデルは誤差が正規分布に従うことを仮定
  2. 2. 数値データの扱い カウントデータの取り扱い • カウントデータの特徴 ◦ 発生頻度 ◦ 非負の整数 ◦

    ゼロ周辺に集中し、右に裾を引いた形 ◦ ポアソン分布で表すことが多い • 扱い方 ◦ 数値をそのまま使う ◦ 有無を示す二値データに変換する → 二値化 ◦ 粒度を荒くする → 離散化
  3. 2. 数値データの扱い カウントデータの取り扱い 線形モデルの場合には、1にも1000にも同じ係数をかけることになる。。。 ユークリッド距離を測る場合にも、大きな値が問題を起こす。。。 二値化 • 0と1以上のもので分ける ◦ カウントデータは0付近に偏るが、極端に大きい値を取ることもある

    ◦ 機械学習モデルは大きな値に引っ張られて、正確な予測ができなくなる 離散化 • カウントを固定幅によって階級にグループ化する(年齢など) ◦ 一定の階級幅、10の累乗によるグループ化 ◦ カウントデータに大きなギャップがあると空の階級ができてしまう。。。 • カウントを分位数によって階級にグループ化する ◦ データ数を均等に分ける(中央値、四分位数)  → データの分布から階級を決める
  4. 2. 数値データの扱い 対数変換 対数変換  • スケールが大きい時はその範囲を縮小 • スケールが小さい時はその範囲を拡大 正の数値データが裾の重い分布を持つ場合に使うと良い! 小さな数値の領域への集中が緩和される!

    ※プロットを見てモデルにとって良い特徴量であるかを確認する必要あり 対数変換と平方根変換の一般化 ・・・  Box-Cox変換 最尤法を使用することで変換後のデータが正規分布に近づけることができる ※確率プロットで経験分布と理論分布を比較するとわかりやすい
  5. 2. 数値データの扱い スケーリングと正規化 • Min-Maxスケーリング ◦ 特徴量の値を[0, 1]の範囲に縮小する。 • 標準化

    ◦ 特徴量の平均が0、分散が1になる • l2正規化 ◦ 特徴量のノルムが1になる。 ◦ ※l2正則化ではない
  6. 2. 数値データの扱い 交互作用特徴量 • メリット ◦ 精度が上がる場合がある • デメリット ◦

    学習コストが増大する ◦ 線形モデルの学習時間とテストスコア算出時間はO(n)からO(n^2)に増大する デメリットを解消するには、次に説明する「特徴選択」が有効な場合がある!
  7. 2. 数値データの扱い 特徴選択 • フィルタ法 ◦ 閾値を使用して、有用ではない特徴量を削除する手法 ◦ 特徴量とターゲット変数の相関や相互情報量を確認 する

    ◦ 計算コストが小さい ◦ モデルにとって良い特徴量であるかは不明  → 有用な特徴量を削除してしまう 可能性 • ラッパー法 ◦ 特徴量の一部を使用してモデルを学習して評価 する ◦ モデルをブラックボックスとして使う ◦ 計算コストが大きい ◦ 有用な特徴量を削除することを防ぐ • 組み込み法 ◦ モデルの学習プロセスに特徴量選択が組み込まれている こと → 決定木、L1正則化 ◦ ラッパー法よりも結果の品質は劣る ◦ 計算コストが少ない ◦ 計算コストと精度のバランスの良い手法