ukd*_*hub 9 python r machine-learning feature-selection logistic-regression
我有一个数据集,其中包含其他变量的事务时间戳,格式为26-09-2017 15:29:32.我需要找到销售的可能相关性和预测(比如在逻辑回归中).我的问题是:
Run Code Online (Sandbox Code Playgroud)# Datetime Gender Purchase 1 23/09/2015 00:00:00 0 1 2 23/09/2015 01:00:00 1 0 3 25/09/2015 02:00:00 1 0 4 27/09/2015 03:00:00 1 1 5 28/09/2015 04:00:00 0 0
Rya*_*ohn 17
一些随意的想法:
日期是特征工程的良好来源,我认为没有一种方法可以在模型中使用日期.业务用户的专业知识会很棒; 是否观察到可以编码到数据中的趋势?
可能的功能建议包括:
所有这些都取决于数据集,大多数都不适用.
一些链接:
http://appliedpredictivemodeling.com/blog/2015/7/28/feature-engineering-versus-feature-extraction
https://www.salford-systems.com/blog/dan-steinberg/using-dates-in-data-mining-models
http://trevorstephens.com/kaggle-titanic-tutorial/r-part-4-feature-engineering/
Plu*_*ile 14
具有一组在循环中重复的唯一值的数据称为循环数据。与时间相关的特征本质上主要是循环的。例如,一年中的几个月、一周中的几天、几小时、几分钟等......这些特征具有一组值,并且所有观察结果都将仅具有该组中的值。在许多机器学习问题中,我们都会遇到这样的特征。事实证明,正确处理这些特征有助于提高准确性。
执行
def encode(data, col, max_val):
data[col + '_sin'] = np.sin(2 * np.pi * data[col]/max_val)
data[col + '_cos'] = np.cos(2 * np.pi * data[col]/max_val)
return data
data['month'] = data.datetime.dt.month
data = encode(data, 'month', 12)
data['day'] = data.datetime.dt.day
data = encode(data, 'day', 31)
Run Code Online (Sandbox Code Playgroud)
逻辑
对循环数据进行编码的常见方法是使用正弦和余弦变换将数据变换为二维。将每个循环变量映射到一个圆上,以便该变量的最小值出现在最大值旁边。我们使用 sin 和 cos 三角函数计算该点的 x 和 y 分量。
对于处理月份,我们考虑从 0 到 11,并参考下图。
我们可以使用以下转换来做到这一点: