推荐系统中的特征工程

张开发
2026/4/6 17:41:09 15 分钟阅读

分享文章

推荐系统中的特征工程
有这么一句话在业界广泛流传数据和特征决定了机器学习的上限而模型和算法只是逼近这个上限而已。所以特征工程的目的是最大限度地从原始数据中提取特征, 以供算法和模型使用。特征类型普通离散特征职业, 婚姻状态等, 同常枚举值不超过100个.id类特征如淘宝上的活跃卖家, 可能就上千万了.连续实值特征即 continuous real-valed feature.如 身高,体重.tf中的特征处理见参考[3].诸如连续值按区间边界分桶,string枚举值分配整数id, 还有对稀疏高维特征做 embedding等.清洗特征交叉figure gif动图, 描述特征交叉一般用在LR中. LR只有线性的表达能力, 所以做特征交叉可以额外获得一些非线性表达.如在个性化推荐中, 将用户的年龄离散化成10个档, 用户的性别又是2个档, 彼此交叉后就有了额外的20个特征.采样为了让样本均衡, 可以对某些类别的样本做欠采样或过采样处理.欠采样undersampling.以一定的概率采样.过采样oversampling.重复采样.数据变换离散化分布律如图所示.等频划分划分后, 图中每档的面积相同, 即每档的人数相同. 建议使用maxcompute的percentrank()函数,等宽划分对横坐标按照固定间距p进行划分, 即第一档为[a,ap), 第二档为[ap,a2p)正规化见参考[2]指定列的正规化正规化, Normalization, 又叫归一化.它会改变原有数据的分布, 使之落入一个小的特定区间.他会将原有数据转化为无量纲的纯数值, 便于不同单位的指标进行比较.在多指标评价体系中由于各评价指标的性质不同通常具有不同的量纲和数量级。当各指标间的水平相差很大时如果直接用原始指标值进行分析就会突出数值较高的指标在综合分析中的作用相对削弱数值水平较低指标的作用。因此为了保证结果的可靠性需要对原始指标数据进行标准化处理。min-max标准化KaTeX parse error: Got function \min with no arguments as subscript at position 15: x^*\frac{x-x_\̲m̲i̲n̲}{x_\max-x_\min…结果落入[0,1]之间.这种方法有一个缺陷就是当有新数据加入时可能导致max和min的变化需要重新定义。log函数转换x ∗ log ⁡ 10 x l o g 10 max ⁡ x^*\frac{\log_{10} x}{log_{10}\max}x∗log10​maxlog10​x​z-score标准化最常见的标准化方法就是Z标准化也是SPSS统计软件中最为常用的标准化方法.x ∗ x − μ σ x^*\frac{x-\mu}{\sigma}x∗σx−μ​其中μ为所有样本数据的均值σ为所有样本数据的标准差。向量的正规化把一个向量转化为单位向量, 即为向量的正规化.正规化的好处是, 计算 a,b 的cosine similarity, 只算 dot product 就可以了.a ( x 1 , x 2 , . . . , x n ) a(x_1,x_2, ... , x_n)a(x1​,x2​,...,xn​)a ′ ( x 1 ∣ a ∣ , x 2 ∣ a ∣ , x n ∣ a ∣ ) a(\frac {x_1}{|a|} , \frac {x_2}{|a|}, \frac {x_n}{|a|} )a′(∣a∣x1​​,∣a∣x2​​,∣a∣xn​​)原向量为a, 正规化后的单位向量为a’.python 代码见下:# 向量的正规化importnumpyasnpdefnormalize(v):normnp.linalg.norm(v)ifnorm0:returnvreturnv/norm对数变换对数据做平滑处理时可以用到. 待补充.l o g 2 ( 1 x ) log_2(1x)log2​(1x)经过的点有 (0,0)(≈30, ≈5)(≈128, ≈7)(≈255, ≈8),(≈512, ≈9), (≈1023, ≈10)(≈33000,≈15.00) 等y 1 l o g 2 ( 1 x ) y\frac1{log_2(1x)}ylog2​(1x)1​搜索排序评价指标ndcg会用到.令定义域x1, 经过的点 (1,1)(≈2, ≈0.62)(≈3, ≈0.5)(≈4, ≈0.43)(≈10, ≈0.29) .y l o g 2 x ylog_2xylog2​x经过的点有 (1,0),(2,1)等参考使用sklearn做单机特征工程皮皮blog的 数据标准化/归一化normalizationtf中的特征处理, tf.feature_column

更多文章