机器学习:聚类-性能度量指标简介(附代码实现)

聚类的性能度量大致有两类:“外部指标”和“内部指标”。

外部指标:是指把算法得到的划分结果跟某个外部的“参考模型”(如专家给出的划分结果)比较。

定义:

有如下常用的聚类性能度量的外部指标:

Jaccard系数(JC):

FM指数(FMI):

Rand指数(RI):

容易看出,这些指标的值都在[0,1]之间,且越大越好。

内部指标:是指直接考察聚类结果,不利用任何参考模型的指标。

定义:

有如下常用的聚类性能度量的内部指标:

DB指数(DBI):

Dunn指数(DI):

DBI指标python代码实现:

#簇内样本间平均距离
mean_dist = [0,0,0];
for i in range(k):
    for j in range(len(result[i])):
        for l in range(j+1,len(result[i])):
            mean_dist[i] += np.sqrt(sum((x[result[i][j]] - x[result[i][l]])**2))
    mean_dist[i] = mean_dist[i] * 2 / (len(result[i]) * (len(result[i]) - 1))
#print(mean_dist)

DBI = 0;
for i in range(k):
    the_max = 0;
    for j in range(k):
        if i != j:
            center_dist = np.sqrt(sum((mean_point[i] - mean_point[j])**2))
            tmp_max = (mean_dist[i] + mean_dist[j]) / center_dist
            if tmp_max > the_max:
                the_max = tmp_max
    DBI += the_max
DBI /= k

参考资料:周志华《机器学习》

猜你喜欢

转载自blog.csdn.net/weixin_35732969/article/details/81137111