Pandas - 数据相关性
寻找关系
Pandas 模块的一个很棒的功能是 corr()
方法。
corr()
方法计算数据集每个列之间的关系。
此页面中的示例使用名为“data.csv”的 CSV 文件。
示例
显示列之间的关系
df.corr()
自己试一试 »
结果
Duration Pulse Maxpulse Calories Duration 1.000000 -0.155408 0.009403 0.922721 Pulse -0.155408 1.000000 0.786535 0.025120 Maxpulse 0.009403 0.786535 1.000000 0.203814 Calories 0.922721 0.025120 0.203814 1.000000
注意:corr()
方法会忽略“非数字”列。
结果解释
corr()
方法的结果是一个包含许多数字的表格,这些数字表示两列之间的关系强度。
数字范围从 -1 到 1。
1 表示存在 1 对 1 的关系(完美的相关性),对于此数据集,每当第一列的值增加时,另一列的值也会增加。
0.9 也是一个良好的关系,如果您增加一个值,另一个值也可能会增加。
-0.9 与 0.9 一样是一个良好的关系,但是如果您增加一个值,另一个值可能会下降。
0.2 表示关系不好,这意味着如果一个值增加并不意味着另一个值也会增加。
什么是良好的相关性?这取决于用途,但我认为可以肯定地说,至少需要 0.6
(或 -0.6
)才能称其为良好的相关性。
完美相关性
我们可以看到“Duration”和“Duration”得到了 1.000000
的数值,这是有道理的,因为每一列与其自身总是存在完美的关系。
良好相关性
“Duration”和“Calories”的相关性为 0.922721
,这是一个非常好的相关性,我们可以预测锻炼时间越长,消耗的卡路里越多,反之亦然:如果您消耗了大量的卡路里,您可能进行了长时间的锻炼。
不良相关性
“Duration”和“Maxpulse”的相关性为 0.009403
,这是一个非常差的相关性,这意味着我们无法仅通过查看锻炼时间来预测最大脉搏,反之亦然。