何に対してどんな予測モデルを使えばいいのかをまとめてみた
日次の気象情報から電気消費量を予測するモデルを作っている中での疑問をまとめてみた。
線形モデル(例:線形回帰、Lasso、Ridge)
線形回帰は「予測モデル」というよりも、比例関係や相関を「確認・定量化する」ための道具として非常に優秀。
たとえば「気温が高いとビールの売上が上がる」と思っているとき、線形回帰を使うと、「1℃上がると、平均して売上が〇本増える」と数値で示せる。とはいえ、それは少ない変数に相関関係を見出したに過ぎないので、「予測モデル」とするにはちょっと違う気がする。
● 向いているケース
-
特徴量と目的変数の関係が直線的(比例的)な場合
例:温度が1℃上がるごとに消費電力が一定量増える -
説明のしやすさが重要な場合
→ 重み(係数)で「どの要素がどれだけ影響しているか」が明確になる -
データ量が少ない、特徴量が少ないとき
● 強み
-
軽くて速い
-
結果の意味が直感的に理解しやすい
● 弱み
-
関係が非線形だと全く当てはまらない
-
特徴量の相互作用を捉えられない
非線形モデル(例:ランダムフォレスト、XGBoost、ニューラルネットなど)
非線形モデルは「データ間の複雑な関係性を拾える」ところに利点がある。線形回帰は「一直線」でしかつなげないけど、非線形モデルは「曲がった関係」や「しきい値」も自動で見つけてくれる。特徴量が多い場合でも、それぞれの影響や相互作用をモデルが内部的に調整してくれる。
例えば、「気温が25℃を超えたときだけ電力消費が急増する」、「湿度と気温が両方高いときだけ、エアコン使用が増える」など、人間が単純に予想しにくい複雑なパターンもモデルが勝手に拾ってくれるのが強み。
ただし、「どうしてそうなるのか」は人間には見えにくい。変数が増えれば増えるほど、人間にとっての可視性・解釈性は下がります。ランダムフォレストやXGBoostも、「どの変数が効いてるか」は出せるけど、「どう効いてるか」はかなりわかりにくい。
● 向いているケース
-
特徴量と目的変数の関係が複雑(曲線的・しきい値的)
例:ある温度までは使わないが、そこを超えると急にエアコン使用が増える -
特徴量の相互作用や重要度を自動で学習したいとき
-
高い予測精度を重視するとき(特にビジネス用途)
● 強み
-
高精度になりやすい
-
人間が想定しにくいパターンも拾える
● 弱み
-
学習に時間がかかる
-
解釈性が低い(「なぜこうなったか」がわかりにくい)
目的・状況ごとの使い分け一覧(回帰問題を中心に)
状況・目的 | 向いているモデル | モデル例 | コメント |
---|---|---|---|
変数の影響を説明したい(論文・報告書) | 線形モデル | 線形回帰 / Lasso / Ridge | 各変数の寄与が係数で明示される。正則化を使えば過学習も抑えやすい。 |
単純な傾向を予測(例:気温と売上の関係) | 線形モデル | 線形回帰 | データ量が少なくても動作。前処理が比較的簡単。 |
予測精度を重視(例:需要予測、電力予測) | 非線形モデル | ランダムフォレスト / XGBoost | 非線形性や相互作用を自動で捉える。ハイパーパラメータ調整も有効。 |
データ量が少ないが特徴量が多い | 線形モデル(+正則化) | Lasso(特徴量選択に強い) | スパース性が高く、不要な変数を自動で除外できる。 |
時系列の傾向を見たい | 線形モデル or 非線形モデル | ARIMA / ランダムフォレスト / LSTM | 時系列かつ非線形ならLSTMなども選択肢。 |
ノイズが多く、外れ値が目立つ | 非線形モデル | ランダムフォレスト | 頑健性が高く、外れ値にあまり引っ張られない。 |
説明性よりもパフォーマンス(Webサービスなど) | 非線形モデル | XGBoost / LightGBM | 実装の自由度が高く、精度も高い。計算資源との相談も必要。 |
コメント