特征工程:什么是「组合特征」?要如何处理「高维组合特征」?

简介: 为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。在实际问题中,需要面对多种高维特征,简单地两两组合,依然容易存在参数过多、过拟合等问题。

为了提高复杂关系的拟合能力,在特征工程中经常会把一阶离散特征两两组合,构成高阶组合特征。在实际问题中,需要面对多种高维特征,简单地两两组合,依然容易存在参数过多、过拟合等问题。

怎样有效地找到组合特征? 可以利用决策树来寻找特征组合方式。

例如,影视推荐问题有两个低阶特征「语言」和「类型」,其中有语言分为中文和英文,类型分为电影和电视剧,那么这两个特征的高阶组合特征有(中文,电影)、(英文,电视剧)、(英文,电影)、(中文,电视剧)四种。下表的数据,就可以变为新的数据:

是否点击 语言 类型
0 中文 电影
1 英文 电影
1 中文 电视剧
0 英文 电视剧
是否点击 语言 = 中文,类型 = 电影 语言 = 英文,类型 = 电影 语言 = 中文,类型 = 电视剧 语言 = 英文,类型 = 电视剧
0 1 0 0 0
1 0 1 0 0
1 0 0 0 1
0 0 0 0 1

以逻辑回归为例,假设数据的特征向量为 $X=(x_1,x_2,\dots,x_k)$,则有:

$$ Y=\text{sigmoid}(\sum_i\sum_jw_{ij}\langle x_i,x_j\rangle) $$

$\langle x_i,x_j\rangle$ 表示 $x_i$ 和 $x_j$ 的组合特征,$w_{ij}$ 的维度等于第 $i$ 和第 $j$ 个特征不同取值的个数。在上例中,「语言」这个特征有中文和英文两个选择,「类型」这个特征有电影和电视剧两个选择,那么 $w_{ij}$ 的维度就为 $2\times 2=4$. 当组合之前的两个特征不同取值的个数都不大时,用这种方式不会有太大的问题。但是对于某些问题,有用户 ID 和物品 ID,而用户和物品的数量动辄几千万,几千万乘几千万 $m\times n$,这么大的参数量,无法进行学习。

对于这种「高维组合特征」要如何处理? 假设用户和物品的数量分别为 $m$ 和 $n$,一种行之有效的方法是将两个特征分别用 $k$ 维的低维向量表示($k\ll m,k\ll n$),这样原本 $m\times n$ 的学习参数就降低为 $m\times k + n\times k$,这其实等价于推荐算法中的矩阵分解


参考:
[1] 诸葛越,葫芦娃,《百面机器学习》,中国工信出版集团,人民邮电出版社

目录
相关文章
全国各省份简称、省会、经纬度
经纬度严格可靠,使用工具一个个在地图测算出来的
|
运维 监控 JavaScript
(ARMS-AIOps)一文教你用Attributor算法实现多维下钻分析
常见的AIOps应用路径为:对监控的各种关键性能指标(KPI)进行实时异常检测;对多维指标进行根源分析,快速下钻到异常维度和元素;基于应用拓扑和实时Trace,实现根因定位;结合CMDB、关联等、构建异常根因上下文,帮助快速修复问题。 作为KPI指标, 往往包含了很多维度和元素,最显而易见的则是对每一个维度的元素都进行实时异常检测。 对于维度组合笛卡尔集数量很长的场景, 该方案的成本则有点难以承受
5417 0
|
机器学习/深度学习 PyTorch 算法框架/工具
RGCN的torch简单案例
RGCN 是指 Relational Graph Convolutional Network,是一种基于图卷积神经网络(GCN)的模型。与传统的 GCN 不同的是,RGCN 可以处理具有多种关系(边)类型的图数据,从而更好地模拟现实世界中的实体和它们之间的复杂关系。 RGCN 可以用于多种任务,例如知识图谱推理、社交网络分析、药物发现等。以下是一个以知识图谱推理为例的应用场景: 假设我们有一个知识图谱,其中包含一些实体(如人、物、地点)以及它们之间的关系(如出生于、居住在、工作于)。图谱可以表示为一个二元组 (E, R),其中 E 表示实体的集合,R 表示关系的集合,每个关系 r ∈ R
2090 0
|
11月前
|
算法
基于GA遗传算法的PID控制器参数优化matlab建模与仿真
本项目基于遗传算法(GA)优化PID控制器参数,通过空间状态方程构建控制对象,自定义GA的选择、交叉、变异过程,以提高PID控制性能。与使用通用GA工具箱相比,此方法更灵活、针对性强。MATLAB2022A环境下测试,展示了GA优化前后PID控制效果的显著差异。核心代码实现了遗传算法的迭代优化过程,最终通过适应度函数评估并选择了最优PID参数,显著提升了系统响应速度和稳定性。
742 15
|
JavaScript 前端开发 安全
TypeScript的优势与实践:提升JavaScript开发效率
【10月更文挑战第8天】TypeScript的优势与实践:提升JavaScript开发效率
|
数据采集 数据安全/隐私保护 开发者
一些`StringIndexOutOfBoundsException`异常的实际案例
本内容展示了几个实际中遇到的`StringIndexOutOfBoundsException`异常案例,帮助开发者理解该异常发生的原因及解决方法。
298 5
|
机器学习/深度学习 测试技术 计算机视觉
注意力机制汇总,包括SE、CBAM、ECA等
注意力机制汇总,包括SE、CBAM、ECA等
1463 1
|
机器学习/深度学习 人工智能 移动开发
递推算法-五种典型的递推关系
递推算法-五种典型的递推关系
770 0
|
数据采集 机器学习/深度学习 人工智能
达摩院开源多语言大模型PolyLM, 覆盖集团核心小语种,效果超LLAMA、BLOOM
本文作者:宝嵩,鹏程,呋喃主要贡献者:鹏程,呋喃,莉莱,重笙,筱苡,星峰,红罗,祝鸿,洛新,宝嵩,轻径,黄非摘要:大型语言模型 (LLM) 展示了出色的遵从自然语言指令理解、推理和生成的能力。然而,开发LLMs主要集中在高资源语言,例如英语,从而限制了它们在其他语言中的应用和研究。因此,我们开发了PolyLM,一个在6400亿个词的数据上从头训练的多语言语言模型,包括两种模型大小(1.7B和13B
5697 0
达摩院开源多语言大模型PolyLM, 覆盖集团核心小语种,效果超LLAMA、BLOOM