1. 假设空间
本节的重点是理解“假设空间”和“版本空间”,下面以“房价预测”举例说明。假设现已收集到某地区近几年的房价和学校数量数据,希望利用收集到的数据训练出能通过学校数量预测房价的模型,具体收集到的数据如表1-1所示。
基于对以上数据的观察以及日常生活经验,不难得出“房价与学校数量成正比”的假设,若将学校数量设为 x,房价设为 y,则该假设等价表示学校数量和房价呈 y = wx + b 的一元一次函数关系,此时房价预测问题的假设空间即为“一元一次函数”。确定假设空间以后便可以采用机器学习算法从假设空间中学得模型,即从一元一次函数空间中学得能满足表1-1中数值关系的某个一元一次函数。学完第 3 章的线性回归可知当前问题属于一元线性回归问题,根据一元线性回归算法可学得模型为 y = 3x − 2。
除此之外,也可以将问题复杂化,假设学校数量和房价呈 y =wx2 + b 一元二次函数关系,此时问题变为了线性回归中的多项式回归问题,按照多项式回归算法可学得模型为 y = x2。因此,以表1-1中数据作为训练集可以有多个假设空间,且在不同的假设空间中都有可能学得能够拟合训练集的模型,我们将所有能够拟合训练集的模型构成的集合称为“版本空间”。
2. 归纳偏好
在上一节“房价预测”的例子中,当选用一元线性回归算法时,学得的模型是一元一次函数,当选用多项式回归算法时,学得的模型是一元二次函数,所以不同的机器学习算法有不同的偏好,我们称为“归纳偏好”。对于当前房价预测这个例子来说,这两个算法学得的模型哪个更好呢?著名的“奥卡姆剃刀”原则认为“若有多个假设与观察一致,则选最简单的那个”,但是何为“简单”便见仁见智了,如果认为函数的幂次越低越简单,则此时一元线性回归算法更好,如果认为幂次越高越简单,则此时多项式回归算法更好,因此该方法其实并不“简单”,所以并不常用,而最常用的方法则是基于模型在测试集上的表现来评判模型之间的优劣。测试集是指由训练集之外的样本构成的集合,例如在当前房价预测问题中,通常会额外留有部分未参与模型训练的数据来对模型进行测试。假设此时额外留有 1 条数据:(年份 : 2022年; 学校数量 : 3所; 房价 : 7万/m2) 用于测试,模型 y = 3x − 2 的预测结果为 3 ∗ 3 − 2 = 7,预测正确,模型 y = x2 的预测结果为 32 = 9,预测错误,因此,在当前房价预测问题上,我们认为一元线性回归算法优于多项式回归算法。
机器学习算法之间没有绝对的优劣之分,只有是否适合当前待解决的问题之分,例如上述测试集中的数据如果改为 (年份 : 2022年; 学校数量 : 3所; 房价 : 9万/m2) 则结论便逆转为多项式回归算法优于一元线性回归算法。