面对无法投入模型训练的object类型数据在头疼,快来使用我的丝滑小连招

news2025/3/1 4:43:26

面对无法投入模型训练的object类型数据在头疼,快来使用我的丝滑小连招

 前言

丝滑小连招

tip1- get_dummies完美one-hot(str->int)

tip2 - rename_dims解决重名问题!

 tip3 - insert且drop!​​​​​​​


 前言

        我们先来看一个DataFrame的数据结构,我们可以看到他是由以下几个属性组成的:

● ‘marital’ —— 婚姻状态(类别:结婚、离异、单身)

● ‘‘educatiom——受教育等级(类别:未知、初等、中等、高等)

● ‘‘housing’——有没有房贷(类别:有,无)

● ‘loan’——有没有个人贷款(类别:有,无)

● ‘ ‘y’——有没有同意签署定期存款(类别:有,无)

接下来我将打印他们的信息:

 从Dtype这一栏可以看到他们全部都是object类型,这其实就是说着几个属性下的值都是str字符串类型的。

众所周知,但我们训练模型的时候,我们是不能将字符串类型的数据喂入模型fit的,但遇到数据是字符串类型的情况又不可避免,这个时候我就要介绍我百般摸索下总结出的一套连招啦:get_dummies + rename_dims + drop + insert。这套连招为什么神奇呢?请君往下看:

丝滑小连招

tip1- get_dummies完美one-hot(str->int)

        这个get_dummies有什么用呢?他在我们的丝滑小连招之下又扮演者什么样的角色呢?让我们来揭开他的面纱吧!

以表敬意,我们以education这个属性为例子,毕竟教育教育,教育最重要嘛,先输入以下一行代码:

In [unknow]:

pd.get_dummies(df['education'])

 Out [unkonw]:

 是不是超级神奇,还记得这个属性原来的数据嘛。

没错,如您所想:本来只有一列的属性因为她的值有4个所有分成了4列!然后,例如序号为0 的这个数据的值是teritary, 那么在名为teritary的这一列和序号为0的这一行填上数字1!其余为数字0!这样就实现了one-hot编码,且可以投入模型进行fit训练拟合。

tip2 - rename_dims解决重名问题!

但我们会发现一个问题,很大的问题:

例如这样的数据,都是yes,no那么岂不是重名啦?那我们该怎么办呢?简单!只需要dim_name+'_'+dim_value就ok啦!举个栗子:housing的yes变为housing_yes,而loan的yes变为loan_yes,这不就妥妥搞定嘛!用代码这样子做:

Input [unkonw2]

# Step1、得到one-hot编码后的数据(dataframe类型)
        new_dim = pd.get_dummies(df[key])
        # Step2、使用rename函数重命名
        new_columns = list(new_dim.columns)
        rename_columns = {}
        for col in new_columns:
            rename_columns[col] = key + '_' + col
        new_dim.rename(columns=rename_columns, inplace=True)

Output [unkow2]

 tip3 - insert且drop!

我们可以看到事情已经发展到这一步了,已经没什么可说的了!

我们只需要抛弃掉旧情郎,迎接新美男就好了!

这样做:

 # Step3、merge new dim to DataSet and drop the old dim
        df = df.drop(columns=key)
        for dim in new_dim:
            df[dim] = new_dim[dim].tolist()

但实际上其实并没有这么简单 ,比如有一个很大的问题就是,大多数时候我们的数据是这样的:

没错,数据类型混杂,所以我们不可能简单的遍历整个DataFrame因为非object类型的属性数据是不用one-hot的,那么我们怎么办呢?其实都不用担心我已经全部解决了:DataFrame有一个函数select_dtypes里面有一个include参数可以选择只要数据类型为object的属性,我们使用它,并且使用columns的函数就可以获取所有object类型的属性名了,然后只遍历这些个属性名,再进行丝滑小连招那么我们就打工搞成了!

 最后,我把所有的步骤和这个意外情况的解决办法全部写入一个函数,大家只需要简单的传入一个DataFrame类型的数据,他将帮你自动完成数据的处理,最后还给你一个理想中的数据! 

def one_hot_and_merge_objectDim(df):
    # 只处理object类型的数据
    object_type_dims = list(df.select_dtypes(include='object').columns)
    print(object_type_dims)
    for key in object_type_dims:
        print(key + ' is done.')
        # Step1、get new dim(DataFrame)
        new_dim = pd.get_dummies(df[key])
        # Step2、rename new dim 
        new_columns = list(new_dim.columns)
        rename_columns = {}
        for col in new_columns:
            rename_columns[col] = key + '_' + col
        new_dim.rename(columns=rename_columns, inplace=True)
        # Step3、merge new dim to DataSet and drop the old dim
        df = df.drop(columns=key)
        for dim in new_dim:
            df[dim] = new_dim[dim].tolist()
        print(df.columns)
    return df

完毕,是不是超级轻松呢? 

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

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

相关文章

小爱同学控制美的美居中的家电热水器,空调等

背景 家里大多数家电都是支持接入米家App的,美的家电不能接入小米,电脑安装Home Assistant成功实现小爱语音控制美的燃气热水器。 实现步骤: 1. 安装docker 我的电脑是windows的,那就直接安装docker desktop https://desktop.…

【Linux】基础指令(三) —— 收尾篇

文章目录前言zip 和 unzip 指令tar 指令bc 指令uname 指令history关机热键补充ctrl c↑ && ↓ctrl rctrl d指令拓展结语前言 今天为大家带来的是最后一部分基础指令讲解。主要内容为 7个指令讲解、热键补充、简单提一下指令的拓展 。内容相对之前较少,更…

服务器密码以及用户名怎么修改

服务器密码以及用户名怎么修改 我是艾西,今天给大家说下服务器密码如何修改 windows2003系统: 1、右键我的电脑,点击“管理”: 2、在“本地用户和组”中打开“用户”,在右侧找到 Administrator 账户进行修改。 200…

【linux】linux实操篇之任务调度

目录前言crond 任务调度概述基本语法快速入门案例案例一:每隔一分钟将ls -l /etc/ 追加到 /tmp/to.txt 文件案例二:每隔一分钟执行python文件结语前言 我们常用linux做一些定时任务,最常见的就是在服务器领域,我们常常做一些定时…

高分辨率格式理论

一个核心概念:人工粘性 考虑经典的双曲守恒律方程 ∂u∂t∂f∂x0{{\partial u} \over {\partial t}} {{\partial f} \over {\partial x}} 0∂t∂u​∂x∂f​0 可以写成守恒形式的数值格式 uin1uin−λ(f^i1/2n−f^i1/2n)u_i^{n 1} u_i^n - \lambda \left( {\ha…

基于ssm+mysql+jsp学生成绩管理系统(含实训报告)

基于ssmmysqljsp学生成绩管理系统(实训报告)一、系统介绍二、功能展示1.学生信息查询2.学生信息添加3.学生信息修改4.学生信息删除四、获取源码一、系统介绍 系统主要功能:系统实现了学生信息查询、添加、修改、删除。 环境配置: Jdk1.8 M…

[附源码]java毕业设计智慧教学平台

项目运行 环境配置: Jdk1.8 Tomcat7.0 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持)。 项目技术: SSM mybatis Maven Vue 等等组成,B/S模式 M…

储能辅助电力系统调峰的容量需求优化配置matlab/cplex

参考文献:储能辅助电力系统调峰的容量需求研究 摘要:建立了储能辅助电力系统调峰的容量需求优化配置模型,设置了含储能和不含储能两种仿真方案,将两个算例代入所提模型进行求解,得到最优的储能系统容量和功率配置&…

Flutter高仿微信-第52篇-群聊-清空聊天记录

Flutter高仿微信系列共59篇,从Flutter客户端、Kotlin客户端、Web服务器、数据库表结构、Xmpp即时通讯服务器、视频通话服务器、腾讯云服务器全面讲解。 详情请查看 效果图: 实现代码: //清空聊天记录对话框 void _cleanGroupChatDialog(){Lo…

【Python】数据类型 + 运算符 + 输入输出

文章目录一. 常量和表达式二. 变量和类型1. 什么是变量2. 变量的语法2.1 定义变量2.2 使用变量3. 变量的类型3.1 整数3.2 浮点数3.3 字符串3.4 布尔3.5 关于变量类型的几点补充三. 注释1. 什么是注释?2. 为什么要有注释?3. 如何写注释?3.1 注…

深度学习制作自己的数据集—为数据集打上标签保存为txt文件,并进行划分和加载数据集

目录 0 前言 1 为图片数据集打上标签并保存为txt文件 2 将txt文件中的图片标签数据集随机划分为训练集和测试集 3 加载txt文件中的图片标签数据集 0 前言 目前是被封控的第四天了,只能呆在宿舍不能出去,记得上次这样子还是一年前大四快毕业那时候了……

CyberController手机外挂番外篇:源代码的二次修改

文章目录前言调试过程中的疑问为什么一段时间不使用CyberController,翻译就无法触发了?为什么连接成功了,但却依然无法进行语音识别和翻译?多长时间TCP连接就会挂掉连接正常与断开连接有什么区别?不停进行翻译&#xf…

现代密码学导论-18-伪随机置换

目录 伪随机置换 PROPOSITION 3.26 伪随机置换和伪随机函数的关系 DEFINITION 3.27 强伪随机置换 伪随机置换 我们称F是含参数k的置换,当且仅当 且对于所有k, Fk是一对一的,即是满射的。 其中 lin 称为F的块长度 对于给定的 k、x和k、y&…

76.【图】

图( 一).图的基本结构(1).无序偶对.(2).有序偶对(3).有向图和无向图(4).权(5).网图(二).图的基本术语(1).邻接.依附(2).有向完全图,无向完全图(3).顶点的度,入度,出度(4).路径 路径长度 回路(5).简单路径 简单回路(6).子图(7).连通图 连通分量(8).强连通图 强连通分量(三).图的…

改进粒子滤波的无人机三维航迹预测方法(基于Matlab代码实现)

👨‍🎓个人主页:研学社的博客 💥💥💞💞欢迎来到本博客❤️❤️💥💥 🏆博主优势:🌞🌞🌞博客内容尽量做到思维缜…

骨传导耳机贴不紧咋办,推荐五款佩戴最稳固的骨传导蓝牙耳机

很多小伙伴都在反馈,骨传导耳机在佩戴时戴不稳,这关乎于耳机的材质有很大的关系,下面就给大家推荐几款佩戴十分牢固的骨传导耳机,不调人群使用哦~看看有没有自己喜欢的吧~ 1、南卡Runner Pro4骨传导蓝牙耳机 ¥1498 南…

图与图的深度优先遍历、广度优先遍历

文章目录🚩图的理解🍁无向图🍁有向图🍁完全图🍁常用性质🚩图的数据结构搭建🍁邻接矩阵🍁邻接表🍁邻接矩阵式存储的代码实现🍁邻接矩阵造图测试🍁邻…

从零开始打造一款基于SpringBoot+SpringCloud的后台权限管理系统

随着 Spring Boot 和 Spring Cloud 的诞生和流行,集智慧于大成的 Spring 技术体系成为行业开发的首选之一。市场代表需求,技术代表能力。显而易见,在当今开发领域中,谁能更好地掌握这些主流开发技术,谁就能在跟别人竞争…

SecXOps 技术体系

核心能力 为了加快安全分析能力更全面、更深入的自动化 ,SecXOps 的目标在于创建一个集成的用于 Security 的 XOps 实践,提升安全分析的场景覆盖率和运营效率。SecXOps 技术并不 015 SecXOps 技术体系 是 Ops 技术在安全领域的简单加和,SecXO…

含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法)

含分布式电源的配电网日前两阶段调度模型matlab程序(粒子群算法) 参考文献:含分布式电源的配电网日前两阶段优化调度模型 摘要:在电力市场环境下,供电公司通过对接入配电网的分布式电源(distributed generation&#…