一直都有关注ML这个领域,也感觉到入门并不是“一本书就能开始”, 希望ML的成功人士能够谈谈自己的故事,从最开始了解ML到最后找到第一份ML工作的过程,谢谢了
看网易公开课上的 Andrew Ng 的机器学习,还有 Coursera 上台湾大学的《机器学习基石》 这两个都是很好的入门材料,此外,还可以下载 Andrew 课程的讲义 http://cs229.stanford.edu/materials.html ,这讲义基本上就是一个入门教材了。 在学习理论的时候,多注意实践,《机器学习实战》不错,虽然书里的代码写得烂,但是作为简单的实验指导书是可以的。
项亮的那本书是我入门的书,我觉得还不错,内容比较浅显,适合码农去学习。另外建议补一下大学的微积分、线性代数和概率论的一些内容,我是全忘了,好多公式压根不知道怎么推到的,理解起来很吃力。
豆瓣链接:http://book.douban.com/subject/10769749/
另外java有mahout,里面包含了很多算法,开箱即用的。作为码农,直接看代码是最直接快速的学习方式嘛。python的话就更方便了,有非常优秀的python库,你也可以去了解下。
不属于搞Machine learning的成功人士,也还没找过工作。只是读研究生是这个方向。谈谈自己是怎么学的。
2楼 @zieaziea @hey 不要看网易的andrew ng公开课了。时间太久远,很多东西都不一样了(这个跟写程序也是一样的,太落后的东西没啥用,除非是经典问题)。看视频的话,看andrew ng在coursera的machine learning视频,14年machine learning的刚要开课,推荐报名,跟着上课,做课后习题和期末考试。(因为只看不干,啥都学不会)。。
另外,重点是你要学ML干什么?可选项有如下这些。给出一个选项,可以更针对性的说明应该学什么:
基本上上面这些都是学Machine learning的一些点,每个方向要学的东西都不一样(虽然基础还是基础),甚至很多方向不需要学,只需要用一些现成的东西就好。用现成的东西,好处就是速度快,成本小;坏处就是不明白细节。
只要学习机器学习,一定会看的书籍我推荐一下:
另外,如果想找这方面的工作,尤其是大企业的工作,主要看你发了哪些论文,开发了哪些系统,而不是看你用XX开源软件多熟练。你懂的,毕竟熟练使用一个软件并不是这个领域的关键问题。
11楼 @zieaziea 推荐系统我没有搞过,不过有一次百度的一个人来作报告说过他们是怎么搞的。
基本上是使用一个logistic回归去做,和单层神经网络与SVM类似,机器学习不是这个模型的根本问题。根本问题在于如何把输入做非线性变换。具体怎么变换就是推荐系统这个问题的核心了,我就不懂了。sorry。
至于Logistic回归是什么,其实很简单。就是在某个空间里的一条直线(二维是直线,三维是平面,高维是超平面),把这个空间分成两个部分。这两个部分一个类1,一个是类0。也就是一个线性可分的二值分类器(所以,没什么高深的数学问题,很简单的一条直线而已。y = kx+b)(当然这么说简化了N多东西,不过基本思想没错)。
书籍:机器学习入门书籍《模式分类》(中文)(http://book.douban.com/subject/1138189/),或者看Pattern Recognition And Machine Learning(http://book.douban.com/subject/2061116/)。 公开课: Andrew Ng 的机器学习。 学习的时候,最好还是结合具体一个方向,或图像识别,或自然语言处理等,这样了解一些大概的基础,这样看书或者公开课视频时理解他们举的一些例子都比较容易。图像识别不熟,我是做自然语言的,入门书籍《统计自然语言处理基础》,这个是老外Manning写的,理论强,有深度。还有一本《统计学习方法》(李航),符合国人口味。推荐系统相关的属于理论性较强一点的了,需要一定的数学知识,如线性代数尤其是矩阵分解方面,推荐系统细节上的东西我不太熟。以上推荐的书籍都是理论派,哈哈,工作时需要用到ML的地方数据通常很大,需要结合分布式系统如hadoop,分布式与机器学习结合的书籍好像也没多少。 工具:python的nltk(http://www.nltk.org/),java的OpenNLP(https://opennlp.apache.org/)。 工作:tab,360,网易很多部门都有需要,这些公司都会招人,但是学ml的人越来越多,进入门槛也越来越高了。
21楼 @zieaziea 是的,快了~如果你想学好ML,就必须学算法,特别是概率论统计学之类的东西,还有R语言啥的,算法都扔多少年了,符号啥意思都忘了,所以,直接上手mahout了。学好mahout说难不难,说简单也不是很简单,特别聚类,还得学hadoop。我之前做过hadoop开发,所以上手很快。不过mahout有局限性,就是你只能用它提供了的算法,不过常用的相似度、叶贝斯算法啥的都有,应用场景是适合做一般的个性化推荐系统。现在别说专业的ML,就是简单的数据挖掘、推荐算法、数据统计工程师都抢手得很,我当时换工作的时候,各种大公司非让我做数据,工资还高,不过我不想做,所以选了个工资偏低的公司,做自己想做的。