Bias/variance && Error metrics(误差度量)

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
Bias/variance && Error metrics(误差度量)_第1张图片
2. Regularization and bias/variance
Bias/variance && Error metrics(误差度量)_第2张图片

J(θ):目标
J_train:最优化目标

Learning curves(学习曲线)

Bias/variance && Error metrics(误差度量)_第3张图片
从上述学习曲线可以得出:对于高偏差的模型,给再多的训练数据也无用(J_train和J_cv随着训练数据数量的提升,最后都保持在一个很高的地方)

Bias/variance && Error metrics(误差度量)_第4张图片
从上述学习曲线可以得出,对于高方差的模型,通过增加训练数据的数量,是有用的(在训练数据较少时,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

Bias/variance && Error metrics(误差度量)_第5张图片
当threshold较大时,会有较高的查准率,较低的召回率
当threshold较小时,会有较低的查准率,较高的召回率

权衡标准:
         F1 Score(F Score F值公式) = 2PR / (P +R)

你可能感兴趣的:(machine,learning)