分享
学习数据挖掘,机器学习的正确姿势?
大半年过去了,数据挖掘无疑是充满想像力的工作,不过我还是转行做软件开发了。linux和windows系统编程。感觉这方面我比数据分析专业得多。转行的原因主要有两个吧1公司没多少数据,2数学不过硬。谢谢各位大佬的建议===如题,希望各位大侠给点建议,少走点弯路。在下并非纯正cs血统,找工作的目标是后台开发,面试时也是冲着这个来的。 算法,系统,网络,编译原理这些学得还过得去吧,但是入职后却被安排做数据挖掘这块。 在下对这方面基本一窍不通,也想不明白为什么会被安排这个工作,在下只是想开发些软件,写点小代码。 男人不能说不行,只能上了,目前在看‘数据挖掘导论’,感觉hard,主要是数学忘记得差不多了。 说实话,在下的性趣不在数据分析,对数学不敏感,年纪也大了,想easy,不想hard,没勇气翻开床头那几本高数,怎么办啊,求指教
回复 ( 10 )
开发界曾经有个说法,学那些算法没用,重点是学好语言和框架,现实中谁会让你去从零写算法。
这个言论随着大家姿势水平的不断提高被彻底摒弃了。 算法培养的是看问题的思路。今天用不上,但却是你五年后的根基。
同样的东西,和今日“ML没用,现实中的Data Science都是调包”这个言论真心是异曲同工啊。
成为一名调包侠只能解决暂时的问题,不能解决长远的问题啊。你看R和python有那么多包可以调,确实很方便,特别是R。但是你的算法是要和业务结合的,如果不清楚其中实现的逻辑,想改一下算法,或者将几个算法结合在一起用,你该怎么用呢。不是所有的数据用个算法一套,调下参数就ok了。至少先把你常用的算法用你熟悉的语言完整实现一遍(不调用包,自己写),再慢慢摸索。
吐槽了这么多,推荐你几本书吧:集体智慧编程、机器学习实战、统计学习方法。
这三本都还不错啊,讲的通俗易懂。导论这种类型的书只是用来看一下过一遍的,最重要的还是自己多敲代码。
不推荐你英文书了,既然你想easy,不想hard,估计你也是没有这个心看完整本英文书的,即使很多英文书比中文更好。
选一个吧,
Data Scientist
背景可以是数学、物理、统计、电类、计算机。
需要去钻读那几本神书,ESL、PRML等等。
需要在真实数据上有过应用模型,调参的经验。
调现有的库是可以的啦。
不过实现过几个常用模型是基本功。
需要懂得如何使用分布式存储与计算平台。
你看这任务就很艰巨了,写代码的时间没有那么那么多。
数据理解的好,模型用的对是王道。
Data Engineer
目标是用代码实现性能优秀的分布式架构的机器学习计算平台,比如最近看到个很刁的项目MXNet。
需要扎实的计算机背景。
C++、设计模式、操作系统、网络编程、多线程编程手到擒来。
架构方面有工程实践上的经验。
代码写得好,机器性能调动得好是王道。
欢迎指点。
题主觉得《数据挖掘导论》属于hard……看了ESL这本你会觉得大学课上的那点数学简直就像做加减法。
好吧。其实机器学习除了数学之外,还有一个非常重要的方向,就是分布式架构。如今互联网公司的数据规模,都非常依赖Hadoop之类的分布式架构来做机器学习。
题主更擅长非数学类的CS知识的话,那么走架构的道路会非常适合你。现在大规模机器学习的架构还有很多空白领域,很多问题在业界内并没有通用的解决方案。Hadoop和Spark目前也只能解决其中的一小部分问题,遇到非线性模型和非凸模型(概率图,神经网这种)都需要专门开发一套新的框架。
所以机器学习是未来二十年CS中非常有想象力的一个方向,米多空间大,是值得在其中投入时间和精力的。
如果没有翻开高数的勇气,也没有高等数学的基础,私以为好好学ml这个目标是不可能了……
加入我们,先成为一名光荣的调包侠吧!
虽然我也只是入门而已,但是有个知乎名句:要有造轮子的能力和不重复造轮子的觉悟。
遇到问题也是多google,多请教,多翻书,多思考而已,并无捷径。
共勉。
个人经验:Calculus -> Multivariable, Discrete Math -> Linear Algebra -> Numerical computing, Statistics -> Machine Learning
没数学基础啃Machine Learning就是作死啊,算法只是实现数学模型的方法,太基础啦。
先成为一名调包侠,再成为一名调参侠
哈哈哈哈哈
最后,一身披风,一个转身,造就一段传奇
machine learning 2015版,不过现在还在学爬,学会走还得一阵子,跑?还早着
自问自答,撸了一个月,吃了几本书,感觉上手了。但很多问题本质还是数学问题,比如svm,一堆数学理论,身心疲惫,换工作了,不喜欢数字游戏