首先:可以。
机器学习领域的比赛和算法竞赛不同。对于算法竞赛,如果缺失关键的知识,对于大多数题目将一筹莫展,毫无思路。但机器学习不同,不管比赛的背景怎么变,要做的事情无非是预测识别。如果用机器学习的行话讲,就是解决一个回归问题或者分类问题。这个课程的所有方法,都是帮助你深入理解大多数经典的解决回归问题或者分类问题的算法的。都可以套用在机器学习的比赛中,完成比赛要求的内容的。
但是,也正是因为如此,机器学习竞赛在另一个维度上,比算法竞赛要难。因为,对于算法竞赛,一旦你彻底掌握了某个算法,就能完全解决某个或者某类问题。但是机器学习不同,使用不同的方法都可以解决同样的问题,问题的关键变成了:选择使用什么样的算法,使用怎样的流程,怎样预处理数据,等等等等,会得到更好的结果。这之中蕴含着无数的可能,说是无止境都不为过。换句话说,只学习这个课程的知识,可能很难在机器学习比赛中获得好的成绩。要想获得更好的成绩,需要深入学习。不过,我依然建议你学完这个课程就去真实的参加机器学习相关的比赛试试看,体会一下机器学习算法的应用,再继续深入学习:)
具体继续学习要学习什么,在这里简单列一下:
首先,真实的应用机器学习,数据处理是非常重要的一部分。这部分内容是我们这个课程缺失的。这个课程假设我们已经获得了很好的数据,讲解机器学习算法的原理。但是实际情况通常是我们没有很完美的数据。怎样进行数据处理是非常重要的。
1)首先,最基本的,你需要掌握数据操作的方式。在这个课程中,我们主要使用的是numpy。但是对于真实的数据,在预处理阶段,使用pandas更方面。通常是先使用pandas预处理数据,之后转成numpy的array传给sklearn的(如果你是使用sklearn的话),所以,你需要掌握pandas的基本使用方法。
2)数据预处理方面一个重要的工作室特征工程。关于特征工程相关的内容,可以参考这个问答:https://coding.imooc.com/learn/questiondetail/40722.html
在具体算法角度,
3)在上面问答中,我提到了非监督学习。这个课程涉及的非监督学习并不多,只包含PCA。但是实际在一些应用上,非监督学习可能会发挥很大的作用。就以最常见的应用“降维”为例,也有很多不同的方法,可以用于处理不同类型的数据。
4)从监督学习的角度,从初级应用角度,这个课程没有介绍两个大方法:贝叶斯和神经网络。有兴趣可以找更多资料学习。
5)监督学习方面,从高级应用的角度,一个很大的部分是深度学习,这个课程完全不涉及。(不过,其实,一般在机器学习竞赛中,深度学习应用并不多)。另一类方法是集成学习。集成学习在这个课程的最后一章虽有介绍,但介绍的并不够深入,其中还有很多可以学习的内容。集成学习在机器学习竞赛中使用很广泛,建议深入学习。
6)特殊领域的特殊方法。在一些特殊领域,我们已经创建了很多经过验证效果不错的方法,需要你去学习专有领域。无论是图像,NLP(自然语言处理),甚至是医疗成像方向(或者更专一些的neuro imaging),都有专门的算法。搜索这些专门领域的教材或者论文资料,都会有介绍,在深入学习这些内容的时候,你就会看到这个课程中介绍的这些经典算法的基石性作用:)
7)还有一类数学建模的方法,不太会纳入一般机器学习的教程中,或许是因为太偏数学的原因。(也有一些教材在这方面做得很好,比如大名鼎鼎的PRML:https://www.douban.com/link2/?url=https%3A%2F%2Fbook.douban.com%2Fsubject%2F2061116%2F&query=Pattern+Recognition+And+Machine+Learning&cat_id=1001&type=search&pos=0
最典型的一类数学建模方法,就是随机过程中涉及的模型。比如HMM在语音识别中的应用,或者对时序数据的建模,等等等等。
在具体工具的掌握上,
8)除了上面说的Pandas,还有一些专门的算法库也值得掌握。在深度学习领域诸如Tensorflow或者Keras这样的算法库就不用说了。由于在机器学习算法领域,集成学习效果很好,所以xgboost也值得掌握。
最后,学习材料上。
上面说的各个领域或者专题的材料,通常都有书籍或者教材支撑。只要搜索关键字就好。在这方面,我必须说,国内教程差国外教程一大截。无论是数量,可选择性,质量,各个方面。所以有能力阅读英文原版的话,请直接使用英文搜索相关材料。你的可选择性多了不止一个数量级。
如果只谈机器学习竞赛的材料,说实话,现在市面上,我没见过太好的专门介绍机器学习竞赛的材料。(其实在算法竞赛角度,我也没有见过太好的专门介绍的材料。我想主要是因为这种竞赛涵盖的内容太广了,很难用一本书讲清楚。)不过,和算法竞赛一样,最好的材料其实都是散落在互联网上的,需要你一点一点挖掘。这里,其实最大的资源库就是Kaggle本身。Kaggle不仅仅是一个竞赛网站,里面也蕴含了很多有价值的资料。
比如,今年,Kaggle刚刚上线了Kaggle Learn模块,使用Kaggle的数据,来一点点进行机器学习实战。可以参考:https://www.kaggle.com/learn/overview
其次,对于Kaggle的入门级比赛,有很好的Tutorial,请看这个页面的所有Tutorial,只针对一个泰坦尼克数据,使用不同方案解决,是很好的步入机器学习竞赛的第一步:https://www.kaggle.com/c/titanic#tutorials
Kaggle官方博客也有很多好的内容:http://blog.kaggle.com/
在你参加具体比赛的时候,Kaggle的论坛会是你的好帮手:https://www.kaggle.com/discussion
有人整理出了Kaggle比赛中很多问题的第一名的解决方案思路,其实这些内容都是引用上面Kaggle的官方博客或者论坛的内容:)
http://ndres.me/kaggle-past-solutions/
总之,可以学习的内容还有很多。但是我坚信,这个课程的基础内容学完以后,机器学习你就已经入门了。完全可以一边参加比赛增加经验,一边进行更深入的学习了:)
加油!