如何评估模型的预测性能?
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
如何评估模型的预测性能?相关推荐
- 使用折外预测(oof)评估模型的泛化性能和构建集成模型
机器学习算法通常使用例如 kFold等的交叉验证技术来提高模型的准确度.在交叉验证过程中,预测是通过拆分出来的不用于模型训练的测试集进行的.这些预测被称为折外预测(out-of-fold predic ...
- 如何使用Keras和TensorFlow建立深度学习模型以预测员工留任率
The author selected Girls Who Code to receive a donation as part of the Write for DOnations program. ...
- 集成时间序列模型提高预测精度
使用Catboost从RNN.ARIMA和Prophet模型中提取信号进行预测 集成各种弱学习器可以提高预测精度,但是如果我们的模型已经很强大了,集成学习往往也能够起到锦上添花的作用.流行的机器学习库 ...
- 阿里巴巴开源大规模稀疏模型训练/预测引擎DeepRec
简介:经历6年时间,在各团队的努力下,阿里巴巴集团大规模稀疏模型训练/预测引擎DeepRec正式对外开源,助力开发者提升稀疏模型训练性能和效果. 作者 | 烟秋 来源 | 阿里技术公众号 经历6年时间 ...
- ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能
ML之SVM:利用SVM算法对手写数字图片识别数据集(PCA降维处理)进行预测并评估模型(两种算法)性能 目录 输出结果 设计思路 核心代码 输出结果 设计思路 核心代码 estimator = PC ...
- python 交叉验证后获取模型_Python机器学习:6.2 K折交叉验证评估模型性能
训练机器学习模型的关键一步是要评估模型的泛化能力.如果我们训练好模型后,还是用训练集取评估模型的性能,这显然是不符合逻辑的.一个模型如果性能不好,要么是因为模型过于复杂导致过拟合(高方差),要么是模型 ...
- R语言构建文本分类模型:文本数据预处理、构建词袋模型(bag of words)、构建xgboost文本分类模型、xgboost模型预测推理并使用混淆矩阵评估模型、可视化模型预测的概率分布
R语言构建文本分类模型:文本数据预处理.构建词袋模型(bag of words).构建xgboost文本分类模型.xgboost模型预测推理并使用混淆矩阵评估模型.可视化模型预测的概率分布 目录
- R语言构建logistic回归模型并评估模型:模型预测结果抽样、可视化模型分类预测的概率分布情况、使用WVPlots包绘制ROC曲线并计算AUC值
R语言构建logistic回归模型并评估模型:模型预测结果抽样.可视化模型分类预测的概率分布情况.使用WVPlots包绘制ROC曲线并计算AUC值 目录
- R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数、阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化、基于数据阳性样本比例选择合适的分类评估指标
R语言构建logistic回归模型并评估模型:构建基于混淆矩阵计算分类评估指标的自定义函数.阳性样本比例(垃圾邮件比例)变化对应的分类器性能的变化.基于数据阳性样本比例选择合适的分类评估指标 目录
最新文章
- numpy库学习 向量 矩阵 均为有两个[[ ,而秩为1的数组只有一个[ np.array([[]]) 与np.array([])的区别
- 《经济学人》万字长文:DeepMind和谷歌的AI拉锯战
- Acunetix WVS安全测试软件使用教程(入门级)
- git merge --squash改写提交
- [转载][记录]javascript生成不重复的随机数
- Acwing 1089. 烽火传递
- python求回数_用python求回数
- cad渐变线怎么画_怎么画压力线和支撑线
- 书籍《智能交通》-观后感-2021年12月-下期分享
- 金属热处理行业调研报告 - 市场现状分析与发展前景预测
- python xlwt操作excel
- php xml 格式化,PHP:XML操作
- linux v4l2进行视频采集编程介绍
- 十款真正的编程游戏软件
- 各地的公安接口的配置说明书
- mysql原生态查询java_java使用原生MySQL实现数据的增删改查
- TS-Function
- IT行业里的热门技术 | 热门IT技术项目分享 | 详细介绍一下机器人技术
- 【kafka专栏】使用shell脚本快速搭建kafka单机版(含视频)
- 连接器是什么?连接器有什么作用?
热门文章
- xay loves trees
- Data Structure Problem
- 叁仟柒佰万(mex+线段树+dp+前缀和优化+双指针+桶)
- CF1444C Team-Building(可持久化并查集)(二分图)
- CF600F:Edge coloring of bipartite graph(二分图、构造)
- YbtOJ#593-木棍问题【费用流】
- P4782-[模板]2-SAT问题【tarjan】
- ssl2331OJ1373-鱼塘钓鱼 之3【dp】
- Binary Search
- 【dfs】【bfs】【链表】 求连通分量 (ssl 1759)