Closed6

ロジスティック回帰における数値カラムの特徴量エンジニアリング

みはなだみはなだ

概要・目的

ロジスティック回帰で連続値を扱うときに、スケールを合わせるために標準化がよく利用される。
ここで対象の特徴量を量子化し、カテゴリ変数のOnehotエンコーディングをすることで非線形な予測が可能になると期待できる。

ただし、量子化を行うには粒度とそれぞれの幅を決める必要がある。
この量子化の仕方を最適化したい。

みはなだみはなだ

方針

最適化する必要があるパラメータは

  1. 量子化の粒度
  2. 量子化の幅

の2つ。
それぞれのパラメータをoptunaで最適化することを考える。

やりたいことはベクトルの範囲内で閾値を選び、選んだ閾値ごとに値を揃えること。
この時の閾値の数・値を最適化したい。

課題

やりたいことに対して、このままではoptunaで探索の設計をすることができなかった。

optunaでtrial.suggest_inttrial.suggest_floatを利用することで決められた範囲内で値を選ぶことができる。
ただし、提案される値は1つであり複数個選び出すことはできない。
また、optunaは変数を指定しその変数ごとに値の探索を行う。そのため今回のように、順番のない変数の組み合わせを作成するための設計が難しい。

対策

分割数をもとに閾値を計算するアルゴリズムを考える.
その上で、

  1. アルゴリズム
  2. 分割数

をoptunaで最適化する。

アルゴリズムとして、以下の二つを考えた。もっといい方法あるかもしれない。

  1. n分位数での等分
  2. 特徴量に含まれる最大値最小値を元にn等分
みはなだみはなだ

環境

検証方法

基準となるモデルを作り、最適化により精度が改善するか比較する。

モデルの種類 カテゴリ特徴量 数値特徴量
Baseline OneHot Encoding 標準化 + Null埋め(0)
Optuna Optimizedモデル OneHot Encoding optunaで最適化して量子化 + OneHot Encoding
みはなだみはなだ

アメリカの年収はそのままでもAUC0.9くらいあるので下に変更.
カテゴリカルな特徴量がないので実装しやすい

検証方法

基準となるモデルを作り、最適化により精度が改善するか比較する。

モデルの種類 数値特徴量
Baseline 標準化 + Null埋め(0)
Optuna Optimizedモデル optunaで最適化して量子化 + OneHot Encoding
このスクラップは2023/05/06にクローズされました