from sklearn import datasets
from sklearn.utils.linear_assignment_ import linear_assignment
import seaborn as sns
import matplotlib.pyplot as plt
import copy
from sklearn.metrics import confusion_matrix
from sklearn import metrics
from sklearn.cluster import KMeans
import pandas as pd
import numpy as np
纯度
def purity(cluster, label):
cluster = np.array(cluster)
label = np. array(label)
indedata1 = {}
for p in np.unique(label):
indedata1[p] = np.argwhere(label == p)
indedata2 = {}
for q in np.unique(cluster):
indedata2[q] = np.argwhere(cluster == q)
count_all = []
for i in indedata1.values():
count = []
for j in indedata2.values():
a = np.intersect1d(i, j).shape[0]
count.append(a)
count_all.append(count)
return sum(np.max(count_all, axis=0))/len(cluster)