k-means算法是一种聚类算法,所谓聚类,即根据相似性原则,将具有较高相似度的数据对象划分至同一类簇,将具有较高相异度的数据对象划分至不同类簇。聚类与分类最大的区别在于,聚类过程为无监督过程,即待处理数据对象没有任何先验知识,而分类过程为有监督过程,即存在有先验知识的训练数据集。k-means是一种无监督学习,它会将相似的对象归到同一类中。
k-means聚类的优缺点
优点:(1)算法快速、简单;
(2)对大数据集有较高的效率并且是可伸缩性的;
(3)时间复杂度近于线性,而且适合挖掘大规模数据集。K-Means聚类算法的时间复杂度是O(n×k×t) ,其中n代表数据集中对象的数量,t代表着算法迭代的次数,k代表着簇的数目
缺点:(1)对异常值(噪声)敏感,可以通过一些调整(如中心值不直接取均值,而是找均值最近的样本点代替)
(2)需要提前确定K值(提前确定多少类)
(3)分类结果依赖于分类中心的初始化