2012年10月21日,星期日

套袋!

我的 最近的Kaggle比赛 经验使我印象深刻,需要更快地选择模型。我最初的计划是创建一个交叉验证 威杜布 插件(减少),但是 尼科斯 说服我 套袋 具有更多的功能和更连贯的知识。基本思想是在vee-dub中复用权重向量,并同时学习一组模型,每个模型都经历输入序列的不同自举版本。结果有三点好处:
  1. 型号选择。 预算外估计 功能类似于交叉验证的估计。当多次遍历数据集时,监视袋外估计而不是渐进式验证丢失是一个更好的主意。
  2. 置信区间。当开发一个独立的决策系统时,一个点预测通常就足够了;但是,当开发要集成到更大决策系统中的子系统时,区间预测为下游使用者提供了更丰富的摘要。
  3. 更好的结果。归纳可以提高模型的通用性 偏差方差权衡。到目前为止,我还没有看到对数据集的任何实际提升,这是可以理解并可以预期的:线性模型的方差低,因此不能从套袋中受益。为了从套袋中受益,您必须做一些最终输出对训练数据差异更敏感的事情,例如神经网络,树或具有自动数据驱动特征选择的线性模型。
选择模型是我最初的动机,因此这里是利用 KDD世界杯98 数据。竞赛提供了数百个预测功能,但获胜作品仅使用了少量,表明模型选择非常重要。比赛如下:要求您决定向谁发送邀请(蜗牛)邮件;每封邮件的成本为68美分。训练集由特征($ x_i $)对($(x_i,r_i)$)和对应于先前邮件活动的响应捐赠金额(r_i $)组成。评估集仅由$ x_i $组成(除了比赛已结束,因此我们可以窥视并看到评估集的$ r_i $);提交了评估集中每个实例的估计捐赠$ \ hat r_i $,然后根据$ 1 _ {\ hat r_i进行评分>0.68}(r_i-0.68)$。换句话说,即使决定是是否邮寄某人,该决定还是通过估计的大于或小于68美分的答复发送的;否则,就无法评估估计响应的准确性,而实际获得的总利润是评分标准。

我们可以将其建模为重要性加权分类问题,根据\ [将对$ {x_i,r_i)$转换为三元组$(x_i,y_i,c_i)$。
(x_i,r_i)\ to(x_i,1_ {r_i>0.68},| r_i-0.68 |)。
\]对于评估集,我们可以解码是否直接将决定作为模型的预测类邮寄的决定。在这种情况下,常量预测变量对应于不发邮件或发邮件给所有人的策略。正如曾经拥有邮箱的任何人所能证明的那样,向所有人发送邮件比不向任何人发送邮件更有利可图,因此``向所有人发送邮件''是要克服的基本策略。 (从理论上讲:也许不应该使用机器学习的商业秘密垃圾邮件过滤器,而应该使用机器学习并公开分发 其实 想要购买伟哥并拯救其他所有人免于烦恼。)

我建立了一个幼稚的``厨房水槽''模型,方法是采用训练集中的所有功能,将日期自1900年1月起以数字形式编码为月,使用带有经验分母的样条曲线将数字编码为结点,并对所有其他变量进行分类编码。我还整理了一个模型,其中包含10个功能(通过查看获奖者的作品)(使用与厨房水槽相同的策略进行编码)。结果如下:\ [
\ begin {array} {c | c | c | c}
\ mbox {型号}&\ mbox {训练集利润}&\ mbox {培训设置的利润(实际支出)}&\ mbox {评估集利润} \\ \ hline
\ mbox {向所有人发送邮件}& \$10788.54 & \$10704 \pm \$529 & \$10560.08 \\
\ mbox {10个功能}& \$17596.35 & \$14617 \pm \$434 & \$14896.07 \\
\ mbox {厨房水槽}& \$24353.80 & \$493 \pm \$80 & \$154.92 \\
\ end {array}
\]因此,厨房水槽严重超出了训练范围,但实际购买力不足以检测到这一点。哇

不幸的是,减少装袋并不比运行多个vee-dub快。对于具有大量I / O开销的简单模型来说,它的速度更快,但是对于更复杂的模型,摊销I / O只是一个适度的好处。在内部对所有内容进行编排更为方便,减少的内容应与vee-dub的分布式学习功能结合在一起,但是在笔记本电脑领域,这并不是一个巨大的胜利。

当然,一旦有了套袋,自然的下一步就是尝试一些不稳定的学习方法。敬请关注!




没意见:

发表评论