如何确定垃圾邮件和工作日之间的关系?

数据挖掘 Python 相关性 麻木的
2021-10-02 00:31:43

我正在尝试检查垃圾邮件和工作日之间是否存在相关性。我的数据集如下所示:

  Spam? Day
0   1.0 Saturday
1   1.0 Saturday
3   0.0 Saturday
5   1.0 Saturday
7   0.0 Friday
... ... ...
346 0.0 Friday
348 1.0 Friday
361 0.0 Saturday
383 1.0 Thursday
387 1.0 Friday

其中 1 表示垃圾邮件,0 表示垃圾邮件。

我试过如下

corr = (numpy.corrcoef(df['Spam?'],df['Days']))

我不知道如何解释这两个变量之间可能存在的关系,以及绘图是否有助于更好地可视化数据和关系。

2个回答

(开始是评论,但结果比预期的要长)

使用这样的数据集,一个简单的条形图可能非常有洞察力:在 X 轴上是星期几,在 Y 轴上是频率,每天有两个条形图(垃圾邮件/非垃圾邮件使用不同的颜色)。稍微高级一点的版本:两个箱线图,一个用于工作日,另一个用于周末。箱线图对于只有 5 个(周一至周五)和 2 个(周六至周日)的值来说有点过头了,但它很容易做到并显示了全局。

为了测试任何差异(例如工作日与周末)是否显着,我认为这是卡方检验的一个很好的案例。

numpy.corrcoef将为您提供 Pearson 相关性,但您的特征是分类的。
您应该计算 Crammer'v。

您可以在此答案中获取详细信息/代码,因为这两个问题有点相似DS.SE

在情节上
Erwan 的建议似乎不错。
此外,尝试在星期几和垃圾邮件/总比率之间绘制(线图)(即,对总数量进行标准化),因为单个数字更容易理解。