# 如何在机器学习竞赛中胜出

> 原文： [https://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/](https://machinelearningmastery.com/how-to-kick-ass-in-competitive-machine-learning/)

[David Kofoed Wind](http://www.davidwind.dk/) 在Kaggle博客No Free Hunch上发表了一篇文章，名为“ [_从最好的_](http://blog.kaggle.com/2014/08/01/learning-from-the-best/) 中学习”。在这篇文章中，大卫总结了6个与参与机器学习竞赛相关的关键领域，以及来自表现最好的kagglers的报价。

在这篇文章中，您将发现从该帖子中提取的竞争性机器学习中做得好的关键启发式方法。

[![learning from the best](img/c8930d6c3604e4e41341aa2933d638fd.jpg)](https://3qeqpr26caki16dnhd19sv6by6v-wpengine.netdna-ssl.com/wp-content/uploads/2014/08/learning-from-the-best.jpg)

从[利达](https://www.flickr.com/photos/lidarose/267681376/)的最佳
照片中学习，保留一些权利

## 向Kaggle Masters学习

David是[丹麦技术大学](http://www.dtu.dk/english)认知系统系的博士生。在此之前，他是一名硕士生，他的论文题目是“ [_预测机器学习中的概念_](http://www.davidwind.dk/wp-content/uploads/2014/07/main.pdf) ”。

你会从标题中知道它，但这是一个很好的论点。在其中，大卫提炼了3名Kaggle大师 [Tim Salimans](https://www.kaggle.com/users/3375/tim-salimans) ， [Steve Donoho](https://www.kaggle.com/users/9766/breakfastpirate) 和 [Anil Thomas](https://www.kaggle.com/users/7837/anil-thomas) 的建议，并分析了10场比赛的结果。在Kaggle比赛中表现良好，然后通过参加2个案例研究比赛来测试这些课程。

他的框架有5个组成部分：

1.  特征工程是预测机器学习中最重要的部分
2.  过拟合排行榜是一个真正的问题
3.  简单的模型可以让你走得很远
4.  合奏是一种成功的策略
5.  预测正确的事情很重要

大卫在他的博客文章中总结了这五个方面，并增加了第六个，这是一个不适合这些类别的一般建议。

## 预测性建模竞争框架

在本节中，我们将查看框架的五个部分中的每个部分的主要经验教训以及需要考虑的其他启发式方法。

### 特色工程

特征工程是数据准备步骤，涉及将属性转换，聚合和分解为最能表征建模问题数据结构的特征。

*   数据比您应用的算法更重要。
*   将大部分时间花在功能工程上。
*   利用自动方法生成，提取，删除和更改属性。
*   深度学习中使用的半监督学习方法可以自动建模特征。
*   有时，对数据集进行仔细的非规范化可以胜过复杂的特征工程。

### 过拟合

过拟合是指创建在训练数据上表现良好的模型，而不是在看不见的测试数据上（或远离它）。这扩展到在排行榜上观察到的分数，这是对用于识别竞赛获胜者的验证数据集样本（通常约20％）的模型的评估。

*   小而嘈杂的训练数据集可能导致排行榜和最终结果之间更大的不匹配。
*   排行榜确实包含信息，可用于模型选择和超参数调整。
*   Kaggle使得过拟合的危险变得非常真实。
*   在测试工具上花费大量时间来估算模型准确率，甚至忽略排行榜。
*   将测试工具分数与排行榜分数相关联，以评估您可以放在排行榜中的信任度。

### 简单模型

使用简单模型是指在数据集上使用经典或易于理解的算法，而不是通常更复杂的最先进方法。模型的简单性或复杂性是指所需术语的数量和用于优化这些术语的过程。

*   最简单的方法通常被最好的竞争者使用。
*   初学者过早转向复杂的模型，这可能会减慢对问题的学习。
*   更简单的模型训练更快，更容易理解和适应，反过来提供更多的见解。
*   更简单的模型会强制您首先处理数据，而不是调整参数。
*   简单模型可以是基准的再现，例如按段的平均响应。

### 合奏

合奏是指将来自多个模型的预测组合成一组预测，通常是由每个贡献模型的技能加权的混合（例如在公共排行榜上）。

*   大多数获奖模型是多个模型的集合。
*   高度调整的模型以及平庸的模型都能提供良好的效果。
*   结合以不同方式约束的模型可以获得更好的结果。
*   在考虑合奏之前，充分利用算法。
*   在比赛结束前，将合奏调查作为最后一步。

### 预测正确的事情

每个竞赛都有一个指定的模型评估函数，用于比较模型对实际值的预测。这可以定义损失函数和数据集的结构，但它不必。

*   头脑风暴可以使用许多不同的方式来对问题进行建模。
*   建模飞行着陆时间与预计飞行时间比率的总飞行时间的示例。
*   使用不同的损失函数（即RMSE与MAE）探索模型的准备。

### 额外的建议

本节列出了David和他的受访者在机器学习竞赛方面表现良好的其他见解。

*   尽快在排行榜上获取一些东西
*   构建一个加载数据的管道，并可靠地评估模型，这比你想象的要困难得多。
*   拥有一个包含大量工具的工具箱，并知道何时以及如何使用它们。
*   充分利用论坛，包括给予和接受。
*   在您知道从数据集中获得最大收益后，最后优化模型参数。
*   一个洞察力并没有赢得比赛，但有几个联系在一起。

## 摘要

在这篇文章中，您发现了参与机器学习竞赛时的5个问题的框架：特征工程，过拟合，使用简单模型，集合和预测正确的事物。

在这篇文章中，我们在关键经验法则中回顾了David的框架，可以用来在参加Kaggle比赛时从数据和算法中获得最大收益。