学习教材:《机器学习》[周志华著]
配套教材:《机器学习公式详解》[Datawhale](南瓜书)
参考教材:《统计学习方法》[李航著]
总结
这两章主要是理清机器学习的相关概念和最基本的思想方法,为后面具体学习各类模型奠定基础,所以这两章的学习,以概念辨析、形成大体的框架为主,其中,模型评估和选择部分,可以先大致了解思想方法,而不做深究,学习深入后再回头整理。
基本概念
- 机器学习(学科视角):研究如何通过计算手段,利用经验来改善自身的性能。主要研究内容:在计算机上从数据中产生“模型”的算法,即“学习算法”(learning algorithm)
计算手段:学习算法
经验:数据
自身性能:模型评估和性能测量
以上三点基本可以说是学习机器学习的基本关注点。
输入相关
- 示例(instance)/样本(sample)/特征向量(feature vector):关于一个事件或对象的描述。由多个属性值组成。
- 属性(attribute)/特征(feature):反映事件或对象在某方面的表现或性质的事项。在很多实际的问题中,事物或对象的特征并不可以直接得出,所以需要进行特征提取,关于特征提取的过程及其使用的技术也称为特征工程。
- 属性值:属性上的值。
- 属性空间(attribute space)/样本空间(sample space)/输入空间:属性张成的空间。
“张成空间”是线性代数的概念,可以通俗地理解为:某类事物有n个属性,每个属性相当于一个坐标轴,这些坐标轴张成一个n维空间,每个属性具体的属性值就构成了一个向量,那么多个向量就构成了一个矩阵。所以,数据就可以以矩阵的形式输入,方便进行后面一系列的矩阵运算(很多学习算法都是基于矩阵运算的)。
- 数据集(data set):所有示例/样本/特征向量的集合。
训练相关
- 学习(learning)/训练(training):从数据中学得模型的过程,这个过程通过执行某个学习算法完成。
- 训练数据(training data)、训练样本(training sample)和训练集(training set):训练过程中使用的数据中使用的数据成为“训练数据”,其中每个样本成为一个“训练样本”,训练样本组成的集合称为“训练集”。
- 样例(example):拥有了标记信息的示例/样本/特征向量。标记信息是训练样本的“结果”信息。一般在有监督学习中才会给出标记信息。
- 泛化(generalization):学得模型适应新样本的能力。也就是说,当输入训练集以外的样本时,模型能给出尽可能正确结果的能力。提高泛化能力,可以说是机器学习训练的目标。
- 过拟合(overfitting)/欠拟合(underfitting):过拟合是指,机器学习将训练样本自身的特点当做了所有潜在样本都具有的一般性质,比如,在分类问题中,当遇到新样本时,即使新样本在现实中属于某类,模型也会判断它不属于某类,欠拟合则反之。过拟合问题是机器学习面临的关键障碍。
- 假设(hypothesis)与假设空间:学得模型对应的数据的某种潜在规律。这个概念相对没有那么好理解,举个例子,学习器的假设之一:“(色泽=*)^(根蒂=*)^(敲声:浊响)↔好瓜”,也就是说学习器会这么认为:不管这个瓜的色泽和根蒂怎么样,只要它的敲声是浊响的,那么它就是好瓜。但是假设不一定符合客观情况,也就是说不一定正确。假设空间就是该样本下,所有假设的集合。
- 真实/真相(ground-true):潜在规律本身,也就是客观的情况。那上面的例子说,也就是真正是好瓜的情况。学习过程就是找出真相或者使假设尽可能接近真相。
- 版本空间(version space):一个与训练集一致的“假设集合”,也就是说,从训练集的数据看,哪些假设是最可能成立的。
- 归纳偏好(inductive bias):机器学习算法在学习过程中对某种类型假设的偏好。也就是说,该算法更倾向于认为哪个假设最接近真实情况。
- 学习任务一般分为“分类”、“回归”和“聚类”两种。
输出相关
- 错误率(error rate)和精度(accuracy):“错误率”是指分类错误的样本数占样本总数的比例。精度是指分类正确的样本数占样本总数的比例。显然,两者之和为1。
- 训练误差(training error)/经验误差(empirical error):训练误差是指,学习器(模型)在训练集上的误差,其中,误差是指学习器的实际预测输出与样本的真实输出之间的差异。
- 泛化误差(generalization error)和测试误差(test error):泛化误差是指学习器在新样本上的误差;测试误差是指学习器在测试集上的误差。一般用测试误差代替训练误差。
- 测试(traing)和测试样本(testing sample):测试是指,学得模型后,使用其进行预测的过程;而被预测的样本成为“测试样本”。关于测试样本的划分,具体可参照()
- 模型选择(model selection):选择合适的学习算法和参数配置,这里的合适,指的是几种模型中的最佳模型。
- 性能度量(performance measure):衡量模型泛化能力的评价标准。
基于以上概念,可以梳理出机器学习(有监督学习)的大致流程:
- 收集数据集,将数据集按一定的方法划分出训练集和测试集。
- 将训练集的特征向量(样本/示例)输入事先确定好的学习算法,进行训练。在训练的过程中注意“过拟合”问题的出现。
- 将测试集的训练好的特征向量(样本/示例)输入训练好的模型,结合测试误差和样本的标记值,得出测试误差。
- 最后根据一定的性能度量,进行模型选择。
一原则与一定理
奥卡姆剃刀(Occam's razor)原则
若有多个假设与观察一致,则选最简单的那个。
“没有免费的午餐”定理(No Free Lunch Theorem NFL)
总误差(期望误差)与学习算法无关。
因此需要结合实际问题去谈论“什么学习算法更好”
(一个挺美妙的数学证明)
训练集和测试集的划分方法
留出法
直接将数据集划分成互斥的两个集合,一般需要采用分层抽样和随机划分取平均值。
交叉验证法
先将数据集划分成k个大小相似的互斥子集,每个子集尽可能保持数据分布的一致性,然后k-1个子集的并集作为数据集,剩下的一个子集作为测试集,按这种方法形成k组训练集/测试集,最后取各组训练集/测试集测试结果的平均值。
自助法
每次随机从数据集中挑选一个样本,然后拷贝放入另一个集合中,再将这个样本放回原数据集。假设数据集中有m个样本,那么这个过程就重复m次,形成另一个等大小的新集合,用新集合作为训练集,原数据集未被抽到的样本集合作为测试集。
性能度量(暂时了解,不做深究)
错误率与精度;查全率、查准率和F1(查全率和查准率的调和平均数)、ROC和AUC、代价敏感错误率与代价曲线
(未完待续……)