许多机器学习比赛都在 Kaggle 举行,其中给出了一个训练集和一组特征以及一个测试集,其输出标签将通过使用训练集来决定。
很明显,这里的监督学习算法,如决策树、SVM 等都是适用的。我的问题是,我应该如何开始处理这些问题,我的意思是是否从决策树或 SVM 或其他算法开始,或者是否有任何其他方法,即我将如何决定?
许多机器学习比赛都在 Kaggle 举行,其中给出了一个训练集和一组特征以及一个测试集,其输出标签将通过使用训练集来决定。
很明显,这里的监督学习算法,如决策树、SVM 等都是适用的。我的问题是,我应该如何开始处理这些问题,我的意思是是否从决策树或 SVM 或其他算法开始,或者是否有任何其他方法,即我将如何决定?
所以,在阅读您的帖子之前,我从未听说过 Kaggle——非常感谢,它看起来很棒。在浏览他们的网站后,我找到了可以很好地指导您的部分。在比赛页面(点击所有比赛)上,您会看到Digit Recognizer和Facial Keypoints Detection,这两个都是比赛,但出于教育目的,提供了教程(目前还没有用于面部关键点检测的教程,因为比赛还处于起步阶段,除了一般的论坛,比赛也有论坛,我想这很有帮助。
如果您对机器学习的数学基础感兴趣,并且对它比较陌生,我建议您使用贝叶斯推理和机器学习。这不是小菜一碟,但它比同行友好得多,而且不失严谨。
编辑: 我在 Kaggle 上找到了教程页面,这似乎是他们所有教程的摘要。此外,python 库scikit-learn提供了大量机器学习算法的描述/解释。
这个备忘单http://peekaboo-vision.blogspot.pt/2013/01/machine-learning-cheat-sheet-for-scikit.html是一个很好的起点。根据我的经验,同时使用几种算法通常可以得到更好的结果,例如逻辑回归和支持向量机,其中每个算法的结果都有预定义的权重。并测试,测试,测试;)
数据挖掘没有免费的午餐。在您尝试很多方法之前,您不会知道哪种方法效果最好。
话虽如此,数据挖掘的可理解性和准确性之间也存在权衡。决策树和 KNN 往往易于理解,但不如 SVM 或随机森林准确。Kaggle 寻求高准确性而不是可理解性。
它还取决于属性的数量。一些学习器可以处理许多属性,如 SVM,而另一些学习器处理许多属性时速度较慢,如神经网络。
你可以使用 PCA 来减少属性的数量,这在几场 Kaggle 比赛中都有帮助。