当前位置:   article > 正文

数据科学【六】:聚类(二)_有标签的数据还需聚类分析吗

有标签的数据还需聚类分析吗

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

本文数据采用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()
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
  • 11
  • 12
  • 13
  • 14
  • 15
  • 16
  • 17

在这里插入图片描述

聚类差异评价方式

我们可以使用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\{ 1,PCx,y0

\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)
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
99161
  • 1
本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/w/Monodyee/article/detail/129013
推荐阅读
相关标签
  

闽ICP备14008679号