trainとtestに分割する必要性

2024年6月17日

traintestに分割する必要があるのは、モデルの評価を行うためです。モデルをトレーニングする際には、トレーニング用のデータ(X_train, y_train)を使用します。その後、テスト用のデータ(X_test, y_test)を使用してモデルの評価を行います。

以下は修正されたコードです。

python
from sklearn.model_selection import train_test_split

# データの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# モデルの構築とトレーニング
model = RandomForestRegressor(random_state=42, max_depth=8, min_samples_leaf=1, min_samples_split=2, n_estimators=98)
model.fit(X_train, y_train)

# テストデータを使用して予測
y_pred = model.predict(X_test)

# モデルの評価
mse = mean_squared_error(y_test, y_pred)
print("Mean Squared Error:", mse)

# 平均値を計算
mean_values = data.mean()

# 平均値を代入
next_month_data = pd.DataFrame({
    '年': [2024],
    '月': [5],
    '金額': [mean_values['金額']],
    "原価": [mean_values["原価"]],
    '実在庫': [mean_values['実在庫']],
    'リードタイム': [5],
    '在庫補充頻度': [3],
    '在庫回転数': [mean_values["在庫回転数"]]
})

# 予測
next_month_quantity = model.predict(next_month_data[['年', '月', '金額', "原価", '実在庫', 'リードタイム', '在庫補充頻度', '在庫回転数']])
print("来月の数量予測:", next_month_quantity)

ここでは、train_test_split関数を使用してデータをトレーニング用とテスト用に分割し、トレーニング用データを使用してモデルをトレーニングし、テスト用データを使用してモデルの評価を行っています。

未分類

Posted by ぼっち