具体怎么学习?
从数据的角度
真正应用的机器学习,数据处理是非常重要的部分,实际中没有完美的数据样本,因此对数据的预处理非常重要。
1)首先要掌握数据操作的方式。在之前的机器学习中,主要用的是numpy,但是在真实的数据处理阶段,使用pandas会更加方便。通常我们先使用pandas预处理数据,之后转换成numpy的array传递给sklearn或者其他框架。所以要先掌握pandas的基本使用方法!
2)数据预处理方面的一个重要的工作是特征工程。在一定程度上,非监督学习都可以叫做特征工程,比如PCA。还比如多项式特征就是一个最基础的特征工程,线性回归也可以作为特征选择的一个工具。深度学习在一定程度上也是在解决特征问题。可以看一些统计学的书,其中都会挖掘数据间的关系。
从算法的角度
1)实际的非监督学习有很多,以上值涉及到PCA,但其实也有很多其他的降维方式。
2)监督学习的初级例子就是贝叶斯和神经网络。
3)监督学习的高级例子一大部分是深度学习,但其实在一般的机器学习竞赛中,深度学习的使用并不多。剩下部分是集成学习,并且在竞赛中应用非常广泛。建议深入学习。
4)特殊领域的特殊方法。比如图像或者是NLP,医疗成像领域都会有很多专门的算法,可以搜索相关的论文或者教材。而以上(笔记中所有的)的传统机器学习算法都是这些算法的基石。
5)对于数学类的建模,太过于偏数学,一般不会在机器学习的范围中。最典型的一些数学建模方法,就是随机过程中涉及的模型,比如HMM在语音识别中的应用,或者对时序数据的建模等。比较好的读物:Pattern Recognition and Machine Learning
从具体工具的掌握上
1)除了上边的pandas,还有一些专门的算法库也值得掌握。在深度学习领域比如Tensorflow, Pytorch, Keras等框架。在机器学习算法领域,集成学习的效果最好,所以XGBoosting一定要掌握!
在学习资料上
尽可能多的阅读英文材料!
机器学习竞赛的最大资源库就是Kaggle!
Kaggle learn: Learn Python, Data Viz, Pandas & More | Tutorials | Kaggle
Kaggle入门级比赛: Titanic - Machine Learning from Disaster | Kaggle
Kaggle官方博客: http://blog.kaggle.com/
Kaggle论坛: http://blog.kaggle.com/
Kaggle比赛中许多问题第一名的解决方案思路: http://blog.kaggle.com/