data=monthly_sum.copy()
# data=data[data["実在庫"]!=0]
data.drop(["自社品番"],axis=1,inplace=True)
# 年月列を年と月に分割して数値に変換する
data['年'] = data['年月'].dt.year
data['月'] = data['年月'].dt.month
# データから年月列を削除する
data.drop('年月', axis=1, inplace=True)
# 特徴量と目的変数の選択
# X = data[['年', '月', '金額', '原価', '実在庫', 'リードタイム', '在庫補充頻度', '在庫回転数']]
# X = data[['年', '月', '原価', '実在庫', 'リードタイム', '在庫補充頻度']] #金額は、売上なので、売上が分かれば数量も分かってしまうので除外。目的変数に使える。 在庫回転数も計算式に金額が入っているので除外。
# X = data[['年', '月', '原価', '実在庫', '在庫補充頻度']] #リードタイム除外
# X = data[['年', '月', '在庫補充頻度']] #リードタイム除外
X = data[['年', '月', '金額', '実在庫', 'リードタイム', '在庫補充頻度', '在庫回転数']]
y = data['数量'] # 予測したい数量
# データの分割
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
# モデルの構築とトレーニング
model = RandomForestRegressor(n_estimators=100, random_state=42)
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)
# 来月のデータで予測
# 予測に使用するデータの準備(必要に応じて調整してください)
next_month_data = pd.DataFrame({'年': [2024], '月': [5], '金額':[],'実在庫': [100], 'リードタイム':[5], '在庫補充頻度': [3]})
金額・実在庫・在庫保管頻度、これらは直近半年の平均値をわりあてたい
Prev
ディスカッション
コメント一覧
まだ、コメントがありません