1、特征工程
特征工程指表征和转换原始数据的工程方法,是机器学习整个流程中连接“数据”和“算法”的关键步骤,也往往是最花费时间和精力的一步。Barga
等(2015)定义:特征工程(Feature engineering)是将原始数据转化为更能代表机器学习算法潜在问题的特征,从而提高模型精度的过程。
特征工程中的特征(Feature)指原始数据某方面的数学表现。特征位于数据和模型之间,机器学习通过将数据拟合到数学模型中获取结论或做出预测,要输入模型的就是特征。
2、特征工程基本流程
特征工程是将原始数据转换为更高效的编码方式(特征)的过程,主要包括三个部分:特征处理、特征选择和特征监控。
1)特征提取
特征提取是特征工程的基础,包括数据预处理、特征构建和特征提取。特征构建是“头脑风暴”的过程,要求在理解研究问题和数据背景的基础上,结合专业领域知识、数学知识甚至是经验和直觉,初步构思具有物理意义的数据特征,主要有三种方法:①结合学科知识和过去研究经验自行构建特征;②结合专家意见优化特征;③通过“众包”方法构建特征。
数据预处理和特征提取通常交叉进行,主要完成三个任务:(1)清洗数据并进行预处理,使数据和特征能够更好地适应模型;(2)结合原始数据和特征构建,“尽可能多”地提取相关特征形成特征集;(3)通过数据清洗和特征提取后可以得到未经处理的原始特征,这些特征可能存在数据缺失、特征缺失、数据不属于同一量纲等问题,需要进一步处理,常用方法有①使用标准化、归一化、区间缩放等方法对数据无量纲化;②对定性特征编码;③对部分定量特征进行变换,包括二值化、分箱/分区、构造交叉特征等;④缺失值的处理方法有删除、统计填充、统一填充、预测填充等,需要具体问题具体分析。
2)特征选择
特征选择是特征工程的核心,通过修减特征来减少噪声和冗余。选择合适的特征子集,一方面能减少特征间的相互影响,避免过拟合,提高模型的泛化能力和运算速度;另一方面能提高模型的可解释性。依据特征选择在特征工程流程中的位置,相关方法分为三种:过滤法、包裹法和嵌入法。
①过滤法(Filter):首先依据相关性或发散性选择特征,之后输入模型。常用方法有相关系数法、方差选择法、卡方检验法和互信息法。这些方法具有一个共同的核心思想:选择与目标特征相关度高、与其他特征相关度小、特征本身容易识别(发散性高)的特征。
②包裹法(Wrapper):采用特征搜索方法,不断选择特征自己,并将不同的特征子集输入目标函数,依据分类效果递归地选择或排除特征,简而言之,就是选择-输入目标函数进行验证-依据验证结果再选择-输入目标函数再验证的循环过程。包裹法主要使用递归特征消除法,其原理是每次筛除一个“最差”的特征,迭代直到特征数少于阈值。
③嵌入法(Embedded):使用机器学习算法训练模型,得到各个特征的权值系数,依据权值选择特征。决策树就是一种嵌入式的特征选择,每次分枝都是为了“选择当前情况下分类效果最好的特征”。随着人工智能领域的发展,具有自动学习特征能力的深度学习为特征选择和基于特征的预测建模提供了新思路。
3)特征监控和评价
特征监控和评价通常是与特征选择、模型训练和测试相结合的,特征选择本身就是依据特征质量和权重选择有效的特征,机器学习建模时也需要评估模型性能。
推荐阅读:《Merlin NVTabular:基于 GPU 加速的推荐系统特征工程最佳实践.pdf 》
《Apache MXNet 2.0:连接深度学习与传统机器学习.pdf 》
《Talkdesk:人工智能、聊天机器人及机器学习指南(英文版)(78页).pdf 》