統計的特徴量を生成し、モデルに組み込む方法

統計的特徴量を生成し、モデルに組み込む方法は、Pythonの機械学習ライブラリであるscikit-learnを使用して実装できます。以下に、統計的特徴量を生成し、ナイーブベイズ分類器に組み込むサンプルコードを示します。

python
import numpy as np
from sklearn.naive_bayes import GaussianNB
from sklearn.model_selection import train_test_split

# サンプルデータの作成
X = np.array([[10, 'A'], [20, 'B'], [30, 'A'], [40, 'B'], [50, 'A']])  # 原価と仕入先のデータ
y = np.array([0, 1, 0, 1, 0])  # サンプルのクラス(仮定)

# 原価に対する統計的特徴量の生成
cost = X[:, 0].astype(float)
mean_cost = np.mean(cost)
median_cost = np.median(cost)
max_cost = np.max(cost)
min_cost = np.min(cost)
std_cost = np.std(cost)

# 仕入先の統計的特徴量の生成
# 仕入先のカテゴリ変数を数値に変換する必要がありますが、ここでは簡略化のため省略します

# 統計的特徴量の表示
print("Mean Cost:", mean_cost)
print("Median Cost:", median_cost)
print("Max Cost:", max_cost)
print("Min Cost:", min_cost)
print("Std Cost:", std_cost)

# ナイーブベイズ分類器の作成と学習
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
model = GaussianNB()
model.fit(X_train, y_train)

# モデルの評価
accuracy = model.score(X_test, y_test)
print("Accuracy:", accuracy)

このコードでは、numpyを使用して統計的特徴量を生成し、scikit-learnGaussianNBクラスを使用してナイーブベイズ分類器を作成します。統計的特徴量として生成された平均、中央値、最大値、最小値、標準偏差は、モデルの学習に使用されます。

なお、仕入先のカテゴリ変数を数値に変換する場合、通常はOne-hotエンコーディングなどの手法を使用して行いますが、この例では簡略化のため省略しました。

未分類

Posted by ぼっち