我是靠谱客的博主 烂漫玉米,最近开发中收集的这篇文章主要介绍python 编写聚类指标purity纯度和jaccard函数自编purity纯度和jaccard函数,最后运算速度都挺快的,另外,似乎用scipy中的混淆矩阵也可以编写scipy,而且要比我写的jaccard简便一些,可能是把我写的一些封装了吧。,觉得挺不错的,现在分享给大家,希望可以做个参考。
概述
自编purity纯度和jaccard函数,最后运算速度都挺快的,另外,似乎用scipy中的混淆矩阵也可以编写scipy,而且要比我写的jaccard简便一些,可能是把我写的一些封装了吧。
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)
jaccard
def jaccard(cluster, label):
dist_cluster = np.abs(np.tile(cluster, (len(cluster), 1)) -
np.tile(cluster, (len(cluster), 1)).T)
dist_label = np.abs(np.tile(label, (len(label), 1)) -
np.tile(label, (len(label), 1)).T)
a_loc = np.argwhere(dist_cluster+dist_label == 0)
n = len(cluster)
a = (a_loc.shape[0]-n)/2
same_cluster_index = np.argwhere(dist_cluster == 0)
same_label_index = np.argwhere(dist_label == 0)
bc = same_cluster_index.shape[0]+same_label_index.shape[0]-2*n-2*a
return a/(a+bc)
最后
以上就是烂漫玉米为你收集整理的python 编写聚类指标purity纯度和jaccard函数自编purity纯度和jaccard函数,最后运算速度都挺快的,另外,似乎用scipy中的混淆矩阵也可以编写scipy,而且要比我写的jaccard简便一些,可能是把我写的一些封装了吧。的全部内容,希望文章能够帮你解决python 编写聚类指标purity纯度和jaccard函数自编purity纯度和jaccard函数,最后运算速度都挺快的,另外,似乎用scipy中的混淆矩阵也可以编写scipy,而且要比我写的jaccard简便一些,可能是把我写的一些封装了吧。所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
发表评论 取消回复