Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
学ぶ 過学習 | 最適なモデルの選択
/
Pythonによる線形回帰

book過学習

メニューを表示するにはスワイプしてください

過学習

以下の2つの回帰直線を考える。どちらが優れているか?

指標によれば2番目のモデルの方が優れているため、X_new = [0.2, 0.5, 2.7] の予測に使用する。しかし、予測値と実際の値を比較すると、1番目のモデルの方が良い結果となる。

これは2番目のモデルが過学習しているために起こる。モデルが複雑すぎて訓練データに過度に適合し、新しいデータに対して一般化できなくなっている。

アンダーフィッティング

アンダーフィッティングは、モデルが単純すぎて訓練データさえもうまく適合できない場合に発生し、未知のデータに対する予測精度も低下する現象。

モデルがアンダーフィットしているかオーバーフィットしているかを視覚的に判断することも可能。

高次元のモデルは可視化できないため、オーバーフィッティングやアンダーフィッティングを検出する別の方法が必要。

訓練データとテストデータの分割

未知のデータに対する性能を推定するため、データセットを既知のターゲットを持つ訓練セットとテストセットに分割。

訓練セットで学習を行い、訓練セットとテストセットの両方で指標を計算して性能を比較。

分割はランダムである必要がある。一般的に、テストセットには20~30%、訓練セットには70~80%を使用。Scikit-learnはこの処理を簡単に実行可能。

例えば、トレーニングセットを70%トレーニング/30%テストに分割するには、次のコードを使用します:

from sklearn.model_selection import train_test_split # import the function
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.3)
question-icon

モデルのMSEスコアに基づいて、それぞれがトレーニングセットに対して過学習/過小適合しているかどうかを判断してください(データセットは同じです)。

Model 1: Training set's MSE=0.2, Test set's MSE=0.215 .
Model 2: Training set's MSE=0.14, Test set's MSE=0.42
.
Model 3: Training set's MSE=0.5, Test set's MSE=0.47
.

クリックまたはドラッグ`n`ドロップして空欄を埋めてください

すべて明確でしたか?

どのように改善できますか?

フィードバックありがとうございます!

セクション 4.  2

AIに質問する

expand

AIに質問する

ChatGPT

何でも質問するか、提案された質問の1つを試してチャットを始めてください

セクション 4.  2
some-alt