❌ モデルの精度が低い(underfitting)
訓練データでも精度が低い → モデルが単純すぎる(表現力不足)
✅ より複雑なモデル(決定木→ランダムフォレスト)を試す。特徴量を増やす・変換する。
❌ 訓練精度は高いがテスト精度が低い(overfitting)
訓練データに特化しすぎて汎化できていない
✅ データを増やす。正則化(L1/L2)を追加する。ドロップアウト(ニューラルネット)を使う。交差検証で評価する。
❌ ValueError: Input contains NaN
model.fit(X, y) # Xに欠損値が含まれている
✅ df.isnull().sum() で欠損値を確認し、fillna() で補完するか dropna() で削除する。
💡 機械学習のチェックリスト
- データの分布・欠損値・外れ値を確認する
- 特徴量を標準化(StandardScaler)する
- 訓練・テストを正しく分割する
- 複数のモデルを試して比較する
- 交差検証で汎化性能を評価する