机器学习预备知识
来源:互联网 发布:燕郊淘宝摄影棚 编辑:程序博客网 时间:2024/05/16 10:50
机器学习预备知识
尚不能完全理解一些概念的意义,所以未补全相关内容。待实践体会后补全。
关键概念
- 错误率(error rate):错误分类的个数占样本总数的比例。
- 精度(accuracy):精度=1-错误率
- 训练误差(training error)/经验误差(empirical error):学习器在训练集上,实际预测输出与样本的真实输出的差异。可通过训练实验得到,往往和真实数据集有差异,所以该误差只能作为模型效果的参考。
- 泛化误差(generalization error):学习器在新样本上,实际预测输出与样本的真实输出的差异。这是评估模型效果的标准。
- 过拟合(overfitting):把训练样本独有的特征,当做了所有潜在样本的特征,这样训练出来的模型,就会产生过拟合现象。学习能力过于“强”。
- 欠拟合(underfitting):与过拟合相反。是学习规律能力比较弱的表现。
模型评估方法
评估模型的好坏,主要是使用训练集数据进行模型训练,以及使用测试集进行泛化误差的评估。所以,评估模型的关键就在于训练数据集与测试数据集的选择方法。
留出法(hold-out)
直接将数据集分为两个互斥的集合,一个作为训练集一个作为测试集。一般使用2/3 - 4/5的数据作为训练集。
但是一定要保证两个数据集采样的均匀性,也就是通过分层采样(stratified sampling)达到各类数据分布的一致性,也就是说不能让某一特征的数据在训练集过于多,而在测试集过于少。
同时,为了保证结论更加可靠,一般采用多次随机划分、重复试验取平均值作为最终结果。
缺陷:测试样本集一般偏小,可能会因为训练样本规模不足导致偏差。
交叉验证法(cross validation)
将数据集划分为大小相似的k个互斥子集,每个子集都要通过分层采样得到,即保证数据分布的一致性。选择其中的k-1个子集作为训练集,剩下的一个作为测试集,这样排列组合可以进行k次训练和测试。
同样,一般也需要进行多次划分来减小误差。一般进行10次划分,每次都把数据集划分为10个子集,这就称为“10次10折交叉验证”。其结果一般认为比较精确。
注意,k的不同选择会影响结果,所以可以进行多次不同k值选择。
缺陷:数据集比较大时,计算代价较高。
自助法(bootstrap sampling)
从数据集D中随机采用m次,每次取出的样本都会被放回,这样有部分样本会被重复采样,也会有数据始终不被采样。始终不被采样的数据占
这样1/3的数据始终没被采样到,则把这部分数据作为测试集。
该方法在数据集较小、难以有效划分训练集和测试集时很有用。除此以外,留出法和交叉验证更有效一些。
性能评估(performance measure)
均方误差(mean squared error):
错误率:
查准率:检索出的信息有多大比例是用户感兴趣的。P=TP/(TP+FP)
查全率:用户感兴趣的有多少被检索出来了。R=TP/(TP+FN)
分类结果混淆矩阵
ROC与AUC
代价敏感错误率和代价曲线
比较检验
评估不同模型的效果优劣。
- 假设检验
- 交叉验证t检验
- McNemar检验
- Friedman检验和Nemenyi后续检验
- 机器学习预备知识
- 机器学习预备知识之概率论(上)
- 机器学习预备知识之概率论(下)
- 计算机视觉/机器学习/深度学习预备知识
- 机器学习应该准备哪些数学预备知识?
- 机器学习应该准备哪些数学预备知识?
- 机器学习应该准备哪些数学预备知识?
- 机器学习应该准备哪些数学预备知识?
- 汇编学习知识预备
- 计算机网络学习预备知识
- 学习SLAM预备知识
- kernel学习的预备知识
- 预备知识
- 预备知识
- 预备知识
- 预备知识
- 预备知识
- 预备知识
- 朴素贝叶斯
- js中容易被忽略的数字类型--Infinity
- 使用oprofile-1.1.0
- mybatis开发dao的方法
- 个人对 HashTable 和 Dictionary的区别总结
- 机器学习预备知识
- TensorFlow学习笔记10----Logging and Monitoring Basics with tf.contrib.learn
- TCP协议
- Linux 常用的目录处理命令总结
- 总结Struts2获取servletAPI的几种方式
- Spring boot 测试
- Linux 内核API文档(The Linux Kernel API)
- Java面向对象程序设计 类封装
- iOS 面试题集合~[有答案]