如何评估模型的预测性能?

you can refer to 如何评估模型的预测性能?


一、模型评估简介

http://www2.mccombs.utexas.edu/faculty/Maytal.Saar-Tsechansky/Teaching/MIS_373/Fall2004/Model Evaluation.ppt

 

二、评估数据

用于模型评估的数据和用于模型训练的数据最好是两套,否则用模型训练的数据来评估模型的性能可能会高估模型在数据未知情况下的性能表现。通常情况下,我们可以从原始数据中按照一定比例来切分数据,取三分之二的数据用于建模,剩下三分之一的数据用于模型评估。在有多个候选模型的情况下,还可以将数据进一步分为三部分:训练数据(训练模型)、验证数据(评比候选模型性能,选出冠军模型)、测试数据(评估冠军模型的错误率)。

 

三、评估方法

评估模型性能的方法和指标有很多,不同的算法有不同的模型评估方法和指标。

 

1、分类模型

  • 错分率


  • 准确率 (Accuracy)
  • 精度(Prediction)
    Prediction和Accuracy是两个不同的概念,具体差异请阅读下面两篇文章:
    http://www.mathsisfun.com/accuracy-precision.html
    http://en.wikipedia.org/wiki/Accuracy_and_precision


  • Lift
  • ROC
  • KS
    关于Lift,ROC,KS 的概念和计算方法,请阅读http://chem-eng.utoronto.ca/~datamining/dmc/model_evaluation_c.htm

    对于lift,采用不同的分组方法,得到的Lift值可能是不同的。具体讨论,请阅读http://www.geniqmodel.com/res/DecileAnalysisPrimer.html 


  • 收益率

 

2、数值预测模型(连续变量)

  • 均方误(Mean-Squared Error, MSE)
    缺陷:可能会因为奇异值(outlier)的存在而夸大影响


  • Mean Absolute Error (MAE)

 

  • Root Mean-Squared Error (RMSE)


  • 借助图形分析工具

   

错误的评估方法:

  • 相关分析方法

 

四、SAS 产品介绍

  • SAS Model Manager
    生产环境下预测模型管理最佳实践 - SAS
    用户使用手册

 

五、应用难点

1、没有足够多的数据

我们都知道用于建模的数据越多,建出的模型会越可靠和越准确,然而有时候我们很难获取到足够的数据即便只是用于训练模型的数据,更不用说分割成训练、验证和评估三部分。这种情况下可以采用交叉验证的方法尽可能地利用有限的数据。

 

2、不滥用评估数据,熟悉指标计算的方法,正确理解指标的含义。

  • 准确率并非越大越好
    下面的 PPT 中作者举了一个例子很好地说明了这一点。
    http://www2.mccombs.utexas.edu/faculty/Maytal.Saar-Tsechansky/Teaching/MIS_373/Fall2004/Model Evaluation.ppt


  • 准确率不等于收益率,准确率高的模型收益未必最大。 
    下面的 PPT 中给了一个例子说明这一点。
    http://www2.mccombs.utexas.edu/faculty/Maytal.Saar-Tsechansky/Teaching/MIS_373/Fall2004/Model Evaluation.ppt
     

3、缺乏成本收益数据

一个管理混乱的企业可能都没有精确的成本收益数据,尤其是可以细分到每个活动或者客户的成本收益数据,缺乏这样的数据,分析师也只能巧妇难为无米之炊。

 

4、如何选择最适用的评估方法?

模型师可能会选择有利于自己的指标来说明模型的性能,客观全面地评价模型,有时候很难做到。

 

5、如何设置阈值?

没有包治百病的神药,也没有统一的标准设置阈值,用户需要根据企业的需要反复测试验证,直到找出合理的阈值以实现最大收益。下面这篇文章中有一段对于Lift 的介绍,值得一读。

http://www.chinabi.net/CIO/knowledge/200702/27.html 


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/330876.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

JDK8的日期时间类1

localDateTime类 1.分类 将时间分成 localDate类【年月日]】 localTime类【时分秒】 localDateTime类【年月日时分秒】 2.localDateTime类【常用】 (1)构造方法 public class Demo1 {public static void main(String[] args) {//localDateTime[天时分…

Spring Boot 2.0 正式发布

转载自 重磅:Spring Boot 2.0 正式发布! Spring Boot 2.0 正式发布! 2018/03/01最新消息,传得沸沸扬扬的Spring Boot 2.0 正式发布了。 小编去看了下Spring Boot的官网,正式版本已经释放出来了!&#xff01…

LNCS用户写作指南【 Springer Computer Science Proceedings 】

转自: http://blog.csdn.net/wyskys/article/details/18075471 重点是文末的参考文献格式(主要的是 链接, 期刊论文,会议论文的引用格式) 下載地址 :http://static.springer.com/sgw/documents/1121537/a…

JDK8的日期时间类2

1.localDateTime类格式化和解析 概念 (1)格式化:把localDateTime对象转换为String,需通过DateTimeFormatter对象指定格式 (2)解析:把String转换为localDateTime对象,需通过DateTimeFormatter对象指定格式 注:localDat…

44个Java代码性能优化总结

转载自 44个Java代码性能优化总结代码优化的最重要的作用应该是:避免未知的错误。在代码上线运行的过程中,往往会出现很多我们意想不到的错误,因为线上环境和开发环境是非常不同的,错误定位到最后往往是一个非常小的原因。然而为了…

JDK8的日期时间类3

计算两个时间的间隔 方法:between【静态方法】 1.获取相隔的年月日用Period调用,参数用LocalDate类对象封装的时间 2.获取相隔的天年月日用Duration调用,参数用LocalDateTime类对象封装的时间 //计算两个时间的间隔 public class Demo7 {pu…

分类算法中常用的评价指标

转自: 分类算法中常用的评价指标 来自网络,备份勿忘! 对于分类器(分类算法),评价指标主要有:1)Precision;2)Recall;3)F-score;4)Accur…

Java 9 中的9个新特性

转载自 强悍!Java 9 中的9个新特性 你可能已经听说过 Java 9 的模块系统,但是这个新版本还有许多其它的更新。 这里有九个令人兴奋的新功能将与 Java 9 一起发布。 Java 平台级模块系统 Java 9 的定义功能是一套全新的模块系统。当代码库越来越大&#…

处理可能发生的异常

什么是异常? 异常指的时程序在【编译】和【运行时】的一些不正常的状况。 Java的工程师其实早就想到可能会出现这些问题,他们把常见的问题写成类。 当我们出现这些异常时,可以根据API中去查找这些异常产生的原因。 ArrayIndexOutOfBoundsException: 数组…

如何评价分类模型性能?(足球荔枝)

【1】评价分类模型,我们一般从两个点出发 1.通过指标来评估该模型是否适合对预测对象? 评价指标主要有:1)Precision;2)Recall;3)F-score;4)Accuracy;5)ROC;6)AUC[1] 2.通过计算预测…

区块链在阿里巴巴天猫中的应用

转载自 双11:区块链在阿里巴巴天猫中的应用 背景 天猫国际正在全面启动全球溯源计划——将利用区块链技术、药监码技术以及大数据跟踪进口商品全链路,汇集生产、运输、通关、报检、第三方检验等信息,给每个跨境进口商品打上“身份证”。这项…

这七种回归分析技术,学了不后悔

转自: http://dataunion.org/20514.html 什么是回归分析? 回归分析是一种预测性的建模技术,它研究的是因变量(目标)和自变量(预测器)之间的关系。这种技术通常用于预测分析,时间序列…

单双列集合总述

Collection[单列集合]接口 有List 和 Set子接口 和Map接口[双列集合]并列 **1.**List接口 实现类:ArrayList 和 LinkedList ;特点:有序,可重复,有对索引的增删改查相对操作的方法 a.ArrayList:底层为数组 查询快[根据地址和索引查找],增删慢 b.LinkedList:底层为链…

Java正确获取客户端真实IP方法整理

转载自 干货:Java正确获取客户端真实IP方法整理在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP…

机器学习性能评估指标(综合性总结)

转自:http://charleshm.github.io/2016/03/Model-Performance/ 分类 混淆矩阵1 True Positive(真正, TP):将正类预测为正类数.True Negative(真负 , TN):将负类预测为负类数.False Positive(假正, FP):将负类预测为正类数 → 误报…

单列集合List的实现类

List接口 [Collection】的子类 1.ArrayList【查询快&#xff0c;增删慢】 &#xff08;1&#xff09;ArrayList常见方法【部分】 //list[Collection的子类,也是接口],ArrayList也是其实现类 public class Demo2 {public static void main(String[] args) {List<String>…

8张图带你轻松温习Java知识

转载自 8张图带你轻松温习Java知识 1 字符串不变性 下面这张图展示了这段代码做了什么 [code ]String s "abcd"; s s.concat("ef");[/code] 2 equals()方法、hashCode()方法的区别 HashCode被设计用来提高性能。equals()方法与hashCode()方法的区别在…

Linux的安装及管理程序

一、如何在linux安装卸载软件 1. 编译安装 灵活性较高 难度较大 可以安装较新的版本 2. rpm安装&#xff08;redhat&#xff09; linux 包安装 查软件信息&#xff1a;是否安装&#xff0c;文件列表 rpm 软件名 3. yum yum是RPM升级版本&#xff0c;解决rpm的弊端 安装软件 首…

机器学习评价指标大汇总

转自&#xff1a; http://www.zhaokv.com/2016/03/ml-metric.html 在使用机器学习算法的过程中&#xff0c;针对不同场景需要不同的评价指标&#xff0c;在这里对常用的指标进行一个简单的汇总。 &#xff08;分类和拟合的评价指标&#xff0c;正好应用到本人的论文中&#xff…

阿里Druid连接池监控的两个坑

转载自 注意&#xff1a;阿里Druid连接池监控的两个坑阿里的Druid大家都知道是最好的连接池&#xff0c;其强大的监控功能是我们追求的重要特性。但在实际情况中也有不少坑&#xff0c;说下最近遇到的一个坑吧&#xff01; 问题1&#xff1a;不断打印error级别的错误日志sessio…