用于二分类的机器学习模型评价

01
0预测negative正确 TN预测positive错误 FP
1预测negative错误 FN预测positive正确 TP

其中行代表真实值,列代表预测值
举个列子,在下面表格中0代表健康人,1代表患有癌症的人。

预测\真实01
0997812
128

这里面就可以看出有12个人没有患癌症,但是我们算法却错误的预测了他患了癌症。

精准率
p r e c i s i o n = T P T P + F P precision = \tfrac{TP}{TP+FP} precision=TP+FPTP
精准率是指预测positive准确的值。即预测为1的事件中,预测正确的值。

召回率
r e c a l l = T P T P + F N recall= \tfrac{TP}{TP+FN} recall=TP+FNTP
关注的事件真实发了,但是我们又成功预测的准确率。
用以下的图来看
在这里插入图片描述

# 在sklearn中混淆举证的调用
from sklearn.metrics import confusion_matrix
confusion_matrix(y_test,y_predict)
# 精准率
from sklearn.metrics import precision_score
precision_score(y_test,y_predict)
from sklearn.metrics import recall_score
recall_score(y_test,y_predict)

3、precision-recall的平衡

在这里插入图片描述
从上图可以看出,精准率和召回率是互相牵制的一组数据。

4、ROC曲线

TPR是召回率
FPR是预测为1,占真实值是0的预测正确或者预测错误的概率。说白了就是预测错误。
F P R = F P T N + F P FPR= \tfrac{FP}{TN+FP} FPR=TN+FPFP

from sklearn.metrics import roc_curve
fprs,tprs,thresholds = roc_curve(y_test,y_predict)
plt.plot(fprs,tprs)
plt.show()


图片中的积分面积要越大越好,也就是TPR被抬得越高越好。

from sklearn.metrics import roc_auc_score
roc_auc_score(y_test,y_predict)

最后值为0.9188311688311689
用于比较模型的优劣。

4、多分类的混淆矩阵

from sklearn.metrics import confusion_matrix
confusion_matrix(y_test,y_predicts)
cfm = confusion_matrix(y_test,y_predicts)
plt.matshow(cfm,cmap = plt.cm.Purples)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值