机器学习应用建议

一、假设我们需要用一个线性回归模型来预测房价,当我们运用训练好了的模型来预测未知数据的
       时候发现有较大的误差,我们下一步可以做什么?
1. 获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可考
虑先采用下面的几种方法。
2. 尝试减少特征的数量
3. 尝试获得更多的特征
4. 尝试增加二项式特征
5. 尝试减少归一化程度λ
6. 尝试增加归一化程度λ

      我们不应该随机选择上面的某种方法来改进我们的算法,而是运用一些机器学习诊断法来帮助,我们知道上面哪些方法对我们的算法是有效的。

二、过拟合检验

      为了检验算法是否过拟合,我们将数据分成训练集和测试集,通常用 70%的数据作为训练集,用剩下 30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,通常我们要对数据进行“洗牌”,然后再分成训练集和测试集。
测试集评估
在通过训
练集让我们的模型学习得出其参数后,对测试集运用该模型,我们有两种方式计算误差:

1. 对于线性回归模型,我们利用测试集数据计算代价函数 J

机器学习应用建议

三、模型的选择(交叉验证集)

假设我们要在 10 个不同次数的二项式模型之间进行选择:

机器学习应用建议

显然越高次数的二项式模型越能够适应我们的训练数据集,但是适应训练数据集并不代表着能推广至一般情况,我们应该选择一个更能适应一般情况的模型。我们需要使用交叉验证集来帮助选择模型。 即:

使用 60%的数据作为训练集
使用 20%的数据作为交叉验证集
使用 20%的数据作为测试集
模型选择的方法为:
1. 使用训练集训练出 10 个模型
2. 用 10 个模型分别对交叉验证集计算得出交叉验证误差(代价函数的值)
3. 选取代价函数值最小的模型
4. 用步骤 3 中选出的模型对测试集计算得出推广误差(代价函数的值)