分割せずにモデルをトレーニングする

2024年6月17日

分割せずにモデルをトレーニングする場合、すべてのデータをトレーニングに使用し、その後モデルの性能を評価することができます。以下にその方法を示します。

まず、必要なライブラリをインポートします。

python
import pandas as pd
from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import accuracy_score, classification_report

次に、データを読み込みます。

python
# データ読み込み
data = pd.read_csv("在庫データ.csv")

# データの先頭部分を確認
print(data.head())

次に、特徴量と目的変数を選択します。

python
# 特徴量と目的変数の選択
X = data.drop(["SKU", "商品名", "ブランド名", "メーカー名"], axis=1)  # 特徴量(SKU、商品名、ブランド名、メーカー名を除外)
y = X.iloc[:, -1]  # 最終列が目的変数(在庫推移)となる

# 目的変数の作成(在庫が0未満の場合に1、それ以外は0とする)
y = y.apply(lambda x: 1 if x < 0 else 0)

# 不要な列を削除
X = X.iloc[:, :-1]

ランダムフォレストモデルを定義してトレーニングします。

python
# ランダムフォレストモデルの定義とトレーニング
rf_classifier = RandomForestClassifier(n_estimators=100, random_state=42)
rf_classifier.fit(X, y)

モデルの性能を評価します。

python
# トレーニングデータでの予測
y_pred = rf_classifier.predict(X)

# モデルの性能評価
accuracy = accuracy_score(y, y_pred)
print("Accuracy:", accuracy)

# 分類レポートの表示
print("nClassification Report:")
print(classification_report(y, y_pred))

これで、ランダムフォレストモデルを使用して在庫切れの発生を予測するためのサンプルコードが完成しました。必要に応じてデータファイル名やモデルのハイパーパラメータを調整してください。

未分類

Posted by ぼっち