用于预测建模的地面实况和特征提取

数据挖掘 预测建模 特征提取 特征工程
2022-03-11 14:38:23

我有一个用户数据集,每个用户都有关于他的活动的日常信息(代表他的身体活动的一些测量值的数值)。

此外,每个用户每天都有一个布尔值,表示他/她是否采取了特定行动。

数据集如下所示

+------+----------+----------+----------+-------+
|userID|      date| activity1| activity2| action|
+------+----------+----------+----------+-------+
| user1|2016-06-05|       5.3|         6|  false|
| user1|2016-06-04|       3.1|         8|   true|
| user1|2016-06-03|       2.0|        13|  false|
| user1|2016-06-02|       4.7|         1|  false|
| user1|2016-06-01|       1.3|         9|  false|
| user1|   ...ect.|       ...|       ...|    ...|
| user2|2016-06-05|       0.6|         5|   ture|
| user2|2016-06-04|       3.0|         5|  false|
| user2|2016-06-03|       0.0|         0|  false|
| user2|2016-06-02|       2.1|         3|  false|
| user2|2016-06-01|       6.3|         9|  false|
| user2|   ...ect.|       ...|       ...|    ...|
| user3|2016-06-05|       5.3|         0|  false|
| user3|2016-06-04|       5.3|        11|  false|
| user3|2016-06-03|       6.8|         5|  false|
| user3|2016-06-02|       4.9|         2|  false|
| user3|   ...ect.|       ...|       ...|    ...|
+------+----------+----------+----------+-------+

请注意,数据集不是固定的,因此每个新的一天都会为每个用户添加一个新行。但是列数是固定的。

目标

建立一个模型来预测哪个用户可能在不久的将来采取行动(例如,在接下来的 7 天内)。

方法

我的方法是构建代表每个用户在一段时间内的活动值的特征向量,并使用操作列作为基本事实的来源。然后我将ground-truth和特征向量提供给二进制分类训练算法(例如SVM或随机森林),以生成能够预测用户是否可能采取行动的模型。

问题

我从积极的例子开始,即采取行动的用户。为了提取正例的特征向量,我结合了行动前 X(30 或 7 或 1)天(包括采取行动的日期)的活动值。

当我转向负例时,它变得不那么明显了,我不确定如何选择负例以及如何从中提取特征这实际上让我重新质疑我选择正例和构建特征向量的方式是否正确

问题

  1. 如何建立正面(确实采取行动的用户)和负面(没有采取行动的用户)示例的基本事实?
  2. 在这种情况下,什么是反面例子?是用户在固定时间内没有采取行动吗?如果他在这个固定期限内没有采取行动,而是在之后立即采取行动呢?
  3. 选择日期范围以从中提取特征向量的可能方法是什么。

理性问题

有没有更合适的方法(除了分类)来解决这类问题?

1个回答

你的方法很好。这种提取特征的方法可以带来很好的结果。但在继续之前,我建议回答这两个问题:用户今天和昨天的行为之间是否存在任何相关性……等等“时间相关性/时间依赖性”用户之间是否存在任何类型的依赖关系?回答这些问题可以衡量你的功能质量吗?有时甚至不需要计算来回答这些问题,如果您告诉我们您正在关注什么样的行动或活动,我们可能会以更好的方式提供帮助。例如:如果用户1今天使用了他的车,那么明天仍然很有可能使用它,但是如果用户1今天去理发店,那么很有可能明天不会去