机器学习技能树
Published:
最近由于项目的需要逐渐接触起机器学习这个领域。虽然自认为自己的统计学学得还不错,但是一开始接触这个领域一下子就被各种新名词吓到了。补过仔细看了看算法,并没有想象中的那么难。所以其实凭借之前浅薄的统计知识,也是可以勉强看懂并理解个中一二的。
对于机器学习与统计学的比较我觉得很恰当的是这么一段话
就跟高中做题一样,统计学就是教你怎么理解题意然后解出这个题来,而机器学习就像做题海战术;先刷一套题,包你考高分,如果还不行,再刷一套题。总之是不讲道理,简单粗暴。关键是,实践证明,题海战术还真的挺有效。
软件选择
作为一个被R折磨了几年的用户,我觉得在学习和使用机器学习的某些工具的时候还是希望借助现成的包的。所幸,R包基本上涵盖了现在主流的机器学习的工具,这让我不用再switch到一个新的编程软件上去。
但是最近做脸部识别项目发现的很多工具,例如Vgg-face所基于的caffe包,openCV等等。几乎都只支持Python,这让R用户有点尴尬。搞得似乎现在学习Python是一个必然的事情。
所以我无比希望R的developer能持续开发新的包,让R和Python站在同一起跑线上。似乎,R还真赶上了,前面说到的脸部识别项目中的某些包,在2017年中旬的时候已经有人做出来了使用R深度学习。所以感觉R和Python又打平了。
不过随着Python的流行程度(听说已经普及到中小学了),感觉不学还是不行的。
技能树
虽然打算学习Python但是也是为了调用Python的一些包来实现功能而已。虽然现在绝大多数用户都是从Python调用R,而非反之。我的这种做法可能并不十分高效。但社科数据量小,有些时候高效并不是一个特别重要的准则。为了尽可能更少地调用Python,我觉得需要整理一下在机器学习中有哪些工具已经有现车的R包可以实现。
事实上CRAN 已经帮我们整理好了,简单的checklist
监督学习
- 最小二乘回归 lm
- 决策树、随机森林 CART,randomForest
- Logistics回归 GLM
- 支持向量机 SVM
- 朴素贝叶斯 naiveBayes
- 集成方法 boosting adabag
- 神经网络 neuralnet
- 最近邻 KNN class
- 高斯混合模型 GMMBoost
- 径向基 RSNNS
- 深度学习 有很多包,大多是神经网络有关的模型
非监督学习
- 聚类学习 K-means
- 自动编码器
- 生成模型 (generative models)
- PredNet