泛化:如果一个模型能够对没见过的模型做出准确的预测,我们就说它能够从训练集泛化到测试集,也就是说,对于一个没有见过的样本也具有“举一反三”的识别能力。如,我们告诉计算机1+1=2,之后的算法通过自己学习,而推广到多位数的加减法。如果机器只会计算学过的数字,并没有学以致用的能力,则可以说明机器的泛化程度相当低,我们称之为过拟合。如果机器没有很好的数据学习能力,如1+3得出了5的答案,我们称之为欠拟合。
接下来看一个例子:预测顾客是否会买房。
年龄 | 是否买房 | 婚否 | 子女数量 |
52 | 是 | 是 | 2 |
44 | 否 | 否 | 1 |
65 | 是 | 是 | 3 |
35 | 否 | 否 | 1 |
由上表我们可以得出一条规律:大于50岁、子女数量多于2个的顾客都会买房。但是,我们同样可以得出一条更简单的规律:大于50岁的顾客会买房。这条规律可以解释所有顾客行为,而不是与子女数量有关。那么,我们找到了简单的数据模型。如果将模型复杂化,如大于50岁、子女数量多于2个的顾客都会买房。那么就容易处于一种过分关注细节的状态,在训练集上表现很好,却不能泛化到所有新数据上。相反,有孩子的人都想买房,那么此时,你可能无法抓住数据的全部内容,在训练集上表现得很差。