《机器学习》(周志华)第一章 绪论
1.1 引言
机器学习致力于研究如何通过计算的手段,利用经验来改善系统自身的性能。其所研究的主要内容,是关于在计算机上从数据中产生“模型”(model)的算法,即“学习算法”(learning algorithm)。
本书中,“模型”泛指从数据中学得的结果,有的文献中用“模型”指全局性结果,而用“模式”指局部性结果。
1.2 基本术语
-
要进行机器学习,首先要有数据。
-
一批关于某种事物的数据的集合称为一个数据集(data set)。其中,每条记录是关于一个事件或对象的描述,称为一个示例(instance)或者一个样本(sample)。(注意: 有时候整个数据集也被称为一个”样本“,因为它可以看作对样本空间的一个采样,故需要通过上下文判断”样本“为单个示例还是整个数据集。)
-
反映事物在某方面的表现或性质的事项称为属性(attribute)或特征(feature)。其上的具体取值,称为属性值或者特征值。
-
属性张成的空间称为属性空间、样本空间或输入空间。一般情况下,若某个样本有d个属性,则该样本空间即为d维样本空间,由于每一个示例都在该空间上对应一个点,每一个点对应一个坐标向量,故可以把一个示例称为一个特征向量。
-
从数据中学得模型的过程称作训练或者学习。
-
训练过程的数据称为训练数据(training data),其中每个样本称为一个训练样本,训练样本组成的集合称为训练集(training set)。
-
学得的模型对应了数据中的某一潜在规律,故又称为假设(hypothesis),该潜在规律自身,称为 “真实”或“真相” 。
关于示例结果的信息,称为标记(label),所有标记的集合,称为 “标记空间” 或者“输出空间”。(类似方程,x11+x12+x13+…+x1d = y1 )
分类: 若预测的是离散值,例如“1”“0”,此类学习任务称为分类(classification)。
回归: 若预测的是连续值,则该学习任务称为回归(regression)。
分类中又可分为二分类与多分类任务,二分类顾名思义,只需分2类,一般分别称为“正类”与“反类”,且一般正类用“1”表示,反类用“0”表示。(不绝对)
-
学得模型后,用其进行预测的过程称为测试(test),被预测的样本称为测试样本(test sample)。
-
此时引入聚类(clustering) 概念,即将训练集中样本分为若干组,每一组称为一“簇”(cluster)。
在这里要明白聚类与分类的区别,就要先明白何为监督学习,何为无监督学习。
监督学习: 训练数据有标记信息的学习过程。亦称:有导师学习。
无监督学习: 训练数据没有标记信息的学习过程。亦称:无导师学习。
- 分类和回归属于典型的监督学习问题,而聚类属于无监督学习问题。故分类与聚类的区别显而易见。
分类是训练数据已有人为标记信息,计算机通过学习这些训练数据,将未出现在训练样本中的陌生的数据分到已有的类别中的过程。
聚类是训练数据没有任何标记信息,计算机需要自行寻找特征,将这些数据分为几个簇,然后将陌生的数据分到计算机自己划分的几个簇中的过程。
- 需要注意的是,机器学习的目的是使学得的模型可以更好的适用于未知样本。故引入"泛化“定义。
泛化: 机器学习所学得模型适用于陌生数据的能力。
- 我们常说泛化性能优劣,即指模型对于陌生数据的适用性的好坏。
一般我们假设全体数据在样本空间上满足一个未知的分布,那么学习的目的就可以认为寻找最契合这个分布的一个函数来把训练样本完美的分到各自的类中。一般情况下,训练样本越多,我们得到的关于该分布的信息就越多,这样就越有可能找到这个函数,也就越有可能通过学习获得具有强泛化能力的模型。
1.3 假设空间
归纳与演绎是科学推理的两大基本手段。
- 前者是从特殊到一般的“泛化”过程,即从具体的事实归结出一般性规律;
- 后者则是从一般到特殊的“特化”,即从基础原理推导出具体状况。
学习过程可以看作是一个在所有假设组成的空间中进行搜索的过程,目的是找到与训练集匹配的假设。而现实中,可能会有多个假设与训练集一致,即存在一个与训练集一致的“假设集合”,称之为“版本空间”。
1.4 归纳偏好
- 定义: 机器学习算法在学习过程中对某种假设类型的偏好,称为归纳偏好。
需要注意,任何一个机器学习算法都必有其归纳偏好,否则将无法产生确定的学习结果。
- 一个神奇的结论:对于算法A来说,若其在某些方面比算法B好,那么必然存在一些方面B比A好。这个结论对任何算法均成立,无一例外!
“没有免费的午餐”定理(No Free Lunch Theorem, NFL): 无论学习算法A多么聪明,学习算法B多么笨拙,它们的期望性能完全一样(总误差与学习算法无关)。
但是需要注意,NFL定理的前提是所有问题出现的机会相同或者所有问题同等重要,但是实际情形并不是这样。
那么NFL定理有什么用呢?
NFL定理是让我们意识到:脱离具体问题而空泛的谈论哪一个算法更好毫无意义!