属性重要性的实现(定性数据聚类)

本文介绍如何用python实现属性重要性的计算

1.背景

https://blog.csdn.net/eilenjz/article/details/79686092 属性重要性的举例(定性数据聚类)

2.程序

x为list类型的原始数据,number为需要计算的列数

def importance(x, number):
    y = [] # list of 重要性
    # x 去重得到 new_x
    new_x = []
    for line in x:
        if line not in new_x:
            new_x.append(line)
    # 得到 x 的聚类结果
    n = len(x)
    x_set = []
    for line in new_x:
        num = []
        for i in range(n):
            if x[i] == line:
                num.append(i)
        x_set.append(num) # 聚类结果,list格式
    # 分别计算每个变量的重要性    
    x_array = np.array(x)
    [n1,n2] = x_array.shape
    for i in range(number):
        value = 0
        df = x_array[:,range(i)+range(i+1,n2)] # 取数
        df_list = df.tolist()
        # df_list 去重得到 new_df
        new_df = []
        for line in df_list:
            if line not in new_df:
                new_df.append(line)
        # 计算重要性
        for line in new_df:
            num = []
            for j in range(n):
                if df_list[j] == line:
                    num.append(j)
            if num in x_set:
                value = value + len(num)
        value1 = 1 - value/float(n1)
        y.append(value1)
    return y

3.数据

csdn不给传附件,需要测试的同学自己用excel弄一个咯..数据<34名同学的综合测评成绩>

属性重要性的实现(定性数据聚类)_第1张图片

你可能感兴趣的:(属性重要性的实现(定性数据聚类))