🎓
モデルの精度を上げるには
はじめに学習データの改善特徴量を追加する・除去するNode-AI での実践例正規化するNode-AI での実践例外れ値を含む区間を除去するNode-AI での実践例周期性を考慮して時間窓を変更するNode-AI での実践例モデルの改善ハイパーパラメータを変更するNode-AI での実践例他のモデルを使うNode-AI での実践例最新の記事
はじめに
「モデルの評価までは一通りできるようになったけど、次に何をすればいいんだろう?」
本記事では、そのような悩みをお持ちの方に、予測モデルの精度をさらに向上させるためのアイデアをいくつかご紹介します。
Node-AI での実践例も合わせて掲載しているので、ぜひ活用してみましょう。
学習データの改善
特徴量を追加する・除去する
AI による予測を効果的に行う上で、予測に必要な特徴量(説明変数)を吟味して、適切な追加・除去・変換することは重要な作業です。これは一般に特徴量エンジニアリングと呼ばれています。
例えば、アイスクリーム店が、過去のデータをもとに次週の売上を予測する場合を考えます。このとき
- 日中の方が夜間よりもアイスクリームが売れる
- 土日の方が平日よりもアイスクリームが売れる
- 祝日はアイスクリームが売れる
逆に、予測に関係のない特徴量や、似たような特徴量を除去する(説明変数として使わない)ことでも、モデルの予測精度が向上する可能性もあります。
Node-AI での実践例
データ可視化 - 相関分析 カードを使うことで、目的変数と、ある説明変数の相関を可視化できます。
これにより、相関係数の低い説明変数を外して新しいモデルを構築してみよう、という次の手を打つことができます。
これにより、相関係数の高い 2 つの説明変数のどちらかを外して新しいモデルを構築してみよう、という次の手を打つことができます。
より高度な分析として、目的変数に対する説明変数の「重要度」を可視化するデータ可視化 - 重要度可視化 カードも提供されています。このカードは上とは異なり、非線形な関係(相関では表せない関係)も検出できます。
重要度が低い説明変数を除去するという使い方ができるほか、説明変数同士の類似度も計算できるため、類似した説明変数のどちらかを除外するという使い方もできます。
特徴量エンジニアリングの考え方はとても大切なので、以下のコラムでも詳しく解説しています。
適切な特徴量を考えてみた(1)2024/8/21 5:572024/9/3 15:53正規化する
もし学習データの正規化を行っていない場合は、正規化を行った上でモデルを再学習させると、精度の向上が見込めるかもしれません。
また、正規化には、学習の安定性や速度の向上といった効果も期待できます。 一方で、選択する正規化手法によっては、外れ値に対して敏感であるため、次に示す適切な外れ値除去を実施しなくてはいけないことに留意しなくてはいけません。
Node-AI での実践例
データ前処理 - 正規化 カードにより実行できます。
外れ値を含む区間を除去する
外れ値は、データセットの中で他のデータポイントとは異なるパターンを持つ特異な値です。外れ値が存在すると、それらが時系列の本質的な傾向やパターンを反映していない場合、モデルが不適切な学習を行ってしまう可能性があります。
例えば、工場の運転操作を AI で予測するシナリオで、センサーの値を説明変数として使っているケースを考えます。このセンサーの仕様で、センサーが故障している時だけ値が 0 を取るようになっている場合、この 0 の値のデータも含めて学習してしまうと上手く予測が当たらないことが考えられます。
そのような場合は、外れ値を含む区間を学習データから除去することで、最終的なモデルの予測精度が向上する可能性があります。
Node-AI での実践例
周期性を考慮して時間窓を変更する
時系列データは周期性のある変動を示す場合が多いです。例えば、アイスクリームの売上について考えると、
• 夏(6 月〜8 月): 熱いためアイスクリームの売上が高い。
• 冬(12 月〜2 月): 寒いためアイスクリームの売上が低い。
という傾向があるかもしれません。その場合、直近 1 週間のデータを使って売上を予測するよりも、昨年の同じ季節のデータを説明変数に含めて、売上を予測した方が精度が高い可能性があります。このとき、モデル準備 - 時間窓切り出し の設定としては、「3 か月分のデータを説明変数とし(窓幅 M=3 か月)、そこから 1 年後の値を予測する(遅れ幅 N=1 年)」ということになります。
このアイスクリームの売上の例では周期性が直感的に分かりやすいですが、データによっては、そもそもどのような周期性があるかすら分からない場合もあります。その場合には、まずデータがどのような周期性を持っているか検討するところから始めるとよいでしょう。
Node-AI での実践例
ある時間分ずれて相関が強いということは、その時間間隔でデータに周期性があるのでは? という仮説を立てることができます。
モデルの改善
ハイパーパラメータを変更する
ハイパーパラメータとは、AI モデルを使う際に、人手であらかじめ決めておく設定値のことです。
ハイパーパラメータの値によってはモデルの学習が上手くいかないケースもあるので、様々な値で試行錯誤することが重要です。
Node-AI での実践例
それぞれのモデルにおいて、ハイパーパラメータの値を画面上で変更できます。
- モデル開発 - 線形モデルの設計 カードの場合: など
- モデル開発 - 深層学習モデルの設計 (MLP) カードの場合: 学習率、バッチサイズなど
- モデル開発 - 決定木回帰モデルの設計 カードやモデル開発 - LightGBM モデルの設計 カードの場合: ツリーの数()やツリーの深さ()など
他のモデルを使う
そもそも、学習で使っている AI モデルが、使っているデータの性質に適していないという可能性もあります。その場合は、違う種類のモデルを試してみてください。
Node-AI での実践例
Node-AI では、モデル開発 - 線形モデルの設計 カード、モデル開発 - 深層学習モデルの設計 (MLP) カード、モデル開発 - 決定木回帰モデルの設計 カード、モデル開発 - LightGBM モデルの設計 カードなど、様々なモデルがカードとして提供されています。
それぞれのモデルの特性の違いについては、以下の記事をご覧ください。