繁体   English   中英

使用 sklearn SVC 计算训练集的混淆矩阵

[英]Calculate confusion_matrix for Training set with sklearn SVC

我想通过了解训练数据的混淆矩阵来了解训练数据的分布。 但是,我不确定“train_ypre = fir_svm.predict(x_train_1)”是对还是错。

#first stage (asymmetric SVM)
# https://scikit-learn.org/stable/auto_examples/svm/plot_separating_hyperplane_unbalanced.html : class_weight={0:minority,1:majprity}

fir_svm = SVC(C=10.0,gamma =1,kernel="rbf").fit(x_train_1,y_train_1)
train_fir_score = fir_svm.score(x_train_1,y_train_1)
test_fir_score = fir_svm.score(x_test_1,y_test_1)
print("First SVM score (train) : {0}".format(train_fir_score))
print("First SVM score (test): {0}".format(test_fir_score))
#----------------------------------------------------------
# train (first stage)
train_ypre = fir_svm.predict(x_train_1)
fir_matrix_train = confusion_matrix(y_train_1, train_ypre)
#------------------------------------------------------------------------
# train_ypre = fir_svm.predict(x_test_1)
# fir_matrix_train = confusion_matrix(y_test_1, train_ypre)
#------------------------------------------------------------------------
print(fir_matrix_train)
TP = fir_matrix_train[0][0]
# print(TP)
FN = fir_matrix_train[0][1]
# print(FN)
FP = fir_matrix_train[1][0]
# print(FP)
TN = fir_matrix_train[1][1]
# print(TN)
precision = TP / (TP+FP) 
print("Precision : {0}".format(precision))
recall = TP / (TP+FN)
print("Recall : {0}".format(recall))
F_measure = 2*recall*precision / (recall+precision)
print("F_measure : {0}".format(F_measure))
auc = roc_auc_score(y_train_1, train_ypre)
print("AUC : {0}".format(auc))
# auc = roc_auc_score(y_test_1, train_ypre)
# print("AUC : {0}".format(auc))

代码结果

还有其他方法可以了解更多关于训练数据混淆矩阵的信息吗?

混淆矩阵是一个经常用来描述分类模型性能的表格。

创建混淆矩阵的范围是使用precisionrecallaccuracyF1 score指标来评估我们算法的性能。

我在你的代码中看到的第一个错误是你在training set上使用了predict方法,这必须用于test set

y_pred = fir_svm.predict(x_test_1)

然后基于y_predy_test_1构建confusion matrix

fir_matrix = confusion_matrix(y_test_1, y_pred)

这是正确的方法,因为您需要根据应用于未见数据而不是training数据的validation来查看算法的性能。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM