返回介绍

2.模型评价

发布于 2024-01-28 21:41:24 字数 1833 浏览 0 评论 0 收藏 0

对于训练样本,LM神经网络和CART决策树的分类准确率相差不大,分别为94%和93%。为了进一步评估模型分类的性能,故利用测试样本对两个模型进行评价,采用ROC曲线评价方法进行评估,一个优秀分类器所对应的ROC曲线应该是尽量靠近左上角的。分别画出LM神经网络和CART决策树在测试样本下的ROC曲线,如图6-10和图6-11所示。LM神经网络和CART决策树对测试数据集的测试代码如代码清单6-5、代码清单6-6所示。

图6-9 利用训练样本构建CART决策树的混淆矩阵

代码清单6-5 绘制决策树模型的ROC曲线(接6-3)

from sklearn.metrics import roc_curve #导入ROC曲线函数
predict_result = net.predict(test[:,:3]).reshape(len(test)) #预测结果变形
fpr, tpr, thresholds = roc_curve(test[:,3], predict_result, pos_label=1)
plt.plot(fpr, tpr, linewidth=2, label = 'ROC of LM') #作出ROC曲线
plt.xlabel('False Positive Rate') #坐标轴标签
plt.ylabel('True Positive Rate') #坐标轴标签
plt.ylim(0,1.05) #边界范围
plt.xlim(0,1.05) #边界范围
plt.legend(loc=4) #图例
plt.show() #显示作图结果

代码详见:demo/code/lm_model.py

代码清单6-6 绘制决策树模型的ROC曲线(接6-4)

from sklearn.metrics import roc_curve #导入ROC曲线函数
fpr, tpr, thresholds = roc_curve(test[:,3], tree.predict_proba(test[:,:3])[:,1], 
    pos_label=1)
plt.plot(fpr, tpr, linewidth=2, label = 'ROC of CART') #作出ROC曲线
plt.xlabel('False Positive Rate') #坐标轴标签
plt.ylabel('True Positive Rate') #坐标轴标签
plt.ylim(0,1.05) #边界范围
plt.xlim(0,1.05) #边界范围
plt.legend(loc=4) #图例
plt.show() #显示作图结果

代码详见:demo/code/dt_model.py

图6-10 LM神经网络在测试样本下的ROC曲线

图6-11 CART决策树在测试样本下的ROC曲线

经过对比发现LM神经网络的ROC曲线比CART决策树的ROC曲线更加靠近单位方形的左上角,LM神经网络ROC曲线下的面积更大,说明LM神经网络模型的分类性能较好,能应用于窃漏电用户识别。

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
    我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
    原文