具体可见:http://xxxzhi.github.io/2014/12/16/machine-learning-10-biggest/
K-Means算法
K-Means算法是一种聚类算法,把n个对象根据他们的属性分成k个分类,并且使这K个分割的内部相似度最大,而分割之间的相似度最小。 其主要的算法流程如下: 1. 从n个对象中任意选K个对象,作为每个聚类的中心 2. 根据K个中心,按照每个对象离K个中心的最小距离(离那个中心近,就划分到哪个中心),将n个对象划分成K个分割(聚类) 3. 然后计a ge su a分割的中心(分割中的所有对象的均值),将这些中心作为聚类新的中心。 4. 计算标准测度函数,当计算函数满足一定的条件,如收敛了,则程序结束,否则返回第2步。
它是一种基于样本间相似度的聚类算法,是一种非监督算法。是一种较典型的逐点修改迭代的动态聚类算法。
优点
- K-Means算法简单
- 对于处理大数据时,该算法是相对可伸缩和高效率的。其算法是O(nkt)的,依赖于t
- 当样本间每个簇相差较大时,分来效果较好。
缺点
- K-means要求用户事先得给出要生成的簇的数目K
- 对初值比较敏感
- 不适合发现大小差别很大的簇
- 对于噪声和孤立点敏感
适用情况
这个适用,基本也在优缺点里面讲述了。
朴素贝叶斯算法
朴素贝叶斯算法是基于一个简单假设:在给定的目标值时,各个属性是相互独立的。贝叶斯是依据贝叶斯定理来的。计算极大后验概率。其具体原理如下:
Vmap=argmaxP(hi|a0,a1,...,an)=argmaxP(a0,a1,...,an|h