如何使用Python在数据集和目标属性的每个属性之间绘制相关系数的图表

时间:2016-02-15 22:56:28

标签: python numpy pandas scikit-learn sklearn-pandas

我是Python的新手,我需要绘制每个属性的相关系数与目标值之间的图表。我有一个包含大量值的输入数据集。我提供了样本数据集值,如下所示。我们需要预测特定消费者是否会离开公司,因此结果列是目标变量。

SALARY  DUE RENT    CALLSPERDAY CALL DURATION   RESULT
238790  7   109354  0                     6     YES
56004   0   204611  28                    15    NO
671672  27  371953  0                      4    NO
786035  1   421999  19                    11    YES
89684   2   503335  25                     8    NO
904285  3   522554  0                     13    YES
12072   4   307649  4                     11    NO
23621   19  389157  0                      4    YES
34769   11  291214  1                      13   YES
945835  23  515777  0                      5    NO

在这里,如果你看到,结果列是String,其余列是整数。与结果类似,我也有很少的其他列(在示例中没有提到)具有字符串值。在这里,我需要计算包含字符串和整数值的列的值。 使用字典我已经为每个具有字符串值的列分配了一个值。 示例:结果列具有“是”或“否”。因此,赋值如下:

D = {'NO': 0, 'YES': 1}

并使用lambda函数,循环遍历数据集的每一列,用0替换NO,用1替换YES。 我尝试使用以下公式计算相关系数:

pearsonr(S.SALARY,targetVarible)

其中S是包含所有值的数据帧。 同样,我将循环遍历数据集的所有列,并再次计算目标变量的每列的相关系数。

这是计算相关系数的有效方法吗? 因为,我的价值如下 (0.088327739664096655,1.1787456108540725e-25) e ^ -25似乎太小了。

还有其他方法可以计算吗?您是否建议使用任何其他方式来输入String值,以便与其他具有整数值的列(我使用的Dictionaries和lambdas除外)相比,它可以被视为整数?)

另外,我需要使用相同的代码绘制条形图。我计划使用matplotlib import pyplot作为plt库。

您是否会建议绘制条形图的任何其他功能。我主要使用sklearn库,numpy和pandas来使用它们的现有函数。 如果有人帮助我,那会很棒。感谢。

1 个答案:

答案 0 :(得分:0)

如评论中所述,您可以使用df.corr()来获取数据的相关矩阵。假设您的DataFrame的名称是df,您可以使用以下内容绘制相关性:

df_corr = df.corr()
df_corr[['RESULT']].plot(kind='hist')

Pandas DataFrames有一个使用matplotlib的绘图功能。您可以在此处了解详情:http://pandas.pydata.org/pandas-docs/stable/visualization.html