机器学习:准确率(Precision)、召回率(Recall)、F值(F-Measure)、ROC曲线、PR曲线

介绍:

准确率(Precision)、召回率(Recall)、F值(F-Measure)是数据挖掘、机器学习

和推荐系统中的评测指标。

下图是不同机器学习算法的评价指标:

本文的对象是二元分类器!

在 介绍评价指标必须了解“混淆矩阵”

混淆矩阵

True Positive(真正,TP):将正类预测为正数类

True Negative(真负,TN):将负类预测为负类数

False Positive(假正,FP):将负类预测为正类数 -->> 误报(Type I error)

False Negative(假负,FN):将正类预测为负类数 -->> 漏报(Type ll error)

1、准确率(Accuracy)

准确率(accuracy)计算公式为:

准确率是我们最常见的评价指标,而且很容易理解,就是预测正确的样本数除以所有

的样本数, 正常来说,正确率越高,分类器越好。

准确率确实是一个很好很直观的评价指标,但是有时候准确率高并不能代表一个算法就好。比如某个地区某天地震的预测,假设我们有一堆的特征作为地震分类的属性,类别只有两个:0:不发生地震、1:发生地震。一个不加思考的分类器,对每一个测试用例都将类别划分为0,那那么它就可能达到99%的准确率,但真的地震来临时,这个分类器毫无察觉,这个分类带来的损失是巨大的。为什么99%的准确率的分类器却不是我们想要的,因为这里数据分布不均衡,类别1的数据太少,完全错分类别1依然可以达到很高的准确率却忽视了我们关注的东西。再举个例子说明下。在正负样本不平衡的情况下,准确率这个评价指标有很大的缺陷。比如在互联网广告里面,点击的数量是很少的,一般只有千分之几,如果用acc,即使全部预测成负类(不点击)acc也有 99% 以上,没有意义。因此,单纯靠准确率来评价一个算法模型是远远不够科学全面的。

2、错误率(Error rate)

错误率则与准确率相反,描述被分类器错分的比例,error rate = (FP+FN)/(TP+TN+FP+FN),对某一个实例来说,分对与分错是互斥事件,所以accuracy =1 - error rate。

3、灵敏度(sensitive)

sensitive = TP/P,表示的是所有正例中被分对的比例,衡量了分类器对正例的识别能力。

4、特效度(sensitive)

specificity = TN/N,表示的是所有负例中被分对的比例,衡量了分类器对负例的识别能力。

5、精确率、精度(Precision)

精确率(precision)定义为:

表示被分为正例的示例中实际为正例的比例。

6、召回率(recall)

召回率是覆盖面的度量,度量有多个正例被分为正例,recall = TP/(TP+FN) = TP/P = sensitive,召回率与灵敏度是一样的。

7、综合评价指标(F-Measure)
P(Precision)和R(Recall)指标有时候会出现的矛盾情况,这样需要综合考虑他们,最常见的方法就是F-Measure/F-Score

F-Measure是Precision和Recall加权调和平均

当参数α=1是,就是最常见的F1,即

可知F1综合了P和R的结果,当F1较高时则能说明试验方法比较有效。

8、其他评价指标

计算速度:分类器训练和预测需要的时间;

鲁棒性:处理缺失值和异常值的能力;

可扩展性:处理大数据集的能力;

可解释性:分类器的预测标准的可理解性,像决策树产生的规则就是很容易理解的,而神经网络的一堆参数就不好理解,我们只好把它看成一个黑盒子。

 

下面来看一下ROC和PR曲线(以下内容为自己总结):

1、ROC曲线: 

ROC(Receiver Operating Characteristic)曲线是以假正率(FP_rate)和正负率(TP_rate)

为轴的曲线,ROC曲线下面的面积我们叫做AUC,如下图所示:

图片根据Paper:Learning from eImbalanced Data画出


其中:这里写图片描述 

(1)曲线与FP_rate轴围成的面积(记做AUC)越大,说明性能越好,即图上L2曲线对应的

性能优于L1对应的性能。即:曲线越靠近A点(左上方)性能越好,曲线越靠近B点(右下方)曲线性能越差。 

(2)A点是最完美的performance点,B处是性能最差点。

(3)位于C-D线上的点说明算法性能和random猜测是一样的–如C、D、E点。位于C-D之上(即曲线位于白色的三角形内)说明算法性能优于随机猜测–如G点,位于C-D之下(即曲线位于灰色的三角形内)说明算法性能差于随机猜测–如F点。 
(4)虽然ROC曲线相比较于Precision和Recall等衡量指标更加合理,但是其在高不平衡数据条件下的的表现仍然过于理想,不能够很好的展示实际情况。

 

2、PR曲线:

即,PR(Precision-Recall)曲线。 
举个例子(例子来自Paper:Learning from eImbalanced Data): 
假设N_c>>P_c(即Negative的数量远远大于Positive的数量),若FP很大,即有很多N的sample被预测为P,因为这里写图片描述,因此FP_rate的值仍然很小(如果利用ROC曲线则会判断其性能很好,但是实际上其性能并不好),但是如果利用PR,因为Precision综合考虑了TP和FP的值,因此在极度不平衡的数据下(Positive的样本较少),PR曲线可能比ROC曲线更实用

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
游戏数据分析 变量选择 通过⽹络数据获取,得到游戏数据指标如下所⽰: 游戏数据分析的整体思路 第⼀步;数据⽂件获取(1.导⼊数据 2.查询结构 3.更改结构 4.汇总变量信息); 第⼆步;数据预处理(1.剔除缺失2.变量转换与衍⽣ 3.读出处理好的数据观察和可视化4.汇总变量类型); 第三步;数据挖掘(1.逻辑回归 2. 决策树 3.随机森林 4.三种模型⽐较验证); 第四步;展⽰与解读(1.描述统计分析 2.描述及模型解读) 提出问题 (1)问题:游戏app是否⾼频使⽤⽤户的影响因素是什么? (2)游戏产品的⾼频使⽤⽤户的定义:是否游戏⾼频⽤户的定义:对游戏使⽤量进⾏中位数划分,如果⼤于中位数是⾼频⽤户,低于中位 数是低频⽤户 上述数据源可⽤于分析的问题⾯有: (0): ⾼频游戏⽤户和低频游戏⽤户的影响因素是什么 (1)⾼频⽤户集中的游戏平台有哪些 (2)⾼频⽤户集中的游戏类型是什么,可针对市场⾼频⽤户的喜好开发热款游戏 (3)⾼频⽤户集中的销售额主要占⽐市场,可考虑游戏产品的设计主要⾯向哪个市场 解决商务问题和业务决策的应⽤点有: (1)游戏投资商可对⾼频⽤户的游戏类型进⾏投资 (2)游戏产品的市场⾯对群体的普及主要针对哪个市场 (3)游戏产品的市场⾯对哪类游戏受喜好的⼈多 分析⽬标:⾼频游戏⽤户的影响因素是什么? 数据选择:2010~2016年的游戏数据 变量指标选择:游戏名称、平台名称、发布年份、游戏类型、发布公司、北美销售额、欧洲销售额、⽇本销售额、其它地区销售额、全球销 售额、评价分数、游戏评价量、⽤户评分、游戏使⽤⼈数、游戏开发商。 变量相关性:选择分析变量相关性主要研究以下9个变量间的相关性情况: 北美销售额 欧洲销售额 ⽇本销售额 其它地区销售额 全球销售额 评价分数 评价量 ⽤户评分 ⽤户使⽤量 主要市场 通过分析得到,⽤户使⽤量和游戏评论量、评论分数,全球销售额存在相关。和其它地区的销售额⽆关,和⽤户的评分相关性较低。 得到相关系数图如下,其中除对⾓线以外,颜⾊越靠近深蓝⾊,表⽰相关性越强。其中⽤户使⽤量和⽤户得分与⽇本销售额相关性较低。其 余都存在⼀定程度的相关性。 ⽤户相关性计算,选择的是⽪尔逊相关系数,主要选择的是数数据进⾏相关性分析。 str(data) xgdata=sqldf("select NA_Sales,EU_Sales,JP_Sales,Other_Sales,Global_Sales,Critic_Score,Critic_Count,User_Score ,User_Count from data") str(xgdata) mf_cor=cor(xgdata)###求得相关系数 cor.plot <- corrplot(corr = mf_cor) 通过相关系数⾏最后⼀⾏的图形可以看出,⽤户是否⾼频使⽤情况和评论量有关,其次是评论⽤户数有⼀定的影响。 数据处理 1. 在Tableau和R中分析,哪些属性可以不分析(删除) ⽆关变量: 游戏名称 /⽤户得分,这两个变量属性属于⽆关变量,可进⾏删除。 2. 哪些属性需要派⽣ 研究对象为: (1)是否⾼频⽤户, 其中⾼频⽤户属于衍⽣变量,其定义为:对游戏⽤户使⽤量进⾏中位数划分,如果⼤于中位数是⾼频⽤户,低于中位 数是低频⽤户。 (2)游戏主要市场: 对北美、欧洲、⽇本,其它销售额进⾏⽐较判断,取最⼤的销售额作为主要市场,并以最⼤销售额的市场作为主要市 场。 3. 哪些属性需要补充缺失 其中缺失不需要进⾏补充,由于数据的业务背景了解不够,仅只对数据中的缺失进⾏删除。 4. 并将数据集分为"训练""测试""验证(如果必要的话)"三个⼦集。 数据训练集和测试集划分标准以0.8和0.2进⾏随机抽样,保证数据的⽆序抽取。划分代码如下: 其中处理数据的⽅法有随机森林,决策树、逻辑斯蒂回归, 模型精确度⽤AUC进⾏衡量,得到混淆矩阵,得出召回率,对⽐进⾏分析发现决策树模型效果较好。 使⽤测试集数据对综合预测模型,评估精确度、召回率。 模型的优化⽅法主要可在以下⼏个⽅⾯进⾏: 1. 获取更多的游戏指标数据 2. 对游戏数据的训练集样本增加,保证模型的训练精度 glm.full=glm(High_frequency_usage~.,family=binomial(link="logit"),data_train) glm.null=glm(High_frequency_usage~1,family=binomial(link="logit"),data_train) summary(glm.full) glm.aic=step(glm.full,trace=F,test="LRT") summary(glm.aic) glm.bic=

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值