Python机器学习:自定义函数筛选相关性高的特征

当特征有很多的时候,难免会出现一些相关性高的特征。可以自定义一个自动化的方法批量输出这些特征,方便我们进行下一步删除或者降维的处理。

def hight_corr(x):
    data_corr = x.corr()>0.65
    a=[]
    
    for i in data_corr.columns:
        if data_corr[i].sum()>=2:
            a.append(i)

    return a

代码讲解:

data是数据集;

def hight_corr()是自定义的函数名;

x是自定义参数,用来表示数据集的;

data.corr()生成相关矩阵,data.corr()>0.65是条件判断会生成布尔值;

data_corr 用来保存生成的布尔值的矩阵;

data_corr[i]筛选相关矩阵其中一列,i是被定义的用来代表columns的参数;

data_corr[i].sum()对布尔值进行相加,强相关的值为为True,也就是1,强相关的字段会被sum()函数计数出来;

那为什么要判断大于等于2呢,因为在矩阵里,特征a与自身相关 本来就有一个1,当这个特征a与另外的特征b强相关的时候才会有第二个1;

append()指在数组后面追加元素,a是定义的数组,i是字段名;


这个段代码可以直接复制使用,然后把数据集放到函数里就可以啦:

hight_corr(data)

运行结果:

Python机器学习:自定义函数筛选相关性高的特征_第1张图片

 强相关性的字段就可以一键输出出来啦!

你可能感兴趣的:(Python机器学习,python,深度学习)