kmeans是一种无监督的聚类问题,在使用前一般要进行数据标准化, 一般都是使用欧式距离来进行区分,主要是通过迭代质心的位置
来进行分类,直到数据点不发生类别变化就停止,
一次分类别,一次变换质心,就这样不断的迭代下去
优势:使用方便
劣势:1.K值难确定
2. 复杂度与样本数量呈线性关系
3.很难发现形状任意的簇
4.容易受初始点的影响
python中使用 sklearn.cluster 模块,使用的时候需要指定参数
第一步:导入数据,提取数据中的变量保存为X
importpandas as pd
beer= pd.read_csv('data.txt', sep=' ')
X= beer[["calories","sodium","alcohol","cost"]]
第二步:进行kmans聚类分析
from sklearn.cluster importKMeans
km= KMeans(n_clusters=3).fit(X) #聚成三蔟
km2 = KMeans(n_clusters=2).fit(X) #聚成两蔟
beer['cluster'] = km.labels_ #返回聚类的标签结果
beer['cluster2'] =km2.labels_
beer.sort_values('cluster') #根据'clu