Debugging(调试) a learning Algorithm(总)
1. high bias
- Try getting additional features(添加额外的特征)
- Try adding polynomial features(x12,x22,x1x2…)(添加多项式特征)
- Try decreasing λ
2. high variance
- Get more traing examples
- Try smaller sets of features
- Try increasing λ
模型选择(hypothesis)
1. Evaluating a hypothesis(评估假设)
观察是否可以很好的在测试集上泛化
评估方法:
1. 计算误差函数 J(θ) (线性回归和逻辑回归)
2.误差分类(也叫0/1分类错误)(逻辑回归)
2. Model selection and training/validation(验证)/test sets
将测试集分为三部分:training sets(60%),cross validation sets(交叉验证集,简称cv 20%),test set(20%)
选择方法(多一个参数d:多项式次数):
1. 使用training sets,依次计算出所有模型的 θ,使得J最小
2. 依次计算出 J_cv,选择J_cv最小的作为模型
3.通过计算J_test测试泛化误差
Bias/variance
个人见解:
高偏差:训练出来的模型没有对训练集很好的集成
高方差:训练出来的模型没有对测试集很好的泛化
1. Diagnosing(诊断) bias vs, variance
2. Regularization and bias/variance
J(θ):目标
J_train:最优化目标
Learning curves(学习曲线)
从上述学习曲线可以得出:对于高偏差的模型,给再多的训练数据也无用(J_train和J_cv随着训练数据数量的提升,最后都保持在一个很高的地方)
从上述学习曲线可以得出,对于高方差的模型,通过增加训练数据的数量,是有用的(在训练数据较少时,J_train和J_cv相差很大)
Error metrics(误差度量)
1. Skewed classes(偏斜类)
正样本与负样本的数量严重不成比例
此时使用误差不能准确的体现一个训练模型的准确度,而应使用查准率和召回率
2. Precision(查准率)/Recall(召回率)
预测(下)\ 实际(右) | 1 | 0 |
---|---|---|
1 | True position(真阳性) | False position(假阳性) |
0 | False negative(假阴性) | True negatice(真阴性) |
- Precision = (真阳性) / (真阳性 + 假阳性)
- Recall = (真阳性)/ (真阳性 + 假阴性)
3. Trading off(换取) precision and recall
当threshold较大时,会有较高的查准率,较低的召回率
当threshold较小时,会有较低的查准率,较高的召回率
权衡标准:
F1 Score(F Score F值公式) = 2PR / (P +R)