【发布时间】:2016-10-09 20:39:48
【问题描述】:
我有一个用户数据集,每个用户都有关于他的活动的日常信息(代表他身体活动的一些测量值的数值)。
此外,每天的每个用户都有一个布尔值,表示他/她是否采取了特定行动。
数据集如下所示
+------+----------+----------+----------+-------+
|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| true|
| 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 天内)采取行动。
接近
我的方法是构建代表每个用户在一段时间内的活动值的特征向量,并使用操作列作为基本事实的来源。然后,我将地面实况和特征向量输入到二元分类训练算法(例如 SVM 或随机森林),以生成能够预测用户是否可能采取行动的模型。
问题
我从采取行动的用户的正面例子开始。为了提取正例的特征向量,我结合了行动前 X(30 或 7 或 1)天(包括采取行动的当天)的活动值。
当我转向负例时,它变得不那么明显了,我不确定如何选择负例以及如何从中提取特征。这实际上让我重新质疑我选择正例和构建特征向量的方式是否正确。
问题
- 如何构建正面(确实采取行动的用户)和负面(未采取行动的用户)示例的基本事实?
- 在这种情况下,什么是反面例子?是用户在固定时间内没有采取行动吗?如果他在这个固定期限内没有采取行动,而是在之后立即采取行动怎么办?
- 有哪些可能的方法可以选择日期范围以从中提取特征向量。
理性问题
有没有更合适的方法(除了分类)来解决这类问题?
【问题讨论】:
-
一个简短的说明:每个用户每天是否有一组恒定且有限的活动?还是每天都不一样?
-
@HoriaComan 我已更新帖子以回答您的问题。数据集中的列数是固定的。
标签: machine-learning classification feature-extraction predict feature-selection