Data Science Academy · 课时

编码分类列

独热编码和标签编码基础

第 2 / 4 课13 个步骤

编码分类列 是 CoddyKit 上的免费 Data Science Academy 课时。 这是第 2 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 Data Science Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 Data Science Academy 课程共包含 4 节课。

为什么编码很重要

大多数模型只能理解数字,但您的数据中充满了红色、蓝色这样的词语。编码会将这些标签转换为模型可以学习的数字。🔢

名义型与有序型

有些类别具有顺序,例如小号、中号、大号;另一些类别(例如城市名称)则没有顺序。这种顺序决定了哪种编码方式更合理。

标签编码

标签编码会为每个类别分配一个整数:红色变成 0,蓝色变成 1。它很简单,但可能会凭空创造一个并不存在的顺序。

from sklearn.preprocessing import LabelEncoder
le = LabelEncoder()
codes = le.fit_transform(df['color'])

虚假顺序陷阱

如果蓝色是 1、绿色是 2,模型可能会认为绿色大于蓝色。对于名义型数据,这种虚假的排序可能会降低准确率。

独热编码

独热编码会为每个类别新建一列,并标记为 1 或 0。没有虚假的顺序,只有清晰的“是”或“否”标记。

pandas 中的 get_dummies

在 pandas 中,最快的独热编码方式是 get_dummies。传入一列数据后,它会将每个类别展开为独立的 0/1 列。

dummies = pd.get_dummies(df['color'])

避免虚拟变量陷阱

这些列之间完全相关,因此请删除其中一列。这样可以保持线性模型稳定,并避免信息冗余。

pd.get_dummies(df['color'], drop_first=True)

用于处理流程的 OneHotEncoder

对于模型,建议使用 scikit-learn 的 OneHotEncoder。它会记住学习到的类别,因此训练集和测试集始终能够完全对齐。

from sklearn.preprocessing import OneHotEncoder
enc = OneHotEncoder(handle_unknown='ignore')

有意编码顺序

当顺序确实有意义时,请自行进行映射,使“小”到“大”对应 1 到 3。序数映射可以保留原有含义。

order = {'small': 1, 'medium': 2, 'large': 3}
df['size_num'] = df['size'].map(order)

警惕高基数

对包含数千个值的列进行独热编码,会展开成数千列。对于高基数数据,可以先将少见值归为一组。

处理未见过的类别

新数据中可能包含编码器从未见过的标签。请提前做好处理,避免未见过的类别导致预测步骤崩溃。

快速检查

您的颜色列没有自然顺序。哪种编码方式可以避免凭空创造错误的排名?

回顾:编码

您已经将文字转换成数字:无序类别使用独热编码,真实顺序使用序数映射,只有在顺序无关紧要时才使用标签编码。🎉

免费开始

用 AI 导师学习 Python — 免费

在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。

课程
30
课程
120

常见问题解答

「编码分类列」课时是免费的吗?

是的 — 「编码分类列」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 Data Science Academy 课程的其余内容,请升级到 CoddyKit PRO。 Data Science Academy 课程共包含 4 节课。

「编码分类列」这节课中我会学到什么?

独热编码和标签编码基础 你通过在浏览器中直接运行的动手代码来练习 Data Science Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。

学习 Data Science Academy 需要有经验吗?

无需任何先前经验。CoddyKit 上的 Data Science Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 2 节课,共 4 节。

「编码分类列」课时需要多长时间?

大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。

我能在这节 Data Science Academy 课中编写并运行代码吗?

能。每节 Data Science Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。

此课程中的所有课时

  1. 将数字区间划分为类别
  2. 编码分类列
  3. 缩放和标准化数值
  4. 从日期和文本构建特征
← 返回 Data Science Academy