質問:バイナリ結果変数をモデル化するために確率モデル(ベイジアンネットワーク)を適合させました。ブートストラップでオーバーフィットするように修正された高解像度のキャリブレーションプロット(スプラインなど)を作成したいと思います。そのような曲線を計算するための標準的な手順はありますか?
考慮事項:これは、トレーニング/テスト分割で簡単に実行できますが、サンプルが20,000未満なので、データを捨てないでください。だから私は自然にブートストラップについて考えました。そのような関数(キャリブレーション)の1つがフランクハレルのrmsパッケージに実装されていることは知っていますが、残念ながら、私が使用するモデルはパッケージでサポートされていません。
おまけの質問:ブートストラップを使用して、誤って調整されたモデルを再調整することは可能ですか?私がこれを尋ねる理由は、私がモデルを再調整しようとしたことです
- トレイン/テストでデータを分割する
- セットをトレーニングするフィッティングモデル
- モデルを再調整してトレーニングセット(3次スプラインを使用)
- テストセットのキャリブレーションを評価する
上記の方法で再調整されたモデルは、列車セットでは完全に調整されましたが、テストセットではそれほど調整されていません。これは、おそらく軽度の過適合を示しています。また、テストセットをさらに分割して、1つの分割でキャリブレーションを行い、2番目の分割でキャリブレーションを評価しました。私はより良い結果を得ましたが(まだ完全に校正されていません)、セットはかなり小さくなり(〜1000サンプル)、したがって校正は信頼できなくなりました
1
Rで何が利用できるかわかりませんが、Pythonのsklearnには、高品質の確率キャリブレーションの鍵となる交差検証と等張/単調回帰をサポートする優れた確率キャリブレーションモジュールがあります。scikit-learn.org/stable/modules/calibration.html
—
olooney
回答ありがとうございます!私はRに拘束されており、から始めることに特に熱心ではありません
—
Gino_JrDataScientist
reticulate
。手順を知っていれば自分でも実装できますが、どこにも見つかりませんでした。ハレル教授にこの質問が表示されることを期待しています:D
(小さな)データの例を含めて、あなたが話していることを説明してください。ありがとうございました。
—
ジム
こんにちはrpatel、提案をありがとう。元の質問でrms :: calibrate関数について言及しましたが、使用しているモデルクラスをサポートしていないことに注意してください。HarrellのRegression Modeling Strategiesも所有していますが、関数calibrateがどのように機能するかについての詳細な説明はありません。
—
Gino_JrDataScientist 2018年