はじめに
この実験では、scikit-learn を使って分位点回帰を用いて予測区間を作成する方法を示します。回帰問題用の合成データを生成し、それに関数を適用し、対数正規分布を使って目的変数の観測値を作成します。次に、データを訓練用とテスト用のデータセットに分割し、非線形の分位点回帰器と最小二乗回帰器をフィットさせ、[0, 10]の範囲にわたる入力値の等間隔の評価セットを作成します。予測された中央値と予測された平均値を比較し、誤差指標を分析し、信頼区間を校正します。最後に、分位点回帰器のハイパーパラメータを調整します。
VM のヒント
VM の起動が完了したら、左上隅をクリックしてノートブックタブに切り替えて、Jupyter Notebook を使った練習を行います。
時々、Jupyter Notebook が読み込み終了するまで数秒待つ必要があります。Jupyter Notebook の制限により、操作の検証を自動化することはできません。
学習中に問題に遭遇した場合は、Labby にお問い合わせください。セッション後にフィードバックを提供してください。すぐに問題を解決いたします。
合成データの生成
一様にサンプリングされたランダムな入力に関数を適用することで、回帰問題用の合成データを生成します。問題を興味深いものにするために、目的変数 y の観測値を、関数 f によって計算される決定論的な項と、中心付きの対数正規分布に従うランダムノイズ項の和として生成します。対数正規分布は非対称で尾が長く、大きな外れ値が観測される可能性がありますが、小さな外れ値を観測することは不可能です。
データを訓練用とテスト用のデータセットに分割する
データを訓練用とテスト用のデータセットに分割します。
非線形の分位点回帰器と最小二乗回帰器をフィットさせる
分位点損失と alpha=0.05、0.5、0.95 で訓練された勾配ブースティングモデルをフィットさせます。alpha=0.05 と alpha=0.95 で得られたモデルは 90% の信頼区間を生成します。alpha=0.5 で訓練されたモデルは中央値の回帰を生成します。
入力値の等間隔の評価セットを作成する
[0, 10]の範囲にわたる入力値の等間隔の評価セットを作成します。
真の条件付き平均関数 f をプロットする
真の条件付き平均関数 f、条件付き平均の予測(損失は二乗誤差に等しい)、条件付き中央値、および条件付き 90% 区間(5% から 95% の条件付きパーセンタイルまで)をプロットします。
エラー指標を分析する
訓練用データセットに対して、平均二乗誤差(mean_squared_error)と平均ピンボール損失(mean_pinball_loss)の指標でモデルを評価します。1 列には、同じ指標で評価されたすべてのモデルが表示されます。
分位点回帰器のハイパーパラメータをチューニングする
alpha=0.05 のピンボール損失に対する交差検証によって最適なモデルパラメータを選択することで、5% パーセンタイルの新しい回帰器のハイパーパラメータをチューニングします。次に、95% パーセンタイルの回帰器のハイパーパラメータをチューニングします。
まとめ
この実験では、scikit-learn を使って分位点回帰を用いて予測区間を作成する方法を示しました。回帰問題用の合成データを生成し、それに関数を適用し、対数正規分布を使ってターゲットの観測値を作成しました。データを訓練用とテスト用のデータセットに分割し、非線形の分位点回帰器と最小二乗回帰器を適合させ、[0, 10]の範囲にわたる入力値の等間隔の評価セットを作成しました。予測された中央値と予測された平均値を比較し、エラー指標を分析し、信頼区間を校正しました。最後に、分位点回帰器のハイパーパラメータをチューニングしました。