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

相关推荐
Wang's Blog几秒前
Vibe Coding一人即团队系列58: HTML演示文稿自动生成
前端·人工智能·html
鲲穹AI种草几秒前
一站式 AI 助手怎么选,多任务办公工具功能差异、优缺点客观参考
人工智能·办公工具
信奥卷王2 分钟前
2025年09月GESPC++五级真题解析(含视频)
算法
白狐_7982 分钟前
408 数据结构|外部排序:流程与 k 路归并
数据结构·算法
超级架构师7 分钟前
让业务架构可执行:ORCHADYN 为什么把规划建模为“编译”
人工智能·架构·ai编程·哲学
闻缺陷则喜何志丹7 分钟前
【动态规划】P3609 [USACO17JAN] Hoof, Paper, Scissor G
c++·算法·动态规划·洛谷
2601_962297259 分钟前
Python、Pytest、Allure、Selenium和Jenkins实现自动化测试集成实例
python·selenium·jenkins·pytest·allure
Mr数据杨12 分钟前
车辆保险价值预测实战 从 Kaggle 回归赛题理解保险定价建模
人工智能·数据分析·kaggle竞赛
图王大胜18 分钟前
万物演化论07(第三章 ) 文明启动,开始有了意识
人工智能·ai·宇宙·演化·系统科学
QC777LX21 分钟前
制造业成本会计学怎么学AI,从哪几个工作环节开始更好?
人工智能