python通过信息增益的方法进行字符型离散特征之间的相关性分析

参加了一个比赛,关于数据挖掘的多分类问题,特征集中包含了一些离散特征,通过计算信息增益来度量离散特征与目标特征之间的相关性

离散特征: accept_from 

目标特征:CODE  

 

代码实现:

import pandas as pd
import numpy as np


# 信息熵
def info_entropy(attr):
    prob = pd.value_counts(attr) / len(attr)   # 对于一个特征不同类所占的比例类
    return sum( np.log2( prob )* prob * (-1) )  # 经验熵



# 信息增益   (返回值越大,attr1 与 attr2 相关性越强)
def info_gain(dataset, attr1, attr2):
    ent1= dataset.groupby(attr1).apply(lambda x: info_entropy(x[attr2]))
    prob = pd.value_counts(dataset[attr1]) / len(dataset[attr1])
    ent2= sum( ent1 * prob )                   # 经验条件熵
    return info_entropy(dataset[attr2]) - ent2     #  信息增益

print(info_gain(dataset,'accept_from', 'CODE'))

参考博客: https://blog.csdn.net/sky88088/article/details/51737136

你可能感兴趣的:(数据挖掘,信息增益,离散特征,特征相关性)