k-means
k:把数据划分成多少个类别
1.聚类方法
(1)随机在数据中抽取三个样本,当作三个类别的中心点( k1,k2,k3)
(2)计算其余的点分别到三个中心的距离,从中选出距离最近的点作为自己的标记形成三个族群
(3)分别计算这三个族群的平均值,把三个平均值与之前的三个旧中心点进行比较,相同就结束聚类,不相同就把这三个平均值当作新的中心点,重复第二步。
api: sklearn.cluster.KMeans(n-clusters=8,init='k-means++')
k-means: 聚类
n_clusters: 开始聚类的中心数量
init: 初始化方法
labels_: 默认标记的类型,与真实值比较
2.聚类,做在分类之前,进行标记
km = KMeans(n_clusters=4)
km.fit(x)
predict = km.predict(x)
3.聚类评估标准:
族群与族群之间的距离最大,内部样本之间距离最小
4.计算步骤:
取蓝色中的一个点为蓝1
1.计算蓝1到自身类别点距离的平均值 a_i
2.计算蓝1到红色类别,绿色类别所有点的距离,求平均值b1,b2,取其中最小的值当作b_i
极端情况:【轮廓系数在 [ -1,1 ] 之间】
b_i >> a_i : 1
a_i >> b_i : -1
api:
sklearn.metrics.silhouette_score(x,labels)
# 计算所有样本平均轮廓系数
x: 特征值
labels: 被聚类标记的目标值