我是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 之外(相比,它可以被视为整数?
我还需要使用相同的代码绘制条形图。我打算使用从 matplotlib 导入 pyplot 作为 plt 库。
您是否建议任何其他功能来绘制条形图。大多数情况下,我使用 sklearn 库、numpy 和 pandas 来使用它们的现有函数。如果有人帮助我,那就太好了。谢谢。
如注释中所述,您可以使用 df.corr(( 获取数据的相关矩阵。假设数据帧的名称为 df,则可以使用以下命令绘制相关性:
df_corr = df.corr()
df_corr[['RESULT']].plot(kind='hist')
Pandas DataFrames有一个使用matplotlib的plot函数。您可以在此处了解更多信息:http://pandas.pydata.org/pandas-docs/stable/visualization.html