You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何在R中基于Leads列对Product.Package.Level进行序数编码?

基于Leads统计量对Product.Package.Level进行序数编码(Feature-engine实现)

直接用Feature-engine的OrdinalEncoder就能搞定,它支持根据目标变量的均值/总和自动确定类别编码顺序,步骤如下:

1. 安装Feature-engine(未安装时执行)

pip install feature-engine

2. 导入依赖并加载数据

import pandas as pd
from feature_engine.encoding import OrdinalEncoder

# 替换为你的数据加载方式,比如读取CSV
# df = pd.read_csv("your_data_file.csv")

3. 配置并拟合编码器

按Leads均值排序编码

# 初始化编码器:指定目标变量、编码依据为Leads均值
encoder_mean = OrdinalEncoder(
    variables=['Product.Package.Level'],
    encoding_method='mean',
    target='Leads'
)

# 拟合数据,编码器自动计算每个类别的Leads均值并排序
encoder_mean.fit(df)

# 应用编码到数据框
df_encoded_mean = encoder_mean.transform(df)

按Leads总和排序编码

只需把encoding_method改为'sum'即可:

encoder_sum = OrdinalEncoder(
    variables=['Product.Package.Level'],
    encoding_method='sum',
    target='Leads'
)

encoder_sum.fit(df)
df_encoded_sum = encoder_sum.transform(df)

4. 查看编码规则

拟合完成后,可通过encoder_dict_属性查看每个类别的具体编码值:

print(encoder_mean.encoder_dict_)

输出示例:{'Product.Package.Level': {'基础套餐': 0, '进阶套餐': 1, '旗舰套餐': 2}}(顺序由Leads均值从低到高排列)

注意事项

  • 若数据存在缺失值,需先通过MissingImputer等工具处理,否则编码器会报错
  • 编码默认按统计量从低到高分配数值,如需反向顺序,可后续对编码结果做反转处理

内容的提问来源于stack exchange,提问作者Jiaming He

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.18 06:05:20