0

我正在解决一个问题,我必须预测来自公司的发送电子邮件是否被打开,如果它被打开,我必须预测收件人是否点击了给定的链接。

我有一个具有以下特征的数据集:

  • 电子邮件内的总链接
  • 电子邮件中的内部链接总数
  • 电子邮件中的图像数量
  • 电子邮件中的部分数量
  • 电子邮件正文
  • 电子邮件主题

对于电子邮件正文和主题,我可以使用CountVectorizer,但如何将我的其他功能包含到由所述 CountVectorizer 创建的稀疏矩阵中。

4

2 回答 2

0

您的问题是您有两个大的稀疏特征向量(电子邮件正文和主题)以及小的密集特征向量。这是我的简单建议:

  1. (Jerome 的想法)减少电子邮件正文和主题的维度(通过 PCA、AutoEncoder、CBOW、Doc2Vec、PLSA 或 LDA),这样您最终将得到一个密集的特征向量。然后,将其与其他元信息连接起来。
  2. 我认为将矩阵与其他特征连接起来是可以的。如果您使用简单的线性模型,您可以对元信息赋予更多权重,并缩小从电子邮件主题和正文中学到的所有权重。

真正的问题是,当您使用词袋表示(词频或 TFIDF)时,对于一封非常短的电子邮件,您的特征向量将非常稀疏。该模型可能表现不佳。

顺便说一句,我认为作者信息可以很好地指示电子邮件是否会被打开。

于 2018-04-20T08:04:12.770 回答
0

您可以轻松地连接这些矩阵和其他特征列来构建一个非常大的矩阵。

但是,请注意,连接电子邮件正文和电子邮件主题的矩阵可能会创建一个非常稀疏的矩阵。然后,当您添加其他功能时,您可能会冒着“淡化”其他功能的风险。这主要取决于您选择用于预测的算法。

在所有情况下,您都将从减少电子邮件主题和正文的两个矩阵的维数中受益,或者直接使用与 CountVectorizer 不同的方法 - 例如 TFIDF。

于 2018-04-18T14:18:41.003 回答