警告:多图杀猫!
每当提到机器学习,大家总是被其中的各种各样的算法和方法搞晕,觉得无从下手。确实,机器学习的各种套路确实不少,但是如果掌握了正确的路径和方法,其实还是有迹可循的,这里我推荐SAS的Li Hui的这篇博客,讲述了如何选择机器学习的各种方法。
另外,Scikit-learn 也提供了一幅清晰的路线图给大家选择:
其实机器学习的基本算法都很简单,下面我们就利用二维数据和交互图形来看看机器学习中的一些基本算法以及它们的原理。(另外向Bret Victor致敬,他的 Inventing on principle 深深的影响了我)
所有的代码即演示可以在我的Codepen的这个Collection中找到。
首先,机器学习最大的分支的监督学习和无监督学习,简单说数据已经打好标签的是监督学习,而数据没有标签的是无监督学习。从大的分类上看,降维和聚类被划在无监督学习,回归和分类属于监督学习。
无监督学习
如果你的数据都没有标签,你可以选择花钱请人来标注你的数据,或者使用无监督学习的方法。
首先你可以考虑是否要对数据进行降维。
降维
降维顾名思义就是把高维度的数据变成为低维度。常见的降维方法有PCA, LDA, SVD等。
主成分分析 PCA
降维里最经典的方法是主成分分析PCA,也就是找到数据的主要组成成分,抛弃掉不重要的成分。
这里我们先用鼠标随机生成8个数据点,然后绘制出表示主成分的白色直线。这根线就是二维数据降维后的主成分,蓝色的直线是数据点在新的主成分维度上的投影线,也就是垂线。主成分分析的数学意义可以看成是找到这根白色直线,使得投影的蓝色线段的长度的和为最小值。
See the Pen ML Explained PCA by gangtao (@gangtao) on CodePen.
更多PCA的相关例子,可以参考:
- D3 http://bl.ocks.org/hardbyte/40cd6622cffbe98055d3
- http://setosa.io/ev/principal-component-analysis/
聚类
因为在非监督学习的环境下,数据没有标签,那么能对数据所做的最好的分析除了降维,就是把具有相同特质的数据归并在一起,也就是聚类。