特征向量降维常见的几种方法

本文探讨了高维度特征带来的问题,如计算成本增加和模型拟合困难,并介绍了特征筛选在模型训练中的作用。文章重点讲解了工作中的两种常见降维方法:embedding和纯高维到低维转换。embedding通过将高维数据转换为固定维度向量,如在用户相似度计算和GBDT训练中的应用。此外,还列举了PCA、LDA等降维技术的示例,但具体细节有待后续补充。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

高纬度特征带来的问题

这里就简单描述下。
通常我们会使用特征训练模型或特征矩阵求相似度。高维的特征带来的计算成本非常大,甚至完不成。同时一般高维的特征都比较稀疏,直接使用高维的特征训练需要样本量很大,难以拟合,模型效果不好。

训练模型时特征的筛选

通常我们训练模型时,会人为挑选特征,控制每类特征维度范围,比如年龄我们使用one-hot的方式表示,分成0-10,10-20...,>100这几个段,也就是将年龄映射成了11维,相比如果每个年龄表示一维,这也是一种降维的方法。

还有一种降维的方式是,假如我们人为不确定那种特征的好坏,我们可以将初选的所有特征(所有维度)哪去训练,将得到的模型中权重为0或与0相差甚微的特征(向量去掉),再重新训练,一直到比较合适为止。

工作中常用的两种降维方式

除上诉几种简单的降维方法。工作中还经常遇到两种情况需要降低特征维度。

embedding

拿用户来说,好的产品活跃用户非常多(如微信),假如用户数超过10亿。假设我们需要用用户做协同过滤,此时就需要知道用户间的相似度。不管使用哪种相似度计算方法(余弦,jaccard等等),我们首选要得到的是等维度的用户向量。假设我们通过某种办法(下面会详细描述)将每个用户都embedding成了128维的向量,我们就可以拿这个用户向量矩阵通过计算框架(如:faiss)去计算每个用户topN的相似用户及相似度。

又假如我们要把用户向量选做特征参与gbdt的训练,此时也是要首先获取用户的向量表示。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值