数据科学【六】:聚类(二)

数据科学【六】:聚类(二)

本文数据采用mnist dataset

获得聚类中心点

使用cluster_centers_即可。
示例:将mnist数据集分为十个聚类,并绘制各个中心点。

import pandas as pd
import matplotlib.pyplot as plt

from sklearn.cluster import KMeans
from sklearn.datasets import load_digits

mnist = load_digits()


data_a = mnist.data
kmeans_a = KMeans(n_clusters = 10)
kmeans_a.fit(data_a)
from sklearn.decomposition import PCA

centers = PCA(2).fit_transform(kmeans_a.cluster_centers_)
plt.scatter(centers[:, 0], centers[:, 1])
plt.show()

在这里插入图片描述

聚类差异评价方式

我们可以使用disagree distance来评价两个聚类之间的差异。其定义为:
D ( P , C ) = Σ x , y I P , C ( x , y ) D(P, C)=\Sigma _{x, y} \mathbb{I}_{P, C}(x, y) D(P,C)=Σx,yIP,C(x,y)
其中
I P , C ( x , y ) = { 1 , 若 P 与 C 在 x , y 的 的 归 属 问 题 上 不 同 0 \mathbb{I}_{P,C}(x,y)=\left\{ \begin{aligned} 1& , 若P与C在x, y的的归属问题上不同\\ 0 & \end{aligned} \right. IP,C(x,y)={10,PCx,y
举个例子:下表为对 x 1 x_1 x1 x 5 x_5 x5 P P P, C C C两聚类给出的标签:

PC
x 1 x_1 x111
x 2 x_2 x212
x 3 x_3 x321
x 4 x_4 x433
x 5 x_5 x534

对于 x 1 , x 2 x_1, x_2 x1,x2, P P P认为它们标签相同, 均为1, 而 C C C认为它们属不同类,因此diagree distance加上1.
对于 x 1 , x 4 x_1, x_4 x1,x4, P P P认为它们标签不同, C C C 也认为它们标签不同,因此两个聚类在这两个数据上达成一致, diagree distance加上0.
示例:计算上一节进行的10分类与原标签的disagree distance

labels_b = mnist.target
labels_a = kmeans_a.labels_
disagreement_dis = 0
for i in range(len(labels_b)-1):
    for j in range(i+1, len(labels_b)):
        if (labels_a[i] == labels_a[j]) != (labels_b[i] == labels_b[j]):
            disagreement_dis += 1

print(disagreement_dis)
99161
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值