如何进行机器学习编程竞赛

时间:2013-07-18 05:36:52

标签: machine-learning supervised-learning kaggle

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

很明显,这里有监督学习算法,如决策树,SVM等。我的问题是,我应该如何开始解决这些问题,我的意思是从决策树或SVM或其他算法开始,还是有其他方法,即我将如何决定?

3 个答案:

答案 0 :(得分:3)

所以,在读你的帖子之前我从未听说过Kaggle--非常感谢你,它看起来很棒。在探索他们的网站后,我找到了一个可以指导你的部分。在competitions page(点击所有比赛)上,您会看到Digit RecognizerFacial Keypoints Detection,这两个都是比赛,但出于教育目的,提供了教程(教程不适用于面部关键点检测还没有,因为比赛还处于起步阶段。除了一般的论坛,比赛也有论坛,我想这是非常有帮助的。

如果你对机器学习的数学基础感兴趣,而且相对较新,我可以建议Bayesian Reasoning and Machine Learning。这不是很好的,但它比同行更友好,没有严格的损失。

修改 我在Kaggle上找到了tutorials page,这似乎是他们所有教程的摘要。此外,scikit-learn是一个python库,提供了大量的机器学习算法的描述/解释。

答案 1 :(得分:2)

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

答案 2 :(得分:1)

  1. 数据挖掘中有No Free Lunch。在尝试大量方法之前,您不会知道哪种方法最有效。

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

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

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