統計的特徴量を生成し、モデルに組み込む方法
統計的特徴量を生成し、モデルに組み込む方法は、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-learnのGaussianNBクラスを使用してナイーブベイズ分類器を作成します。統計的特徴量として生成された平均、中央値、最大値、最小値、標準偏差は、モデルの学習に使用されます。
なお、仕入先のカテゴリ変数を数値に変換する場合、通常はOne-hotエンコーディングなどの手法を使用して行いますが、この例では簡略化のため省略しました。

ディスカッション
コメント一覧
まだ、コメントがありません