应用机器学习的建议
若在过程中,遇到了很大的预测误差该怎么办
**改进算法的几种办法:
-
获得更多的训练实例——通常是有效的,但代价较大,下面的方法也可能有效,可考虑先采用下面的几种方 ---解决高方差
-
尝试减少特征的数量(可以仔细挑选一些来防止过拟合) --解决高方差
-
尝试获得更多的特征 也可能是目前的特征还不够 --解决高偏差
-
尝试增加多项式特征 如 --解决高偏差
-
尝试减少正则化程度λ --解决高偏差
-
尝试增加正则化程度λ --解决高方差
如何判断一组假设是否过拟合 (就像有很多特征时)
为了检验算法是否过拟合,我们将数据分成训练集和测试集,通常用70%的数据作为训练集,用剩下30%的数据作为测试集。很重要的一点是训练集和测试集均要含有各种类型的数据,
通常我们要对数据进行“洗牌”,然后再分成训练集和测试集。
一种来训练和测试你的学习算法的典型方法: 比如线性回归算法
先用训练数据集(70%),算出θ, 再用测试数据集算出J(θ)
当遇到分类问题时: 使用 逻辑回归算法
同样的,先用训练集求出θ。
还有一种方法就是用错误分类法:
即
模型选择
我们要选择一个多项式来拟合模型,来检测对新样本的泛化能力。但如何选择一个模型。
于是,为了验证我们的假设。我们把一个训练集分为三个部分。
60%训练,20%交叉验证 (CV),20%测试集 (test) **
即我们应该用交叉训验证集来选择模型(几次多项式)
这里我们直接用交叉验证集(cv)来选择模型,然后选出最小的Jcv(θ)。可以最后用测试集来测试泛化的误差。
判断偏差与方差
即要么是过拟合问题 要么是欠拟合问题
欠拟合 刚好 过拟合
如果Jcv和Jtrain偏差都过大,如何判断是高偏差问题还是高方差问题。
左边是高偏差问题, 也就是你使用了一个过于小的多项式次数。比如说d=1,我们需要一个更多次的项。(欠拟合问题)
右边是高方差问题,也就是说多次项系数d对于我们的数据来讲太大了 (过拟合问题)
___________________________________________________________________________________
正则化和偏差,方差 (正则化的取值)
我们选择一系列的想要测试的 λλ 值,通常是 0-10之间的呈现2倍关系的值
(如:0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,2.56,5.12,10共12个)。
我们同样把数据分为训练集、交叉验证集和测试集。
____________________________________________________________________________________________
学习曲线
高偏差情况:
高方差情况