全部版块 我的主页
论坛 数据科学与人工智能 数据分析与数据科学 数据分析师(CDA)专版
653 10
2025-10-24

特征处理是机器学习的 “数据燃料优化环节”——CDA 分析师通过系统化处理,将原始数据转化为 “有区分度、适配模型” 的有效特征,直接决定模型上限。本文聚焦核心方法与实操要点,助力快速掌握关键能力。

一、核心认知:特征处理的本质与 CDA 价值

(一)核心目标

  1. 有效性:挖掘潜在关联(如 “注册时长→用户活跃度”);

  2. 适配性:贴合模型需求(如线性模型需归一化,树模型无需);

  3. 简洁性:剔除冗余(如 “身高” 与电商消费无关,可删);

  4. 一致性:统一格式(如年龄分箱避免极端值)。

(二)CDA 与普通处理的差异

维度 普通处理 CDA 处理
逻辑 固定模板(如所有缺失值用 0 填) 业务导向(如收入缺失用同行业中位数)
目标 追求特征数量 提升模型性能(如准确率从 75%→85%)
评估 直接输入模型 用特征重要性 / 相关性验证价值

二、核心特征处理方法(按类型)

(一)数值型特征:消除干扰,适配模型

1. 归一化 / 标准化(核心场景:量纲差异大)

方法 逻辑 工具代码(Python)
标准化(Z-Score) 均值 = 0,标准差 = 1(适用于正态分布) ```python
from sklearn.preprocessing import StandardScaler
df [["消费频次"]] = StandardScaler ().fit_transform (df [["消费频次"]])
\| 稳健归一化 | 抗极端值(适用于收入等长尾分布) | \`\`\`python

from sklearn.preprocessing import RobustScaler

df\[\["用户收入"]] = RobustScaler().fit\_transform(df\[\["用户收入"]])

\`\`\` |

\#### 2. 分箱(核心场景:非线性关系)

\`\`\`python

\# 电商复购间隔自定义分箱(业务导向)

bins = \[0,7,30,90,float("inf")]

df\["复购分层"] = pd.cut(df\["复购间隔"], bins=bins, labels=\["高频","中频","低频","沉睡"])

3. 特征衍生(核心场景:单一特征区分度低)

\# 消费率=近30天消费/收入(反映消费意愿)

df\["消费率"] = df\["30d消费额"] / df\["用户收入"]

\# 注册时长=当前时间-注册时间(天)

df\["注册时长"] = (pd.Timestamp("2024-10-31") - pd.to\_datetime(df\["注册时间"])).dt.days

(二)分类型特征:编码转换,适配模型

编码方式 逻辑 适用场景 代码示例
Label Encoding 类别→唯一整数(如男 = 0,女 = 1) 有序分类 / 树模型(随机森林) ```python
from sklearn.preprocessing import LabelEncoder
df ["学历编码"] = LabelEncoder ().fit_transform (df ["学历"])
\| One-Hot Encoding | 类别→二进制列(如男=\[1,0])    | 无序+低基数(性别、支付方式)      | \`\`\`python

from sklearn.preprocessing import OneHotEncoder

ohe = OneHotEncoder(sparse\_output=False, drop="first")

df = pd.concat(\[df, pd.Datafr ame(ohe.fit\_transform(df\[\["支付方式"]]))], axis=1)

\`\`\` |

\| 目标编码       | 类别→目标均值(如城市违约率=0.2) | 高基数(城市、商品ID)              | \`\`\`python

from category\_encoders import TargetEncoder

df\["城市编码"] = TargetEncoder().fit\_transform(df\["城市"], df\["违约标签"])

\`\`\` |

\### (三)时间型特征:提取时序规律

\`\`\`python

\# 1. 提取时间组件(下单小时、是否周末)

df\["下单时间"] = pd.to\_datetime(df\["下单时间"])

df\["下单小时"] = df\["下单时间"].dt.hour

df\["是否周末"] = df\["下单时间"].dt.weekday.apply(lambda x:1 if x>=5 else 0)

\# 2. 时序统计(近7天下单次数)

df\_sorted = df.sort\_values(\["用户ID","下单时间"])

df\_sorted\["7d下单数"] = df\_sorted.groupby("用户ID")\["下单时间"].transform(

    lambda x:x.rolling(window=pd.Timedelta(days=7), on="下单时间").count()

)

(四)特征选择与降维:剔除冗余

1. 特征选择(核心方法)

\# 1. 方差阈值(删无区分度特征)

from sklearn.feature\_selection import VarianceThreshold

selector = VarianceThreshold(0.01)

df\_selected = selector.fit\_transform(df\[数值特征列])

\# 2. 随机森林特征重要性(删低贡献特征)

from sklearn.ensemble import RandomForestClassifier

rf = RandomForestClassifier()

rf.fit(X, y)

重要性 = pd.Series(rf.feature\_importances\_, index=X.columns)

保留特征 = 重要性\[重要性>0.05].index  # 保留贡献>5%的特征

2. 降维(核心方法:PCA)

from sklearn.decomposition import PCA

pca = PCA(n\_components=20)  # 降至20维

X\_pca = pca.fit\_transform(X)

print(f"累计解释方差:{pca.explained\_variance\_ratio\_.sum():.2%}")  # 需≥80%

三、CDA 特征处理全流程

  1. 探索:查缺失率(核心字段≤1%)、数值分布(极端值)、相关性(|r|>0.8 需删其一);

  2. 处理:按类型执行(时间→分类型→数值型→冗余剔除);

  3. 选择 / 降维:小特征量用重要性筛选,大特征量用 PCA;

  4. 验证:对比模型效果(如处理后准确率提升≥5%)、特征稳定性(跨时间 Top10 重合率≥70%)。

四、实战案例:电商用户流失预测

背景

原始数据 30 字段(含用户 / 消费 / 订单),目标:构建流失预测模型(1 = 流失)。

核心步骤

  1. 处理
  • 时间:提取 “注册时长、末次下单距今”;

  • 分类:职业(目标编码)、性别(One-Hot);

  • 数值:收入(稳健归一化)、消费额(对数转换),衍生 “消费率”;

  1. 选择:用随机森林保留 18 个高重要性特征;

  2. 效果:原始特征准确率 72.5%→处理后 81.2%,AUC 0.78→0.86。

五、常见误区与规避

  1. 过度衍生:如 “下单时间” 衍生 10 + 特征→仅保留 “末次下单距今、注册时长”;

  2. 模型适配错:树模型用 One-Hot→改用 Label 编码;线性模型不归一化→补标准化;

  3. 不验证:直接输入模型→必做效果对比与稳定性验证;

  4. 脱离业务:年龄等宽分箱→按 “18-25/26-35/36-45/46+”(电商核心客群)分箱。

六、结语

特征处理是 “业务 + 技术” 的结合 ——CDA 分析师需以模型需求为导向,用最少的有效特征实现最优性能,这是数据驱动决策的核心能力。

推荐学习书籍 《CDA一级教材》适合CDA一级考生备考,也适合业务及数据分析岗位的从业者提升自我。完整电子版已上线CDA网校,累计已有10万+在读~ !

免费加入阅读:https://edu.cda.cn/goods/show/3151?targetId=5147&preview=0

二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

全部回复
10 小时前
特征处理是机器学习的 “数据燃料优化环节”——CDA 分析师通过系统化处理,将原始数据转化为 “有区分度、适配模型” 的有效特征,直接决定模型上限。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

10 小时前
有效性:挖掘潜在关联(如 “注册时长→用户活跃度”);

适配性:贴合模型需求(如线性模型需归一化,树模型无需);

简洁性:剔除冗余(如 “身高” 与电商消费无关,可删);

一致性:统一格式(如年龄分箱避免极端值)。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

10 小时前
特征处理是 “业务 + 技术” 的结合 ——CDA 分析师需以模型需求为导向,用最少的有效特征实现最优性能,这是数据驱动决策的核心能力。
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

10 小时前
thanks for sharing
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

9 小时前
二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

点击查看更多内容…
相关推荐
栏目导航
热门文章
推荐文章

说点什么

分享

扫码加好友,拉您进群
各岗位、行业、专业交流群