問題タブ [overfitting-underfitting]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票する
1 に答える
41 参照

python - 私のモデルは過適合または過小適合ですか? .この損失曲線からどのように識別するのですか?

画像を分類するために、mobileNet アーキテクチャに基づくモデルを作成しました。トレーニングに 209222 枚の画像を使用し、検証に 40000 枚の画像を使用しました。モデルをトレーニングした後、損失曲線は次のようになります。このモデルはオーバーフィッティングですか、それともアンダーフィッティングですか? または、検証とトレーニングの損失曲線が互いに近づき、ある時点で平坦になるため、これを適切なモデルとして取得できますか? 以下に損失曲線を添付しました。 損失曲線

0 投票する
0 に答える
61 参照

performance - CARET を使用したランダム フォレストの max_depth の調整

Rでキャレットパッケージを使用してランダムフォレストを構築していmethod = "rf"ます. ランダム フォレストのすべてのタイプは、各ツリーに対してランダムに選択された機能の数caretだけ調整されているように見えます。各ツリーが (カートのように) 調整可能なパラメーターではないmtry理由がわかりません。max_depth私の考えでは、オーバーフィッティングを制限できるパラメーターです。たとえば、私の rf は、テスト データよりもトレーニング データの方が優れているようです。

ご覧のとおり、私のモデルは明らかに過適合です。ただし、これを処理するためにさまざまなことを試しましたが、何も機能しませんでした。私は常に、テスト データで 0.7 の精度、トレーニング データで 0.95 のような精度を持っています。これが、他のパラメーターを最適化したい理由です。

これを再現するためにデータを共有することはできません。

0 投票する
0 に答える
40 参照

python - 回帰モデルの過剰適合検出の自動化

機械学習を使用して、欠落しているデータを連続して代入しようとしています。

このプロジェクトで実験するために、Python でいくつかの自動 ML ライブラリをテストしてきました (これまでのところ、 dablFLAMLauto-sklearn、およびAutoKeras )。

「古典的な」方法でオーバーフィッティングを検出する方法を知っています。それは、モデルの調整中にテスト/トレーニングのメトリックをプロットすることです。ただし、私の場合、それを使用できない2つの理由を考えています。

  • まず、物理的な理由から、複数のモデル (少なくとも 1,000 個) を調整することにしています。
  • 第二に、自動機械学習ライブラリは「すぐに使える」モデルを返します (何らかのログの有無にかかわらず)。すべてのメトリクスの評価は内部で行われます。

次に、データセットを分割し、トレーニング/テスト サンプルのスコア (r2 + rmse) を比較し、次の場合にモデルを拒否することにしました。

  • 平均 rmse (テスト + トレーニング) はシリーズの標準偏差よりも優れています。
  • r2_train < .7;
  • r2_test / r2_train < .8。

注: 最初のテストは、自動化のコンテキストで私が考えることができる唯一のものです (つまり、汚染物質と同じ単位で表される 1 つの測定値に対して rmse を一致させることです)。より良い行動方針があるかもしれません。その場合、私は提案を受け入れます。

とは言っても、これらのガイドラインは、私のアルゴリズムがそのような結果を提示することを妨げませんでした (フランス語の凡例と軸のタイトルについては申し訳ありません...: Y 軸は予測、X 軸は真の値です)。 ; 凡例の「entraînement」はトレーニング セットに対応します):

pHの残差

ご覧のとおり、モデルは適切ではありません。これが通常のオーバーフィッティングの問題であるかどうかはわかりませんが、モデルが 2 つの値 (約 5.7pH と 7.4pH) を記憶するようにトレーニングされていることは明らかです。 (元のデータセットを覗いた後にこれらの結果が発生した理由を完全に理解できました。複数の autoML ライブラリがこれらの異常を引き起こしました...しかし、それは重要ではありません)。

自動化されたプロセスでそのようなモデルを破棄する方法はありますか? このモデルを破棄するために、r2 と rmse に対して使用されるしきい値を簡単に増やすことができます。しかし、そのようなモデルをすべて破棄できるとは確信していません...

0 投票する
1 に答える
130 参照

r - 検証データを改善しながらトレーニング データをオーバーフィットする

R で XGBoost を使用してバイナリ分類モデルをフィッティングしています。私のデータセットには、3 つの連続予測子と 90 レベルのワンホット エンコードされた因子変数を含む 300k の観測値があります。従属変数yは True または False です。

最適なハイパーパラメータを見つけるために、ランダムなサブサンプリングを行いました。すべての設定に対して、5 倍の (グループ化された) CV を実行しました。以下のハイパーパラメータ設定により、5 倍の評価データ フォールドで最高の平均 AUC が得られました。

次に、以下の XGBoost モデル フィッティングでこれらのハイパーパラメータ設定を使用しました。

この方法で評価ログを視覚化しました。

ここに画像の説明を入力

200 回の反復後に AUC が 1 に近づくため、モデルがトレーニング データに過剰適合していると結論付けます。同時に、モデルはまだ検証データを改善しています。一方では、500 回の反復後のモデルは、トレーニング データに強くオーバーフィットしているため、適切なモデルにはなり得ないと結論付けます。一方、このモデルは検証データで最高の AUC を持っています。

このモデルは、上記のようにトレーニング データで過剰適合している場合に最適でしょうか?それとも、トレーニング データでの過剰適合が少ないモデルを使用するようにさらに調整する必要がありますか?

ありがとうございました!