如何参加机器学习编程竞赛



许多机器学习比赛都在Kaggle举行,其中给出了一个训练集、一组特征和一个测试集,其输出标签将通过使用训练集来决定。

很明显,决策树、支持向量机等监督学习算法在这里是适用的。我的问题是,我应该如何开始处理这些问题,我的意思是,是从决策树或SVM或其他算法开始,还是有其他方法,即我将如何决定?

所以,在阅读你的帖子之前,我从未听说过Kaggle——非常感谢,它看起来很棒。在探索他们的网站时,我发现了一部分可以很好地指导你。在比赛页面上(单击所有比赛),您会看到数字识别器和面部关键点检测,这两项都是比赛,但都是为了教育目的,提供了教程(教程还不能用于面部关键点检测,因为比赛还处于初级阶段。除了一般论坛,比赛也有论坛,我认为这很有帮助。

如果你对机器学习的数学基础感兴趣,并且相对较新,我可以推荐贝叶斯推理和机器学习。这不是一件轻而易举的事,但它比同类产品友好得多,而且不失严谨。

编辑:我在Kaggle上找到了教程页面,这似乎是他们所有教程的总结。此外,scikit learn,一个python库,提供了大量关于机器学习算法的描述/解释。

此备忘单http://peekaboo-vision.blogspot.pt/2013/01/machine-learning-cheat-sheet-for-scikit.html是一个很好的起点。根据我的经验,同时使用几种算法通常可以给出更好的结果,例如逻辑回归和svm,其中每种算法的结果都有预定义的权重。和测试,测试,测试;)

  1. 数据挖掘中没有免费午餐。除非你尝试了很多方法,否则你不会知道哪种方法最有效。

  2. 话虽如此,数据挖掘的可理解性和准确性之间也存在权衡。决策树和KNN往往是可以理解的,但不如SVM或随机森林准确。Kaggle追求高精度而非可理解性。

  3. 它还取决于属性的数量。一些学习者可以处理许多属性,比如SVM,而另一些学习者处理许多属性的速度较慢,比如神经网络。

  4. 您可以通过使用PCA来减少属性的数量,这在几场Kaggle比赛中都有所帮助。

最新更新