数据和特征决定了机器学习算法的上限,而模型和算法只是不断逼近这个上限而已。
什么是特征工程?比如金融信贷申请反欺诈场景下,当一个新的用户来申请贷款,我们如何评估一个用户是欺诈用户还是正常用户,那么就需要找到这二者在哪些特征上表现存在差异,通过这些特征来进行区分。寻找基本特征、构建组合特征来有效地区分不同label的样本,这个就是特征工程。
特征工程往往是打开数据密码的钥匙,是数据科学中最有创造力的一部分。
建模就是从数据中学习到insights(洞见)过程,这个过程其实是很曲折的,他要经过数据的表达,模型的学习两步。
数据的表达就是原始数据经过clean and transformer得到features的过程,即为特征工程。
特征工程类似于炼丹术士的精炼过程。
他的作用就是把人的知识融入到数据表达中,减轻模型的负担,让模型更容易学习到本质的知识。
EDA是数据分析必须的过程,用来查看变量统计特征,可以此为基础尝试做特征工程。
这个属于三个中最轻便、简单的了。它可以快速生成报告,一览变量概况。
总共提供了六个部分内容:概述、变量、交互、相关性、缺失值、样本。
Sweetviz是另一个Python的开源代码包,仅用一行代码即可生成漂亮的EDA报告。与Pandas Profiling的区别在于它输出的是一个完全独立的HTML应用程序。
Sweetviz优势:
Sweetviz缺点:
mac使用有报错
PandasGUI与前面的两个不同,PandasGUI不会生成报告,而是生成一个GUI(图形用户界面)的数据框,我们可以使用它来更详细地分析我们的Dataframe。
pandasGUI优势:
pandasGUI缺点:
面向Pandas 中的DataFrame,D-Tale库可以进行可视化。和其他可视化不太一样的,D-Tale生成交互式图形界面,支持在其中定义所需的数据外观,并根据需要对数据进行探索性分析。
d-tale优势:
d-tale缺点:
Pandas Profiling、Sweetviz和PandasGUI都很不错,旨在简化我们的EDA处理。在不同的工作流程中,每个都有自己的优势和适用性,4个工具具体优势如下:
具体采取哪一种处理方式不仅依赖于业务和数据本身,还依赖于所选取的模型。
来源:如何进行时间序列的特征工程
我这里总结了以上类别编码方法的区别:
总结来说,关于类别特征,有以下心得:
(1) 统计类编码常常不适用于小样本,因为统计意义不明显。
(2) 当训练集和测试集分布不一致时,统计类编码往往会有预测偏移问题,所以一般会考虑结合交叉验证。
(3) 编码后特征数变多的编码方法,不适用于高基类的特征,会带来稀疏性和训练成本。
(4) 没有完美的编码方法,但感觉标签编码、平均编码、WOE编码和模型编码比较常用。
位置特征:
经纬度、POI、AOI、附近建筑物、路径、出发点、终点、常去点、收藏点
经纬度做散列得到空间区域分块,坐标拾取街道ID、城市ID等,位置与位置之间的距离(欧氏距离、球面距离、曼哈顿距离、真实街道距离)
降维方面: