【机器学习】西瓜书-第2章模型评估与选择

评估方法

交叉验证

 

从“偏差-方差分解”去解释model的泛化性能

  • 这个model为什么具有如此性能呢?——那么就要从“偏差-方差分解”去解释model的泛化性能。(考过)

偏差-方差分解试图对model的期望泛化错误率进行拆解。泛化误差可以分解为偏差、方差、与噪声之和。

偏差度量了:pred与gt的差别,即刻画了model本身的拟合能力;

方差度量了:trainset样本内容不同但是样本大小相同所导致的学习性能的变化,即刻画了数据扰动所造成的影响;

噪声表达了:在当前任务上任何学习算法model所能达到的期望泛化误差的下界,即刻画了学习问题本身的难度。

偏差-方差分解说明,model的泛化性能是由学习算法的能力、数据的充分性、学习任务本身的难度所公共决定的。

给定学习任务,为了取得好的泛化性能,则需使得偏差较小,即能够充分拟合数据,并使方差较小,即使得数据扰动产生的影响小。

特征穿越 

1、什么是特征穿越?可以举例子说明吗? - 斑马行空的回答 - 知乎

概括点说,就是你在训练模型的中使用了一些特征,而这些特征是你实际用模型去做预测时所获取不到的“未来信息”。

举个例子:

你要预测未来几天用户是否会购买某个商品,你却把未来几天用户的行为作为特征用来训练模型,实际在预测时,你在当天是获取不到未来几天的用户行为的。

2、什么是特征穿越?可以举例子说明吗? - 三和厂妹的回答 - 知乎
比如购买行为预测,给你前三个月的数据,预测后一周的用户购买行为,你用后一周的用户行为如点击率什么的,放进前三个月的特征中,就是特征穿越了。

3、什么是特征穿越?可以举例子说明吗? - Wenting的回答 - 知乎

简单说来:你可以这么去check你在评估某个机器学习算法的时候是否出现了“时间穿越”(最典型的穿越)问题:

对于每一个评估所用到的测试样本x,把时间点想象成为x需要被做出预测的当下时刻(时间t)。那么这种想象会限制你在预测x时所使用的模型(模型m)被训练时所依赖的信息/数据(数据D)。怎么限制呢,即D必定只包含发生在t时刻之前的信息。(在这里我假设你的模型的训练时间被忽略不计了,否则可能还要受到模型训练时间的限制)

好了,现在你应该已经明白,上面我聊到的关于“对x进行测试时,模型m对应的训练样本所包含的信息“的限制了。

那么如果你评估时用到了一个突破这个限制的模型,即它并不是严格由t时刻时刻之前的数据所学习到的。而训练数据是包含了t时刻时刻之后的数据,那么便出现了“时间穿越”的问题。这在一些场景下是会影响评估泛化性能的准确性的。

举一个例子,你现在要训练一个模型,它能帮助你在每天早上开盘的时候买股票。那么当然,它的表现就应该是在每天开盘(9:30)前,就把今天会上涨的股票列表给预测给你。那么在评估它的时候,若测试集就包括一个样本:(2月4日的股票A,上涨),那么你在评估时用的模型只能够由2月4日9:30前的数据所训练。若测试集就包括三个样本:(2月4日的股票A,上涨)(2月5日的股票A,下跌)(2月6日的股票A,上涨)。那么你在评估时用的模型要不只能够由2月4日9:30前的数据所训练。要不呢,你选择动态更新你的模型:即用2月4日9:30前的数据所训练的模型去预测第一个样本,用2月5日9:30前的数据所训练的模型去预测第二个样本,用2月6日9:30前的数据所训练的模型去预测第三个样本。然后将预测结果和真实标签做比较得到准确度。

值得注意的点:

我提过的,上面我假设了你的模型训练时间可以忽略不计。如果你还要考虑这一点的话,还要把训练时间给放进时间限制中才准确。

如同参考资料里所说的那样,“时间穿越”到底会不会对评估的效果产生严重的影响,是要衡量的。

其他一些类似的穿越(例如参考资料中的“会话穿越”)就要根据具体的场景来讨论。请记得一点,在评估中最好令到评估时所处的环境和真实应用时所处的环境是一致的。

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值