评判一个模型:
回归: J(Θ) 的大小,越小越好
逻辑回归分类: 用错误率 err( hΘ(x)-y)来衡量。
选择模型: 分别用几次方程拟合比较合适,
把数据集分为:
训练集, 交叉验证集(cv),测试集合。分别占比6,2,2。 用训练集分别对不同的模型(不同阶)训练, 然后再交叉集上选出一个最好的模型, 然后再用测试集来得到它的泛化误差。
偏差 bias和方差 variance:
一般欠拟合呈现偏差大,方差小特点,过拟合偏差小,方差大
如果lambda 太大, 则相当于惩罚作用太大, 导致所有的Θ 1-n都接近0。
如果lambda 太小,则相当于没有惩罚,导致过拟合。
选择合适的lambda 和选择模型阶数是一样,也需要进行筛选, 像上面一样,多个lambda值训练后,在交叉集上个选择最好的
- Create a list of lambdas (i.e. λ∈{0,0.01,0.02,0.04,0.08,0.16,0.32,0.64,1.28,2.56,5.12,10.24});
- Create a set of models with different degrees or any other variants.
- Iterate through the λ s and for each λ go through all the models to learn some Θ .
- Compute the cross validation error using the learned Θ (computed with λ) on the JCV(Θ) withoutregularization or λ = 0.
- Select the best combo that produces the lowest error on the cross validation set.
- Using the best combo Θ and λ, apply it on Jtest(Θ) to see if it has a good generalization of the problem.
怎么辨别一个模型是过拟合欠拟合, 是偏差问题还是方差问题,还是方差偏差都有问题,可以通过:
学习曲线
Experiencing high bias:
Low training set size: causes Jtrain(Θ) to be low and JCV(Θ) to be high.
Large training set size: causes both Jtrain(Θ) and JCV(Θ) to be high with Jtrain(Θ) ≈ JCV(Θ) .
If a learning algorithm is suffering from high bias, getting more training data will not (by itself) help much.
高偏差问题就是随着样本增大,你的训练误差和测试误差都比较大。 这时候增加样本数量也无济于事。
Experiencing high variance:
Low training set size: Jtrain(Θ) will be low and JCV(Θ) will be high.
Large training set size: Jtrain(Θ) increases with training set size and JCV(Θ) continues to decrease without leveling off. Also, Jtrain(Θ) < JCV(Θ) but the difference between them remains significant.
If a learning algorithm is suffering from high variance, getting more training data is likely to help.
高方差问题,当小训练集时, 训练误差很小,验证误差很大,两者之间有一个很大的差距。当大训练样本时,问题有所改善,继续增大样本,两个线会逐渐交汇到一个合理的水平。
特点是训练误差和交叉误差相隔比较大。
补充:
http://blog.csdn.net/philosophyatmath/article/details/50989053
1.数据欠拟合会出现高偏差问题,由于模型过于简单,比如数据的趋势是二次函数,用一次函数取拟合会出现高的偏差。
2.数据过度的拟合会出现高方差问题,由于模型过于复杂,比如用10个数据特征去拟合3个数据会出现高的方差。
3.怎么处理高偏差和高方差问题:
高偏差:训练误差很大,训练误差与测试误差差距小,随着样本数据增多,训练误差增大。解决方法:
1.寻找更好的特征(具有代表性的)
2.用更多的特征(增大输入向量的维度)
高方差:过拟合,模型过于复杂,训练误差小,训练误差与测试误差差距大,可以通过增大样本集合来减小差距。随着样本数据增多,测试误差会减小。解决方案:
1.增大数据集合(使用更多的数据)
2.减少数据特征(减小数据维度)