【发布时间】:2017-06-22 01:35:39
【问题描述】:
此问题是基于how to get quick summary of count in data.table 的扩展。
同样,这是特征工程的一部分,它根据称为 Col 的列通过回顾特定的时间窗口来总结每个 ID。相同的预处理将应用于测试集。由于数据集很大,基于 data.table 的解决方案可能更受欢迎。
1。使用回顾窗口对变量和值进行汇总
训练输入:
ID Time Col Count
A 2017-06-05 M 1
A 2017-06-02 M 1
A 2017-06-03 M 1
B 2017-06-02 K 1
B 2017-06-01 M 4
通过应用两天回顾,我们有:
ID Time Time-2D Col Count
A 2017-06-05 2017-06-03 M 1 #Time-2D by moving time two days back
A 2017-06-02 2017-05-31 M 1
A 2017-06-03 2017-06-01 M 1
B 2017-06-02 2017-05-31 K 1
B 2017-06-01 2017-05-30 M 4
预期输出(计数):
ID Time Time-2D Col_M Col_K
A 2017-06-05 2017-06-03 1 0 #from 2017-06-03 to 2017-06-05, for user A, there are 0 (sum(count)) of K and 1 (sum(count)) of M.
A 2017-06-02 2017-05-31 1 0
A 2017-06-03 2017-06-01 2 0 # 2 is because from 06-01 to 06-03, there is two rows in the first table (A 2017-06-02 M 1; A 2017-06-03 M 1) that the count summarization on M is 2.
B 2017-06-02 2017-05-31 0 1
B 2017-06-01 2017-05-30 4 0
2。计算比例
根据上表, 预期产出(比率):
ID Time Time-2D Col_M Col_K
A 2017-06-05 2017-06-03 1 0 # 1/sum(1+0)
A 2017-06-02 2017-05-31 1 0
A 2017-06-03 2017-06-01 1 0 #2/sum(2+0)
B 2017-06-02 2017-05-31 0 1
B 2017-06-01 2017-05-30 1 0 # 4/sum(4+0)
以上用于处理训练数据。对于测试数据集,如果需要映射到 Col_M, Col_K,意思是如果 Col 中出现 S 等其他值,将被忽略。
【问题讨论】:
-
可能在您的第 1 步中,预期的输出是错误的。不是 2?
标签: r data.table