目次

予測精度最大化(βver)

概要

  • 「予測精度最大化」は、前処理、モデル学習をワンストップで行う機能です。また、各前処理、モデルのハイパーパラメータのチューニングも同時に行い、自動で精度を最大化することができます。
  • 結果は総当たりの結果、最も精度がよかったパターンで機械学習モデルを構築します。

入出力

入力

  • データ(目的変数1列と説明変数1列以上)

出力

  • 機械学習モデル
  • データ(チューニング結果)
  • データ(特徴量名)
    • チューニング結果中、最も精度がよかったパターンで使用された説明変数一覧

サンプル

社員の退職予測を行う

仕様補足

前処理の設定

処理は設定した順番に実行される。例えば

  • 分散が小さい特徴量を除外
  • 主成分分析(PCA)

の順で設定すると、分散が小さい特徴量の列が除外されたデータに対して、主成分分析が実行される。

機械学習のパラメータチューニングの仕組み

チューニングメニュー

  • グリッドサーチ:全組合わせを実行して一番精度のよいものを選択する。
  • ランダムサーチ:全組合わせからランダムにパラメータセットを選択しそのなかで精度のよいものを選択する。(パラメータの組み合わせが膨大になる場合は、ランダムサーチを行うことで探索時間の短縮が見込める。)

ただし、その場合全組み合わせを探索するわけではないので局所最適に陥る可能性がある。ゆえに裏側ではデータセットの分割数を5に設定した場合は下記の手順でクロスバリデーション(交差検証)を行う。

  1. 学習データを5分割し、そのうち1つのデータセットを検証データ、残りの4つを仮の学習データとする
  2. 仮の学習データで前処理・モデル学習を行う
  3. 2で作成したモデルで1で作成した検証データを予測し、精度を測る。精度の算出方法は後述する。

上記の1~3の流れを検証データと学習データを順番に入れ替えて実行し(5分割の場合は5回実行する)、各実行ごとの精度の平均を計算する。

これを探索パラメータセットに対して実行し、平均精度が最も良かったパラメータセットを選択する。

最後に最良パラメータセットで全学習データでモデルを再学習し、最良モデルとする。

精度の算出方法

精度の算出方法は、予測値の種類によって異なり、連続値の場合は決定係数(R2 score)、カテゴリ変数の場合は正解率(Accuracy)を採用している。

決定係数はモデルの当てはまりの良さを示す指標で、最も当てはまりが良い場合1となる。

正解率は予測値が正しかったデータの割合で、すべての予測が正しかった場合1となる。

「予測精度最大化」では下記4つの精度指標をチューニング結果として出力する。

  • 検証データでの精度(平均): 各クロスバリデーションごとに検証データを予測した際の精度の平均値
  • 検証データでの精度(標準偏差): 各クロスバリデーションごとに検証データを予測した際の精度の標準偏差
  • 学習データでの精度(平均): 各クロスバリデーションごとに学習データを予測した際の精度の平均値
  • 学習データでの精度(標準偏差): 各クロスバリデーションごとに学習データを予測した際の精度の標準偏差

最良のパラメータセットの決定には「検証データでの精度(平均)」を用いている。

精度数値から得られる示唆

基本的には検証データの精度に注目すればよいが、たとえば検証データでの精度と学習データでの精度にあまりにも乖離がある場合はモデルの汎化性能がよくない証拠なので最適なパラメータセットが探索範囲に含まれていない可能性や、特徴量が足りていない可能性がある。

(学習データの精度は、モデルを作成したデータと予測するデータが同じなので一般に検証データでの精度を上回る。)

また精度の標準偏差が大きい場合は、データに偏りがある可能性があるのでデータの分割数を増やしてみるなど、そもそも目的変数に対するデータ数のバラツキを「不均衡データに対するサンプリング」で補正するなどで改善する可能性がある。

この記事は役に立ちましたか?
はい いいえ
この記事は役に立ちましたか?
はい いいえ