如何计算所有特征与目标变量(二元分类器,python 3)的相关性?

Posted

技术标签:

【中文标题】如何计算所有特征与目标变量(二元分类器,python 3)的相关性?【英文标题】:How to calculate the correlation of all features with the target variable (binary classifier, python 3)? 【发布时间】:2019-08-02 10:41:28 【问题描述】:

我想在 python 中计算我的所有特征(所有浮点类型)和 类标签(二进制,0 或 1)的相关性。此外,我想绘制数据以按类别可视化它们的分布。

这是必需的,因此我可以找到与单个标签相关联的功能并找出它们的真正重要性。请注意,我不希望成对特征相关,并且我的分类器是二元的。

我已经尝试了以下方法(来自 *** 中的类似帖子),但这并不是我想要的。

df.drop("Target", axis=1).apply(lambda x: x.corr(df.Target)) 

请在附图中查看其中一个功能(来自 Weka)的分布情况。

其中一项功能的类分布

非常感谢任何反馈。

【问题讨论】:

只需使用df.corr() 获取所有特征之间的关联关系,然后删除除目标之外的所有列。 【参考方案1】:

相关性不应该用于分类变量。更多解释见here

您可以通过以下方法了解自变量与目标变量之间的关系。

from sklearn.datasets import load_breast_cancer
data  = load_breast_cancer(return_X_y=False)

import pandas as pd

df=pd.DataFrame(data.data[:,:5])
df.columns = data.feature_names[:5]

df['target'] = data.target.astype(str)

import seaborn as sns;
import matplotlib.pyplot as plt
g= sns.pairplot(df,hue = 'target', diag_kind= 'hist',
             vars=df.columns[:-1],
             plot_kws=dict(alpha=0.5), 
             diag_kws=dict(alpha=0.5))
plt.show()

【讨论】:

以上是关于如何计算所有特征与目标变量(二元分类器,python 3)的相关性?的主要内容,如果未能解决你的问题,请参考以下文章

sklearn 如何计算二元分类器的 roc 曲线下面积?

强制随机森林分类器使用所有输入特征?

如何估计二元分类器所需的内存量?

如何通过简单的模拟模型生成人工数据集,用于具有二元响应和 4-5 特征的分类分析? [关闭]

如何推导出二元分类问题中的主要影响因素

当预测变量不是二进制时,Sklearn 朴素贝叶斯伯努利分类器如何工作?