首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

机器学习中模型评价及python实现

模型评价是度量机器学习算法的好坏的标准,是机器学习入门的第一课。

下面简单介绍下分类和回归问题中的模型评价方法,以及python中代码实现。

目录结构如下:

回归问题

回归问题中预测连续值,主要的评价方法有均方误差,绝对值误差,R2等及其演变。

均方误差

绝对值误差

其改进的取中位数绝对值误差:

R2

分子:代表回归值与真实值之间的平方差异; 分母:测试数据真实值的方法,内部差异;

python代码实现:

分类问题

分类问题中的评价指标比较多,不同的问题适用不同的指标,选对指标是解决问题的前提。比如说疾病监测,欺诈监测,单独使用准确率就显得太不专业。

混淆矩阵

从混淆矩阵开始可以推导出其他多个指标,比如准确率,查准率,查全率。

混淆矩阵形式如下:

从一个具体的实例开始,对一个二分类问题:

真实值和预测值分别如下:

真实值:0 1 1 0 1 1 0 1 1 0

预测值:1 1 1 1 1 0 0 1 0 1

那么填充混淆矩阵如下:

精度、查准率、查全率

精度/准确率 :所有预测正确的样本占总样本的比例;

精确率/查准率:预测为正例中预测对的比率;

召回率/查全率:真实正例中别预测为正例的比率;

公式表示及针对上面的例子计算为:

查准率P,查全率R也可以进一步理解为:

P:检测出来的信息有多少比例的是用户感兴趣的;预测为真实际也为真占模型预测为真的样本比例。

R:用户感兴趣的信息中有多少比例被检索出来;预测为真实际也为真,占实际为真的比例。

P,R是一对矛盾的两个度量值。提高查准率(谨慎选择),查全率会降低;提高查全率(选上所有的),查准率会降低。

于是又了P-R曲线:

以查准率为横坐标,查全率为纵坐标绘制的曲线,更能反映分类器的性能。

F1-score

F1值是结合了上述两个指标的综合情况考虑。是P和R的调和平均。

定义如下:

ROC-AUC

ROC:受试者特征曲线,起源于二战雷达探测。

ROC曲线和P-R曲线类似,但是使用的真阳性率,假阳性率作为横纵坐标。真阳性率和假阳性率其定义如下:

真阳性率:预测为真实际也为真,占实际为真的比例;越高,正类样本被模型预测正确,模型效果越好。

假阳性率:预测为正实际为假的,占实际假样本比例;越低,负样本被模型预测正确,模型效果越好

ROC曲线其在样本比例不平衡的问题中有很好的鲁棒性。

AUC是ROC曲线下的面积。

ROC曲线绘制

对于一个特定的分类器和测试数据集,显然只能得到一个分类结果,即一组FPR和TPR结果,而要得到一个曲线,我们实际上需要一系列FPR和TPR的值。那么怎么得到ROC曲线呢?

简单的演示通过以下3个步骤:

1. 从小到大调整不同阈值得到对应的混淆矩阵值

2. 计算对应的FPR和TPR

__3. 对多组FPR和TPR值绘制曲线

多条ROC曲线,怎么评价那条曲线对应的分类器更优呢?

如果一个曲线在另一个曲线上面,比如蓝线在红线上面,那么蓝线对应分类器性能更优。中间的黑色斜线对应随机猜测。

如果曲线有交叉,那么计算曲线下的面积AUC。越大越好。

ROC曲线优点: 在样本分布不均衡情况下更加稳定,和类别无关。考虑的是预测排序质量。

AUC值越大,当前的分类算法越有可能将正样本排在负样本前面,即能够更好的分类。

python代码实现

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20190129G0WSXA00?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码

添加站长 进交流群

领取专属 10元无门槛券

私享最新 技术干货

扫码加入开发者社群
领券