1

我是 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

在这里,如果您看到,结果列是字符串,其余列是整数。与结果类似,我还有一些其他列(示例中未提及)具有字符串值。在这里,我需要计算同时具有字符串和整数值的列的值。使用字典,我为每个具有字符串值的列分配了一个值。示例:结果列有是或否。因此分配的值如下:

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

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

pearsonr(S.SALARY,targetVarible)

其中 S 是保存所有值的数据框。同样,我将遍历数据集的所有列,并计算每列与目标变量的相关系数。

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

有没有其他的计算方法?您是否会建议任何其他输入字符串值的方法,以便与具有整数值的其他列(我使用的字典和 lambda 除外)相比时,它可以被视为整数?

我还需要使用相同的代码绘制条形图。我打算使用 from matplotlib import pyplot as plt library。

你会建议任何其他功能来绘制条形图。我主要使用 sklearn 库、numpy 和 pandas 来使用它们的现有功能。如果有人帮助我,那就太好了。谢谢。

4

1 回答 1

1

如评论中所述,您可以使用 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

于 2016-05-01T15:46:50.023 回答