在机器学习中,特征工程是一个非常重要的环节,特征的好坏直接影响模型的效果。
除了用SQL开发一些简单的单值特征,比如每家店铺的流量,每家店铺的销量,这种单维的特征非常常见。
在实际工作中,还会有开发一些复杂特征的需求,常见的比如每家店铺在每个城市的广告投入,每家店在每个城市的产出,这里的投入产出指标会需要统计在店铺、城市两个维度下的值。
这种情况用怎么实现呢?
1. 用SQL拼出你想要的json串
- 优点:借助SQL内置功能,查询速度快,效率高
- 缺点:一次可能只能开发出一个特征值
2.用python或其他语言查询SQL结果
- 优点:编程语言对于list,set,json操作灵活
- 缺点:需要for循环,效率低
尤其是这些特征还要上调度,每天都要跑数据,在计算资源与时间的取舍后,优先选择通过SQL来实现。
实现步骤:
1.第一个group by 计算结果
2. 第二个group by拼接结果
需要掌握4个函数的用法:
- concat()函数