機械学習 ベースライン検証

 #ベースライン検証データ作成 
x_tr, x_va2, y_tr, y_va2 = train_test_split(x_train, y_train, test_size=0.2, shuffle=True, stratify=y_train, random_state=123)
x_tr1, x_va1, y_tr1, y_va1 = train_test_split(x_tr, y_tr, test_size=0.2, shuffle=True, stratify=y_tr, random_state=123)

model.fit(x_tr1, y_tr1, early_stopping_rounds=100, eval_set=[(x_tr1, y_tr1), (x_va1, y_va1)], verbose=100,)
y_va1_pred = model.predict(x_va1)
y_va2_pred = model.predict(x_va2)
 #モデル精査 
print("[検証データ]: acc:{:.4f}".format(accuracy_score(y_va1, y_va1_pred)))
print("[ベースライン検証データ]: acc:{:.4f}".format(accuracy_score(y_va2, y_va2_pred)))
 #誤差分布 
print(confusion_matrix(y_va1, y_va1_pred))
print(confusion_matrix(y_va1, y_va1_pred, normalize="all"))

print(confusion_matrix(y_va2, y_va2_pred))
print(confusion_matrix(y_va2, y_va2_pred, normalize="all"))
 #予測値分布 
y_va1_pred_prob = model.predict_proba(x_va1)[:, 1]
y_va2_pred_prob = model.predict_proba(x_va2)[:, 1]

fig = plt.figure(figsize=(10 ,8))
fig.add_subplot(2, 1, 1)
plt.title = "検証データ"
plt.hist(y_va1_pred_prob[np.array(y_va1).reshape(-1)==1], bins=10, alpha=0.5, label="1")
plt.hist(y_va1_pred_prob[np.array(y_va1).reshape(-1)==0], bins=10, alpha=0.5, label="0")

fig.add_subplot(2, 1, 2)
plt.title = "ベース検証データ"
plt.hist(y_va2_pred_prob[np.array(y_va2).reshape(-1)==1], bins=10, alpha=0.5, label="1")
plt.hist(y_va2_pred_prob[np.array(y_va2).reshape(-1)==0], bins=10, alpha=0.5, label="0")

初詣行きたい(´・ω・`)


この記事が気に入ったらサポートをしてみませんか?