文章来源于网络收集而来,版权归原创者所有,如有侵权请及时联系!
2.模型评价
对于训练样本,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 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论