Machine Learning week2

机器学习黄金法则

1. 不要为了得到自己想要的结果而去修改测试集

2. 收集到的数据不能影响到检验的假设

3. 收集更多数据,直到获得所需的显着性水平

4. 尝试不同的方法来衡量性能,选择看起来最好的方法

5. 查看测试数据后选择不同类型的模型/假设

6. 如果要修改假设,则需要在新数据上进行测试

7. 或者至少在报告结果时意识到并诚实地说明这个问题

IID

通常来说,训练错误与测试错误没有太大关联,训练数据也可能与测试数据是毫无关联的,例如对抗学习,会在训练阶段进行数据扰乱,得到错误模型。

为了让我们的学习有效,我们需要一个前提或假设:训练数据和测试数据需要在某种程度上有关联,最常见的假设是独立同分布(IID)。

训练数据/测试数据是独立同分布的需要满足:

1. 所有数据都来自一个分布

2. 样本是独立的,顺序不影响他们之间的关系(无序)

在机器学习中,IID仅涉及样本,与特征无关

Fundamental Trade-Off

假设 E_train 是训练集误差, E_test 是测试集误差.

如果E_approx = E_test E_train很小, 那么E_test可以近似为E_train。

对于E_approx(过拟合量):

1. 如果样本容量n很大,E_approx 会较小(如果n很小,拟合出来的模型很可能只适用于这一小部分数据,导致模型过拟合)

2. 模型越复杂,E_approx会越大

所以E_approx 可以用来衡量训练误差有多接近测试误差。

对于一些简单模型(单层决策树),E_approx会比较小(对训练误差不敏感),但是训练误差可能会很大。(模型不好的时候训练误差和测试误差都大,大家都一样烂,区别也就不大了)

但是模型很复杂的话,E_approx对训练误差很敏感,训练误差会比较小,但是由于模型过拟合,测试误差可能很大, 所以E_approx也会很大

一个例子:

假设E_best是所有模型中不可减少的error,那么有:

variance: 我们的模型对训练模型有多敏感

bias:我们可以把误差降到多低

noise:所有模型的测试误差可以有多低

Bias-Variance Decomposition

bias: 由于模型错误导致的误差

variance: 由于模型对训练集的敏感度造成的误差

noise: 也就是之前的E_best(没法消除的最小误差)

以上两种分解方式,都是为了衡量不同因素对测试误差的影响,毕竟在机器学习中,我们最终的目标还是为了降低训练误差。并且从这两种分解都可以得到:

 第一幅图是过于简单的模型,E_train / bias 会很大,但是E_approx / variance会很小

第三幅图是过于复杂的模型,E_train / bias 很小,E_approx / variance 很大

第二幅图相比之下都很适中

验证误差

建立模型过程中,确定模型是第一步,因此还需要一个集合帮助我们确定模型,有一种方法就是,取一部分训练数据来模拟测试误差,根据训练集建立不同模型,根据验证集选择模型。在IID假设中,验证误差是训练误差的无偏估计(毕竟验证误差跟咱建立模型也没关系,模型还是在训练集的数据基础上建立的)。所以实际情况中,我们可以根据验证误差的大小去决定一些超参数。

超参数

参数是对某一个模型的规定(例如决策树某个分支的点的数值是多少),超参数可以用来控制一个模型集合的复杂度(比如树的深度)。一旦超参数被确定,我们可以开始在符合条件的模型里面重新训练所有数据,得到最终模型。

Optimization Bias

过拟合的另一个说法是最优偏差。

当我们尝试的模型越来越多的时候,可能会不断得到越来越好的模型,假如我们随机选择一个模型,有0.5的概率这是一个好模型,有0.5的概率这是一个不好的模型,但是如果有好多个备选模型,我们从中选出最好的,那么我们得到的模型成绩一定比随机出来的大越来越多,当我们尝试次数够多的时候,我们选择的模型与随机出来的模型之间的差距会越来越大(也就是bias)。

一旦我们开始使用验证集误差去优化模型的时候,验证误差不再是测试误差的无偏估计,此时模型会根据验证误差去调整参数,此时验证集的bias会比训练集还要小。当验证集很小时,随着验证集样本数(在可控范围内)增加,最优偏差会减小。

 

 

Classififier Evaluation Metrics

混淆矩阵:

 对于该矩阵:Accuracy = (TP + TN)/All

P  = Precision = TP  / ( TP + FP), 在被标记为positive的结果里面有多少是真的positive。
R  = Recall  = TP / ( TP + FN), 在所有应该被标记为positive的结果里面,有多少真的被归为positive了
 
precision和recall的调和平均数为:
\left (1+\beta^2 \right ) \frac{precision*recall}{\left ( \beta ^2*precision \right )+recall}
大多数情况下β会取值1
 

ROC曲线

横坐标为假阳性率(FPR):真实结果为negative的样本中被分类器归为positive的样本比例

纵坐标为真阳性率(TPR):真实结果为positive的样本中被分类器归为positive的样本比例

ROC曲线以下的图形面积(AUC: Area Under Curve, also AUROC)是对模型准确率的衡量

模型选择

假如我们有两个模型,M1和M2, 使用交叉验证获得相应的误差,那么结果也有可能是巧合,此时应该使用统计学分析两个模型的结果是否有统计学意义,如果没有,那么他们之间的差距很有可能是意外发生的。

最好的机器学习模型

有一种衡量标准是泛化误差:模型对未知数据的预测能力

No free lunch theorem
没有哪个模型可以解决所有的问题,如果模型A在某一个数据集上表现得比B好,那么肯定也会存在一个数据集,模型B表现得更好。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值