一、机器学习的简介
- 定义
Tom Mitchell给出的机器学习定义: 对于某类任务T和性能度量P,如果计算机程序在T上以P衡量的性能随着经验E而自我完善,那么就称这个计算机程序从经验E学习。
百度百科给出的机器学习定义:机器学习是多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、算法复杂度理论等多门学科。专门研究计算机怎样模拟或实现人类的学习行为,以获取新的知识或技能,重新组织已有的知识结构使之不断改善自身的性能。
- 分类
监督学习(supervised learning):数据集是有标签的,就是说对于给出的样本是知道答案的,我们大部分学到的模型都是属于这一类的,它包括K-近邻算法、决策树、朴素贝叶斯、逻辑回归、支持向量机等;
无监督学习(unsupervised learning):跟监督学习相反,数据集是完全没有标签的,主要的依据是相似的样本在数据空间中一般距离是相近的,这样就能通过距离的计算把样本分类,它包括聚类、EM算法等;
半监督学习(semi-supervised learning):半监督学习一般针对的问题是数据量超级大但是有标签数据很少或者说标签数据的获取很难很贵的情况,训练的时候有一部分是有标签的而有一部分是没有的;
强化学习:一直激励学习的方式,通过激励函数来让模型不断根据遇到的情况做出调整;
- 相关概念
训练集(training set/data)/训练样例(training examples): 用来进行训练,也就是产生模型或者算法的数据集;
- 深度学习(Deep Learning)
它是基于机器学习延伸出来的一个新的领域,由以人大脑结构为启发的神经网络算法为起源加之模型结构深度的增加发展,并伴随大数据和计算能力的提高而产生的一系列新的算法。深度学习,作为机器学习中延伸出来的一个领域,被应用在图像处理与计算机视觉,自然语言处理以及语音识别等领域。
- 机器学习步骤
先把数据拆分为训练集和测试集,再用训练集和训练集的特征向量来训练算法,然后用学习来的算法运用在测试集上来评估算法 (可能要设计到调整参数(parameter tuning), 用验证集(validation set)。
二、模型评估与选择
- 误差相关概念、过欠拟合
错误率(error rate):通常把分类错误的样本数占样本总数的比例。
精度(accuracy): 1 - 错误率。
误差(error):把学习器的实际预测输出和样本的真实输出之间的差异;
训练误差(training error):也称为经验误差(empirical error),学习器在训练集上的误差;
泛化误差(generalization error):学习器在新样本上的误差;
过拟合(overfitting):当学习器把训练样本学得“太好”了的时候,很可能已经把训练样本自身的一些特点当作了所有潜在样本都会具有的一般性质,这样就会导致泛化性能下降。这种现象称为过拟合。学习能力太过强大,以至于把训练样本所包含的不太一般的特性都学到了,过拟合是无法避免的,能做的只是缓解或者减小其风险。
欠拟合(underfitting):指学习器对训练样本的一般性质尚未学好。欠拟合比较容易客服,如在在决策树学习中扩展分支、神经网络学习中增加训练轮数。
- 评估方法
假设有数据集D={(x1,y1),(x2,y2),...,(xm,ym)},对D进行适当处理,从中产生训练集S和测试集T。下面介绍几种常见的方法。
留出法(holdout):
它直接将数据集D划分为两个互斥的集合,其中一个作为训练集S,另一个作为测试集T。在S上训练出模型后,用T来评估其测试误差,作为对泛化误差的估计。训练集和测试集的划分要尽可能的保持数据分布的一致性。
交叉验证法(cross validation):
它先将数据集D划分为K个大小相似的互斥子集,每个子集Di都尽可能保持数据分布的一致性。然后,每次用K-1个子集的并集作为训练集,余下那个子集作为测试集;这样就可以获得K组训练集和测试集,从而可进行K次训练和测试,最终返回的是这K次测试结果的均值。K通常取值为10,称为10折交叉验证。
自助法(bootstrapping):
对于给定的包含m个样本的数据集D,对它进行m次有放回的取出一个样本,得到新的数据集D1。初始数据集D中约有36.8%的样本未出现在D1中,可将D1作为训练集,D-D1作为测试集。
- 性能度量
回归任务最常用的性能度量是均方误差(mean squared error);
在分类问题中,使用的性能度量主要有(混淆矩阵)准确率 、召回率 、 F1度量。