文章目录
聚类(一) https://blog.csdn.net/u010986753/article/details/97821890
聚类(二) https://blog.csdn.net/u010986753/article/details/97885955
聚类(三) https://blog.csdn.net/u010986753/article/details/97916856
一 k-means 介绍
1.1 KMeans介绍
k-means 优缺点:
1.算法快速、简单;
2.对大数据集有较高的效率并且是可伸缩性的;
3.时间复杂度近于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(n×k×t) ,其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目 。计算复杂度在最坏的情况下为 O(n^(k+2/p)),其中n是样本量,p是特征个数。
注 在实践中,k-means算法时非常快的,属于可实践的算法中最快的那一类。但是它的解只是由特定初始值所产生的局部解。所以为了让结果更准确真实,在实践中要用不同的初始值重复几次才可以。
k-means的缺点:
1、在 K-means 算法中 K 是事先给定的,这个 K 值的选定是非常难以估计的。很多时候,事先并不知道给定的数据集应该分成多少个类别才最合适。
2、 在 K-means 算法中,首先需要根据初始聚类中心来确定一个初始划分,然后对初始划分进行优化。这个初始聚类中心的选择对聚类结果有较大的影响,一旦初始值选择的不好,可能无法得到有效的聚类结果,这也成为 K-means算法的一个主要问题。
3、从 K-means 算法框架可以看出,该算法需要不断地进行样本分类调整,不断地计算调整后的新的聚类中心,因此当数据量非常大时,算法的时间开销是非常大的。所以需要对算法的时间复杂度进行分析、改进,提高算法应用范围。
对于上述的初始聚类中心的选择可以用**k-means++**来解决
1.2 KMeans() 参数
KMeans(
n_clusters=8,
init='k-means++',
n_init=