Hello there, ('ω')ノ
✅ 精度を自分で確認する方法:2つあります
| 方法 | 内容 | 精度が見えるか |
|---|---|---|
| ① train/test を分けてKaggleに提出 | 提出後にスコア(RMSE)で確認 | ✅ できる(Public Score) |
| ② train データの中で分割して検証 | 自分でRMSEを計算できる | ✅ 自分で見れる!(オススメ) |
あなたが聞いているのは「②」の方法ですね。以下で具体的にやってみましょう!
🧪 例:train データを学習用と検証用に分けて精度を確認
📦 ステップ①:trainデータを学習・検証に分ける
from sklearn.model_selection import train_test_split # 訓練データと検証データに分割(80%学習、20%検証) X_train_split, X_valid_split, y_train_split, y_valid_split = train_test_split( X_train, y, test_size=0.2, random_state=42 )
📊 ステップ②:モデルを学習し、予測する
from sklearn.linear_model import LinearRegression # モデルの作成と学習 model = LinearRegression() model.fit(X_train_split, y_train_split) # 検証用データで予測 y_pred = model.predict(X_valid_split)
🧮 ステップ③:RMSEで精度を計算する
from sklearn.metrics import mean_squared_error import numpy as np # RMSEを計算 rmse = np.sqrt(mean_squared_error(y_valid_split, y_pred)) print("Validation RMSE:", rmse)
✅ この rmse の値が、Kaggle提出前に自分で確認できる精度の目安になります!
🎯 自分で見れるRMSEとKaggleのスコアの違いは?
| 比較対象 | 特徴 | コメント |
|---|---|---|
| 自分で分けたvalidation RMSE | trainデータの一部だけで検証 | 開発中のテスト。参考になるが過信しすぎない |
| Kaggle提出スコア(Public) | testデータ(正解は非公開) | 最終提出スコアに近い。重要な評価指標 |
✅ この数値の意味は?
🔢 RMSE = 29,476
- RMSE(Root Mean Squared Error) は、「実際の価格」と「予測した価格」のズレの平均的な大きさを表します。
- 今回の場合、予測が約3万ドルくらいズレているという意味です。
🎯 初心者としての評価ポイント
| 評価基準(目安) | RMSEの範囲 | コメント |
|---|---|---|
| 入門としてまずまず | 30,000〜50,000 | いい出発点! |
| なかなか良い精度 | 20,000〜30,000 | あと一歩で上位圏 |
| 高精度モデル | 10,000〜20,000 | コンペ中級者レベル |
| 超高精度(上位) | 〜10,000 | 特徴量とモデルの工夫が光る |
📌 これからできること(ステップアップ)
🔧 モデル改善
- ✅ モデル変更(たとえば RandomForest、XGBoost)
- ✅ ログ変換(Log Transform) →
SalePriceの分布を正規化して予測精度UP
🧹 前処理改善
- ✅ 不要な特徴量の削除
- ✅ 外れ値の除去(例:極端に高額な物件)
📈 クロスバリデーション(KFold)でより安定した精度評価
✅ まとめ:自分で精度を見るには?
| 方法 | 目的 |
|---|---|
train_test_split() |
trainの中で「学習・検証」に分ける |
model.predict() |
検証データに対して予測 |
mean_squared_error() |
RMSEで誤差を数値化 |
Best regards, (^^ゞ