【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参数显式地给出想要编码的列,于是两个特征都会被当作分类特征处理:

相关推荐
闲人编程5 分钟前
Python的抽象基类(ABC):定义接口契约的艺术
开发语言·python·接口·抽象类·基类·abc·codecapsule
青云交5 分钟前
Java 大视界 -- Java 大数据机器学习模型在电商评论情感分析与产品口碑优化中的应用
机器学习·自然语言处理·lstm·情感分析·java 大数据·电商评论·产品口碑
vx_dmxq2118 分钟前
【微信小程序学习交流平台】(免费领源码+演示录像)|可做计算机毕设Java、Python、PHP、小程序APP、C#、爬虫大数据、单片机、文案
java·spring boot·python·mysql·微信小程序·小程序·idea
XUA19 分钟前
如何在服务器上使用Codex
人工智能
无垠的广袤27 分钟前
【工业树莓派 CM0 NANO 单板计算机】本地部署 EMQX
linux·python·嵌入式硬件·物联网·树莓派·emqx·工业物联网
咚咚王者28 分钟前
人工智能之数据分析 Matplotlib:第三章 基本属性
人工智能·数据分析·matplotlib
骑自行车的码农33 分钟前
🍂 React DOM树的构建原理和算法
javascript·算法·react.js
Mintopia44 分钟前
开源AIGC模型对Web技术生态的影响与机遇 🌐✨
人工智能·aigc·敏捷开发
codetown1 小时前
openai-go通过SOCKS5代理调用外网大模型
人工智能·后端
世优科技虚拟人1 小时前
2026数字展厅设计核心关键,AI数字人交互大屏加速智慧展厅升级改造
人工智能·大模型·数字人·智慧展厅·展厅设计