【Python特征工程系列】编码:非数值型数据(字符型)转化为数值型数据(案例+源码)

news2024/11/18 7:40:05

这是我的第310篇原创文章。

一、引言

前面我们使用的案例的数据无论是特征还是标签都是数值型数据,但是在平时工作中我们的数据往往含有非数值型特征(object,比如文本字符类型的),这时候我们就需要对这类数据进行编码操作,本文通过一个具体的案例教你如何实现。

二、实现过程

2.1 读取数据

df:

图片

2.2 数据划分

train_df = df.sample(frac=0.8, random_state=2)
test_df = df.drop(train_df.index)
train_df = train_df.reset_index(drop=True)
test_df = test_df.reset_index(drop=True)

2.3 对训练集进行特征处理

le = LabelEncoder()  # 对于标签采用LabelEncoder
ohe = OneHotEncoder(sparse=False)  # 对于类别特征采用OneHotEncoder
mm = MinMaxScaler() # 对于数值特征采用MinMaxScaler
train_df_X = pd.DataFrame(ohe.fit_transform(train_df[['color','size']].values), columns=ohe.get_feature_names())
train_df['class label'] = le.fit_transform(train_df['class label'])
train_df[['prize']] = mm.fit_transform(train_df[['prize']])
train_df = pd.concat([train_df_X, train_df['prize'], train_df['class label']], axis=1)
X_train = train_df.iloc[:,:-1]
y_train = train_df['class label']

对color,size两个特征做独热编码,对class label这个标签做标签编码,对price这个特征做归一化处理,处理完成的train_df如下,处理完的数据就可以输入到模型中了

图片

2.4 模型的构建与训练

model = RandomForestClassifier()
model.fit(X_train, y_train)

2.5 对测试集做和训练集同样的处理

test_df_X = pd.DataFrame(ohe.transform(test_df[['color','size']].values), columns=ohe.get_feature_names())
test_df['class label'] = le.transform(test_df['class label'])
test_df[['prize']] = mm.transform(test_df[['prize']])
test_df = pd.concat([test_df_X, test_df['prize'], test_df['class label']], axis=1)
X_test = test_df.iloc[:,:-1]
y_test = test_df['class label']

这里一定要同样的处理,注意fit_transform和transform的区别。

2.6 模型的推理

y_pred = model.predict(X_test)
acc = accuracy_score(y_test, y_pred) # 准确率acc

作者简介:

读研期间发表6篇SCI数据挖掘相关论文,现在某研究院从事数据算法相关科研工作,结合自身科研实践经历不定期分享关于Python、机器学习、深度学习、人工智能系列基础知识与应用案例。致力于只做原创,以最简单的方式理解和学习,关注我一起交流成长。需要数据集和源码的小伙伴可以关注底部公众号添加作者微信。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1867732.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

Redis 缓存一致性

Redis 业务结构 流程图 缓存一致性 Redis 和 MySQL 中数据保持一致 双检加锁策略 主要用于解决多线程环境下的并发问题,确保在高并发场景下对共享资源的访问是互斥的,避免因竞争条件导致的不一致状态 public User findUserById(Integer id) {User user …

金航标和萨科微公司发展历程

金航标kinghelm(www.kinghelm.com.cn)和萨科微slkor总经理宋仕强介绍公司发展发展历程时说,2015年萨科微与韩国延世大学团队当年萨科微碳化硅功率器件、SiC MOS、SiC SBD成功量产,2016年萨科微在中国大陆成功注册“Slkor”商标&am…

Build with Claude:价值 3 万美元 API 积分

只要在 6 月 26 日至 7 月 10 日创建一个基于 Anthropic API 的应用,并在这里提交,前三名可瓜分 3 万美元的 Anthropic 积分。

国企:中国电信天翼物联 2025届实习生招聘 二

5G解决方案工程师(南京实习生) 应聘资格要求 岗位职责 负责5G确定专网在工业、能源行业解决方案设计。 专业、能力要求 通信相关专业,有社团组织经验。 报名地址https://young.yingjiesheng.com/xyzlogin?ctmid=ac22e6c2-8b55-41ab-86c1-f530d5cb9218&ehirejobid=1558…

LeetCode 算法:验证二叉搜索树 c++

原题链接🔗:验证二叉搜索树 难度:中等⭐️⭐️ 题目 给你一个二叉树的根节点 root ,判断其是否是一个有效的二叉搜索树。 有效 二叉搜索树定义如下: 节点的左 子树 只包含 小于 当前节点的数。节点的右子树只包含 大于…

202486读书笔记|《格里格外》——活在当下,享受当下

202486读书笔记|《格里格外》——活在当下,享受当下 《格里格外》天然绘著,看的作者的上一本书是《生活蒙太奇》,生活里或遇见,或想象的画面,定格那一刻,让景色时间都有了更丰富的意义。 感动又欣喜&#…

存储故障导致Oracle 19c 数据文件处于recover状态的恢复案例

1.背景 某次平台分布式存储故障,导致数据库出现ORA-00376、ORA-01110数据文件不可读报错,本文将整个恢复过程进行整理记录。 2.报错信息 在进行租户数据库打开操作时,出现了如下报错: ORA-00376: file 17 cannot be read at t…

【项目实训】前端页面初探索(前期探索)

前期&#xff0c;由于没有确定页面展示形式&#xff0c;于是进行了很多探索 首先安装element-ui 导入elemnt-plus 添加use: 设置一个全局样式 编写导航栏 <el-menu:default-active"activeIndex"class"el-menu-demo"background-color"#95d475&quo…

【SpringBoot Web框架实战教程(开源)】01 使用 pom 方式创建 SpringBoot 第一个项目

导读 这是一系列关于 SpringBoot Web框架实战 的教程&#xff0c;从项目的创建&#xff0c;到一个完整的 web 框架&#xff08;包括异常处理、拦截器、context 上下文等&#xff09;&#xff1b;从0开始&#xff0c;到一个可以直接运用在生产环境中的web框架。而且所有源码均开…

SAP ERP公有云(全称 SAP S/4HANA Cloud Public Edition),赋能企业成为智能可持续的企业

在数字化浪潮中&#xff0c;每一家企业都需要应对快速的市场变化&#xff0c;不断追求降本增效&#xff0c;为创新提供资源&#xff0c;发展新的业务模式&#xff0c;安全无忧地完成关键任务系统的转型。 10年前&#xff0c;SAP进入云领域&#xff0c;用云ERP和覆盖全线业务的云…

负载组指南说明-负载柜

什么是负载组&#xff1f; 负载组是一种设备&#xff0c;旨在准确模拟电源在实际应用中看到的负载。这种负载组可以用电阻、电感或电容元件构建。它是一种电阻装置&#xff0c;以热量的形式消散一定量的能量&#xff0c;可以通过自然对流、强制空气或水冷系统去除。 为什么要使…

嵌入式工程师从0开始,到底该学什么,怎么学

在开始前刚好我有一些资料&#xff0c;是我根据网友给的问题精心整理了一份「嵌入式的资料从专业入门到高级教程」&#xff0c; 点个关注在评论区回复“666”之后私信回复“666”&#xff0c;全部无偿共享给大家&#xff01;&#xff01;&#xff01;嵌入式是个大筐&#xff0…

ERP收费模式是怎样的?SAP ERP是如何收费的?

一、购置SAP ERP系统的费用组成 1、软件费用 传统的ERP系统大多为许可式&#xff0c;即企业在购买ERP服务时付清所有费用&#xff0c;将ERP系统部署于自己的服务器中。根据所购买ERP系统品牌的不同&#xff0c;价格上也有一定的差异。采购ERP系统许可后&#xff0c;后续维护、…

【计算机毕业设计】092基于微信小程序二手闲置交易市场

&#x1f64a;作者简介&#xff1a;拥有多年开发工作经验&#xff0c;分享技术代码帮助学生学习&#xff0c;独立完成自己的项目或者毕业设计。 代码可以私聊博主获取。&#x1f339;赠送计算机毕业设计600个选题excel文件&#xff0c;帮助大学选题。赠送开题报告模板&#xff…

基于幅值判断的工频故障分量距离保护

统的继电保护原理是基于工频电气量的&#xff0c;但近年来&#xff0c;反应故障分量的高速继电保护原理在微机保护装置中被广泛应用。故障分量只在设备发生故障时才出现&#xff0c;因此可以用叠加原理来分析其特征。 将电力系统发生的故障视为非故障状态与故障附加状态的叠加…

vant组件 顶部下拉刷新和页面底部下拉获取数据+顶部搜索框

1.html部分&#xff08;顶部tab切换无&#xff0c;只有主体list部分&#xff09; <div class"yd" ><!-- yd端 --><!-- 搜索框 --><van-searchv-model"ydsearchvalue"show-actionplaceholder"请输入搜索关键词"search"…

供应链攻击是什么?

随着企业对技术和连接性的依赖日益增加&#xff0c;以及对第三方的普遍依赖&#xff0c;供应链攻击变得越来越普遍。这些攻击旨在通过供应商和商业伙伴损害企业。 供应链攻击可能对企业和组织构成重大威胁&#xff0c;因为它们可能危及它们的安全以及向客户提供的产品和服务的…

【笔记】事务隔离级别以及MVCC解决幻读

事务提交可能碰到的问题&#xff1a; &#xff08;1&#xff09;脏读&#xff1a;事务1对数据进行修改但还没提交&#xff0c;事务2读取修改后的数据&#xff0c;之后事务1执行错误&#xff0c;回滚了&#xff0c;此时事务2的数据是错误的脏数据。 &#xff08;2&#xff09;不…

Stm32的DMA的学习

一&#xff0c;介绍 二&#xff0c;DMA框图 三&#xff0c;DMA通道 四&#xff0c;相关HAL库函数 五&#xff0c;配置DMA 六&#xff0c;Stm32CubeMX配置 【13.1】减少CPU传输负载 DMA直接存储器访问—Kevin带你读《STM32Cube高效开发教程基础篇》_哔哩哔哩_bilibili

Shell (一)Ubuntu的网络配置及软件安装

Ubuntu的配置及软件安装 网络配置 虚拟机提供的网络类型 桥接模式 主机和虚拟机分别拥有不同的ip地址&#xff0c;可以实现和外界设备通信 NAT模式 也可以联网&#xff0c;但是和主机共用同一个ip地址&#xff0c;外界无法识别虚拟机和主机发送的信息 仅主机模式 虚拟机不可…