当一个模型达不到预期,可以改进的方法有?
- 减少不必要的feature
2.增加有用的feature
3.增加polynomial
4.增加m
5.增加lambda
6.减少lambda
如何评估一个模型?
1.将samples随机分布
2.将sample 分成training set(70%)和test set(30%).
3.用training set训练theta
4.计算test set error。
a.输入hx和y。
如果预算成功(hx>=0.5 && y ==1 或者hx <0.5 && y ==0)返回
0,预算不成功返回1.
b. 求和所有samples的预测,除以m。
如何选取polynomial?(model selection problem)
a.将samples分成training set(60%), cv(cross validation) set(20%), test set(20%)三部分。
b.用training set对不同degree的poly训练最小cost。
c.在cv set 中找error最小的poly。
d.在test set中计算cost,看看error有多少。
影响准确度的因素,以及如何影响?
poly degree
- 对于training set:error和poly degree成反比。poly degree 越高,error越小。
- 对于cv set/test set。有一个中点,在该点error最小,远离该点error变大。
- bias问题: J-training 和 J-test 都大
variance问题:J-training很小,J-test很大。
m个数
- bias时,training set的error起始值很小,随着m增大逐渐升高,升高速率越来越慢;test set、cv set的error起始值高,逐渐降低,降低速率越来越慢,与training set 的error相近。随着m的增加 test set error 不会变化太多。
- variancne时,training set 和 test/cv set error变化与bias时相类似,但两者相差较远,随着m的增加 test set error 和 training set error 逐渐接近。
- 所以variance下m多准确率高,而bais 下m多没有用处。
lambda
- 随着lambda的增大,training set 的 error 增高,增长速率也逐渐增快。
- 随着lambda增大, test set error图像程凹形,中点error最低,远离中点error逐渐增高。
- test set 和 training set error 都高说明lambda太大,模型处在high bias中。
- test set error高, training set error低说明lambda太小,模型处在high variance中。
网友评论