机器学习-*-聚类评价指标

本文探讨了聚类分析中常用的评价指标,通过代码实现,引用了《文本聚类分析效果评价及文本表示研究》论文,帮助理解如何评估聚类算法的性能。
摘要由CSDN通过智能技术生成

直接上代码,参考论文《文本聚类分析效果评价及文本表示研究》

#!/usr/bin/python
# -*- coding:utf-8 -*-
"""
@Name cluster_metrics
@Description
    聚类评估方法
@Date 2019/4/4
"""
import sys
import math

def _find_dict_and_dataset(p_class = [],c_class = []):
    """
    把标注类簇p_class和聚类后的类簇c_class
    转化成{doc:"类标"}形式并得到全部数据集X
    示例输入:[["1","2"],["3","4"]],[["1","3"],["2","4"]]
    :param p_class:
    :param c_class:
    :return: X,p_map,c_map
    """
    X = []
    p_map = {
   }
    c_map = {
   }
    for pi in range(len(p_class)):
        for i in range(len(p_class[pi])):
            doc = p_class[pi][i]
            p_map[doc] = "P"+str(pi)
            X.append(doc)

    for ci in range(len(c_class)):
        for i in range(len(c_class[ci])):
            doc = c_class[ci][i]
            c_map[doc] = "C"+str(ci)
    return X,p_map,c_map

def TraditionalIndexRate(p_class = [],c_class = []):
    """
    输出传统统计指标,在文本聚类中运用不多
    示例输入:[["1","2"],["3","4"]],[["1","3"],["2","4"]]
    :param p_class:
    :param c_class:
    :return: R,J,FM,PA,NA,AA
    """
    if len(p_class) == 0 or len(c_class) == 
  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值