【Python机器学习】分类向量——数字可以编码分类变量

在adult数据集的例子中,分类变量被编码为字符。一方面可能会有拼写错误,但另一方面,它明确的将一个变量标记为分类变量。无论是为了便于存储还是因为数据的手机方式,分类变量通常被编码为整数。

假设adult数据集中的人口普查数据是利用问卷收集的,workclass的回答会被记录为0、1、2、3等。现在该列包含数字0到8,而不是"private"这样的字符串。如果要观察数据集的表格,很难一眼看出这个变量应该被视为连续变量还是分类变量。但是如果知道这些数字表示的是就业状况,那么很明显它们是不同的状态,不应该用单个连续变量来建模。

pandas的get_dummies函数将所有数字看作是连续的,不会为其创建虚拟变量。为了解决这个问题,可以使用scikit-learn中的OneHotEncoder,指定哪些变量是连续的、哪些变量是离散的,也可以将数据框中的数值列转换为字符串。

为了说明这一点,我们创建一个两列的DataFrame对象,其中一列包含字符串,另一列包含数字:

python 复制代码
demo_df=pd.DataFrame({'Tnteger Feature':[0,1,2,1],
                      'Categorical Feature':['socks','fox','socks','box']})
display(demo_df)

使用get_dummies只会编码字符串特征,不会改变整数特征:

python 复制代码
pd.get_dummies(demo_df)

如果想为"Integer Feature"这一列创建虚拟变量,可以使用columns参数显式地给出想要编码的列,于是两个特征都会被当作分类特征处理:

相关推荐
XMAIPC_Robot13 小时前
软硬协同实时控制|RK3588业务调度+FPGA硬件时序,ethercat实现半导体设备微秒级响应(125us)
linux·arm开发·人工智能·fpga开发
用户9385156350713 小时前
告别“屎山”与“幻觉”:从“Vibe Coding”到“胶水编程”的AI协作实践指南
人工智能
北五环小裁缝13 小时前
Coding工具搜索不够全?我做个 deuseek:一条命令补齐全网搜索
人工智能·搜索引擎
扑克中的黑桃A13 小时前
Dify + DeepSeek 搭了一个“职场规矩智能体”,专治各种尴尬
人工智能
临床数据科学和人工智能兴趣组13 小时前
RStudio的Console(控制台)是一个非常重要的组件
人工智能·机器学习·数据分析·r语言·r语言-4.2.1
AOwhisky13 小时前
Python 学习笔记(第十五期)——运维自动化(下·后篇):堡垒机实战——paramiko高阶篇
运维·python·学习·云原生·自动化·运维开发
观察员14 小时前
带你用一个 Python 图书系统,通关封装继承多态
python
科技互联.14 小时前
2026年7月对话一家AI增长培训公司:如何将技术著作权转化为可落地课程
人工智能
DisonTangor14 小时前
【微软开源】Mage-Flow 深度解读:微软4B参数图像生成与编辑模型,单卡A100仅需0.59秒
人工智能·microsoft·ai作画·开源·aigc
烬羽14 小时前
递归老写崩?一个"退回"公式,把回溯题变成填空题
javascript·深度学习·算法