Exploratory コミュニティ

XGBoostの学習回数に関して

#1

質問失礼いたします。
XGBoostの学習回数はデフォルトが10回になっていますが、これは回数を増やした方がいいとかって何か基準などはあるのでしょうか?
下図のように10回の時よりも15回の時の方がRMSEが小さくなったので、より精度が上がったのかなと思いました。
そもそもRMSEをそのような基準にすること自体が間違っているのでしょうか??
ご教授の程、何卒宜しくお願い致します。

image

#2

@Masaki_Nakazawa さん

トレーニングデータへのオーバーフィッティングが発生しているように思われます。GBDT系の機械学習モデルを使用されているということですので、学習回数の増加に伴い、ある一定まではトレーニングデータへの評価指標は改善されるかと思います。

そのため、「トレーニングデータに対しては精度が上がった」と言えるかと思いますが、オーバーフィッティングしているモデルは「テストデータに対しては精度は下がる」ことが一般的かと思いますので、汎化性能という観点からだと、精度が上がったとは言えないと思われます。

学習回数については、アーリーストッピングを用いて、適切なイテレーション回数を設定されるのが良いかと思います。Webで検索いただければ色々情報が見つかるかと思います。

私自身、昨今の機械学習の情報のアップデートについていけてないので、これも妥当な方法ではないのかもしれませんが、参考に頂ければと思います。

例えばですが、RMSEは、MAEに比べると外れ値の影響を受けやすい指標と言われています。どのような場面で分析結果を利用されるのかわかりませんが、場合によっては、事細かに分析モデルの説明が求められることもありますので、モデルを作る上で、その性質を考慮し、適切な評価指標を選べばよいかと思います。

参考になれば幸いです。

#3

スギアキさん

いつも丁寧なご回答有難うございます。
オーバーフィッティングの可能性大ですね…。
教えていただいた方法を検索して絶賛勉強中です。

また何かありましたらご教授いただけますと幸いです。

1 Like
#4

@Masaki_Nakazawa さん

ご確認ありがとうございます!
私もまだまだ勉強中の身で、毎度毎度、業界や分野の多数から支持を得るような回答ができず、すいません…
一緒に精進していきましょう〜!