キャンセル
次の結果を表示 
次の代わりに検索 
もしかして: 
ポッドキャスト 「シバタアキラのcafeでAIたい」配信中

回帰予測における予測区間(Prediction interval)の算出方法

青色LED

回帰予測をするときに、ピンポイントの予測値だけでなく、大体このくらいのレンジに収まるという範囲を示して欲しいと言われることがあると思います。

DataRobotの時系列予測では予測区間を出力することができますが、非時系列回帰予測ではその機能は無いと認識しています。非時系列回帰予測で予測区間を算出するとしたら、どのような方法が取れるでしょうか。

(Quantile regressionとか無いですよね?)

0 件の賞賛
5件の返信5
データサイエンティスト
データサイエンティスト

残念ながら現状の非時系列回帰予測では、予測区間を算出する為のQuantile metricなどの損失関数をサポートしていないため、DataRobotを使って算出するのは難しいです。

しかしながらご要望としては確かによく頂いておりますので、今後サポートする可能性はございます。

0 件の賞賛
青色LED

マニアックな話になりますが、「Gradient Boosted Trees Regressor」では高度なチューニングからlossをquantileに変更できます
その上でalphaを調整すればQuantile Regressionになる認識です

もしくはモデルが2段階になってしまいますが、残差の二乗を予測するモデルを作成して、予測値の平方根を標準偏差ぽく扱う方法も考えられます。

時系列予測の予測区間の算出ロジックをDataRobot社が公開してくれないかなあ|ω・`)チラ

青色LED

> 「Gradient Boosted Trees Regressor」では高度なチューニングからlossをquantileに変更できます

確かに!! loss = quantileに設定すると「Gradient Boosted Greedy Trees Regressor (Quantile Loss)」のモデルが出来ました。例えば alpha = 0.9 と 0.1 のモデルを作れば、80%予測区間を取得することが出来そうです。

もしやと思ってLightGBMのobjective parameterにも quantile あるかなと思いましたが、こっちはありませんでした(MicrosoftのLightGBM公式実装にはあります)。設定追加を期待して待つことにします。

残差を予測する2段階モデルは、ちょうど私も試してみようかなあと思っていました。後処理をいとわなければ、こちらの方が汎用性ありそうですね。

 

皆さまご回答ありがとうございました。

0 件の賞賛
リニアアクチュエータ

同じことを調べていました。。

Gradient Boosted Trees Regressor」では、「loss」を「quantile」に指定できるのですが、

image.png

「 Light Gradient Boosted Trees Regressor」では「objective」に「quantile」を指定出来ないんですね。

ShinichiroOhno_0-1583319669726.png

https://qiita.com/shnchr/items/22868bea27a3a8bf0977#quantile-regression

のようなイメージで指定できるのかとおもっていましたw

0 件の賞賛
データサイエンティスト
データサイエンティスト

@AkiraI なんと・・・このアルゴリズムだけサポートしていたとは知りませんでした。失礼いたしました。

補足ありがとうございます。

0 件の賞賛