机器学习特征工程全解析:从基础到高级技术
1. 引言
在机器学习领域,特征工程(FE)是至关重要的一环。有些机器学习算法能够处理数据库中非规范形式的特征,如记录、集合和列表等。不过,大多数系统通过分解这些复杂特征能获得更好的效果。
特征模板是将原始数据一次性转换为多个(更简单)特征的小程序。它主要有两个目标:一是以更适合机器学习模型的方式呈现数据;二是融入关于问题本质的领域知识。
例如,对于原始数据中的日期属性,一个特征模板可以将其转换为年、月、日三个离散特征。若月份本身具有重要意义,这种转换能让机器学习轻松获取相关信息。而如果原始日期属性是以从某个固定日期开始计算的天数来表示,模型就需要大量训练数据才能自行学习出月份信息,且泛化能力往往较差。
再如关键词 - 字节码项目,要根据 Java 方法的编译字节码预测其名称。若手动添加诸如“方法中存在 iadd 操作”这样的特征,会非常繁琐。此时,使用特征模板提取特征是更好的选择。比如针对特定指令“getfield org.jpc.emulator.f.i”,可以生成指令本身(“getfield”)、指令加操作数(“getfield_org.jpc.emulator.f.i”)以及指令加缩写操作数(“getfield_org.jpc.emulator”)这三个特征,从而得到一个庞大的特征集,后续可能还需要进一步的特征工程来精简该集合。
2. 特征工程的一些思考
特征工程并非总能提升机器学习过程的性能,在进行特征工程时,可能会遇到死胡同和性能倒退的情况。但某一技术在特定问题上失败,并不意味着它在其他问题上也会失败,这些技术在该领域有着长期的成功记录。
特征
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



