当前位置: 首页 > news >正文

3、非数值型的分类变量

非数值型的分类变量

有很多非数字的数据,这里介绍如何使用它来进行机器学习。

在本教程中,您将了解什么是分类变量,以及处理此类数据的三种方法。

本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2
提取码:uDzP

文章目录

  • 1、简介
  • 2、三种方法的使用
      • 1) 删除分类变量
      • 2) 有序编码
      • 3) One-Hot 编码
  • 3、举例
      • 3.1定义函数来度量每种方法的质量
      • 3.2三种方法的MAE得分
        • 方法1的得分(放弃分类变量)
        • 方法2的得分(顺序编码)
        • 方法2的得分 (One-Hot 编码)
  • 4、哪种方法最好?
  • 5、总结

1、简介

一个分类变量只接受有限数量的值。

  • 考虑一个调查,询问你多久吃一次早餐,并提供四个选项:“从不”,“很少”,“大多数天”或“每天”。在这种情况下,数据是分类的,因为响应属于一组固定的类别。
  • 如果人们回答了一份关于他们拥有哪个品牌汽车的调查,响应将属于类别,如“本田”,“丰田”和“福特”。在这种情况下,数据也是分类的。

如果你尝试在没有预处理的情况下将这些变量输入大多数Python机器学习模型中,你将会收到错误。在本教程中,我们将比较三种用于准备分类数据的方法。

2、三种方法的使用

1) 删除分类变量

处理分类变量最简单的方法是从数据集中删除它们。这种方法只有在列中不包含有用信息的情况下才能很好地工作。

2) 有序编码

Ordinal encoding 标签编码将每个惟一值分配给不同的整数。
在这里插入图片描述

这种方法假设类别的顺序为:“Never”(0)<“rare”(1)<“Most days”(2)<“Every day”(3)。

在本例中,这个假设是有意义的,因为对类别有一个无可争议的排名。并不是所有的分类变量在值中都有一个明确的顺序,但是我们将那些有顺序的变量称为有序变量。对于基于树的模型(如决策树和随机森林),可以期望标签编码能够很好地处理有序变量。

3) One-Hot 编码

One-Hot 编码创建新列,指示原始数据中每个可能值的存在(或不存在)。为了理解这一点,我们将通过一个示例进行介绍。

在这里插入图片描述

在原始数据集中,“Color”是一个类别变量,有三个类别:“Red”、“Yellow” 和 “Green”。

对应的独热编码包含每个可能值的一列,以及原始数据集中每行的一行。当原值为“Red”时,我们在“Red”列中加1;如果原值为“Yellow”,我们在“Yellow”列中加1,依此类推。与有序编码不同,一个One-Hot不假定类别的顺序。

​ 与有序编码不同,一个One-Hot不假定类别的顺序。

因此,如果分类数据中没有明确的顺序(例如,“Red”既不大于也不小于“Yellow”),可以预期这种方法特别有效。我们把没有内在排序的分类变量称为名义变量。

如果类别变量具有大量值(即,通常不会将其用于超过15个不同值的变量),独热编码通常在分类变量取大量值时表现不佳。

3、举例

在前一个教程中,我们将使用墨尔本住房数据集。

我们将不关注数据加载步骤。相反,您可以想象您已经拥有了 X _ train、 X _ valid、 y _ train 和 y _ valid中的训练和验证数据。

In [1]:

import pandas as pd
from sklearn.model_selection import train_test_split
#读取数据
data = pd.read_csv('E:/data_handle/melb_data.csv')
#从预测器中分离目标
y =data.Price
X = data.drop(['Price'],axis=1)
#将数据划分为训练和验证子集
X_train_full, X_valid_full, y_train, y_valid = train_test_split(X, y, train_size=0.8,test_size=0.2,random_state=0

相关文章:

3、非数值型的分类变量

非数值型的分类变量 有很多非数字的数据,这里介绍如何使用它来进行机器学习。 在本教程中,您将了解什么是分类变量,以及处理此类数据的三种方法。 本课程所需数据集夸克网盘下载链接:https://pan.quark.cn/s/9b4e9a1246b2 提取码:uDzP 文章目录 1、简介2、三种方法的使用1…...

国内免费chartGPT网站汇总

https://s.suolj.com - &#xff08;支持文心、科大讯飞、智谱等国内大语言模型&#xff0c;Midjourney绘画、语音对讲、聊天插件&#xff09;国内可以直连&#xff0c;响应速度很快 很稳定 https://seboai.github.io - 国内可以直连&#xff0c;响应速度很快 很稳定 http://gp…...

【Alibaba工具型技术系列】「EasyExcel技术专题」实战研究一下 EasyExcel 如何从指定文件位置进行读取数据

实战研究一下 EasyExcel 如何从指定文件位置进行读取数据 EasyExcel的使用背景EasyExcel的时候痛点EasyExcel对比其他框架 EasyExcel的编程模式EasyExcel读取的指定位置导入数据的流程表头校验invokeHeadMap()方法 数据处理invoke()方法 执行中断hasNextdoAfterAllAnalysed()方…...

java.security.InvalidKeyException: Illegal key size错误

出现的问题 最近在对接第三方&#xff0c;涉及获取token鉴权。在本地调试能获取到token&#xff0c;但是在Linux环境上调用就报错&#xff1a;java.security.InvalidKeyException: Illegal key size 与三方沟通 &#xff0c;排除了是传参和网络的原因&#xff1b;搜索资料发现…...

python脚本,实现监控系统的各项资源

今天的文章涉及到docker的操作和一个python脚本&#xff0c;实现监控网络的流量、CPU使用率、内存使用率和磁盘使用情况。一起先看看效果吧&#xff1a; 这是在控制台中出现的数据&#xff0c;可以很简单的看到我们想要的监控指标。如果实现定时任务和数据的存储、数据的展示&a…...

Flink处理函数(2)—— 按键分区处理函数

按键分区处理函数&#xff08;KeyedProcessFunction&#xff09;&#xff1a;先进行分区&#xff0c;然后定义处理操作 1.定时器&#xff08;Timer&#xff09;和定时服务&#xff08;TimerService&#xff09; 定时器&#xff08;timers&#xff09;是处理函数中进行时间相关…...

服务器数据恢复—服务器进水导致阵列中磁盘同时掉线的数据恢复案例

服务器数据恢复环境&#xff1a; 数台服务器数台存储阵列柜&#xff0c;共上百块硬盘&#xff0c;划分了数十组lun。 服务器故障&检测&#xff1a; 外部因素导致服务器进水&#xff0c;进水服务器中一组阵列内的所有硬盘同时掉线。 北亚数据恢复工程师到达现场后发现机房内…...

npm或者pnpm或者yarn安装依赖报错ENOTFOUND解决办法

如果报错说安装依赖报错&#xff0c;大概率是因为npm源没有设置对&#xff0c;比如我这里安装protobufjs的时候报错&#xff1a;ENOTFOUND npm ERR! code ENOTFOUND npm ERR! syscall getaddrinfo npm ERR! errno ENOTFOUND npm ERR! network request to https://registry.cnpm…...

学会使用ubuntu——ubuntu22.04使用Google、git的魔法操作

ubuntu22.04使用Google、git的魔法操作 转战知乎写作 https://zhuanlan.zhihu.com/p/679332988...

【机组】计算机组成原理实验指导书.

​&#x1f308;个人主页&#xff1a;Sarapines Programmer&#x1f525; 系列专栏&#xff1a;《机组 | 模块单元实验》⏰诗赋清音&#xff1a;云生高巅梦远游&#xff0c; 星光点缀碧海愁。 山川深邃情难晤&#xff0c; 剑气凌云志自修。 ​ 目录 第一章 性能特点 1.1 系…...

解决Sublime Text V3.2.2中文乱码问题

目录 中文乱码出现情形通过安装插件来解决乱码问题 中文乱码出现情形 打开一个中文txt文件&#xff0c;显示乱码&#xff0c;在File->Reopen With Encoding里面找不到支持简体中文正常显示的编码选项。 通过安装插件来解决乱码问题 安装Package Control插件 打开Tool->…...

Oracle 12CR2 RAC部署翻车,bug避坑经历

&#x1f4e2;&#x1f4e2;&#x1f4e2;&#x1f4e3;&#x1f4e3;&#x1f4e3; 哈喽&#xff01;大家好&#xff0c;我是【IT邦德】&#xff0c;江湖人称jeames007&#xff0c;10余年DBA及大数据工作经验 一位上进心十足的【大数据领域博主】&#xff01;&#x1f61c;&am…...

情绪共享机器:潜力与挑战

在设想的未来科技世界中&#xff0c;有一种神奇的机器&#xff0c;它能够让我们戴上后即刻感知并体验他人当下的情绪。这种情绪共享机器无疑将深刻地改变我们对人际关系、社会交互乃至人性本质的理解。然而&#xff0c;这一科技创新所带来的影响并非全然积极&#xff0c;也伴随…...

docker 安装python3.8环境镜像并导入局域网

一、安装docker yum -y install docker docker version #显示 Docker 版本信息 可以看到已经下载下来了 拉取镜像python3镜像 二、安装docker 中python3环境 运行本地镜像&#xff0c;并进入镜像环境 docker run -itd python-38 /bin/bash docker run -itd pyth…...

修复“电脑引用的账户当前已锁定”问题的几个方法,看下有没有能帮助到你的

面对“电脑引用的账户当前已锁定,且可能无法登录”可能会让你感到焦虑。这是重复输入错误密码后出现的登录错误。当帐户锁定阈值策略配置为限制未经授权的访问时,就会发生这种情况。 但是,如果你在等待半小时后输入正确的密码,你可以重新访问你的帐户。同样,如果你有一个…...

vp9协议笔记

vp9协议笔记&#x1f4d2; 本文主要是对vp9协议的梳理&#xff0c;协议的细节参考官方文档&#xff1a;VP9协议链接&#xff08;需要加速器&#xff09; vp9协议笔记 vp9协议笔记&#x1f4d2;1. 视频编码概述2. 超级帧superframe&#xff08;sz&#xff09;&#xff1a;2. fr…...

信息检索与数据挖掘 | (九)Link Analysis(链接分析)

文章目录 &#x1f4da;链接分析&#x1f4da;随机矩阵&#x1f4da;random walk&#x1f4da;Google formulation &#x1f4da;链接分析 将链接看做投票&#xff0c;从重要的网站来的链接其权重更高&#xff0c;所以是递归定义的。 如果网页j权重为rj&#xff0c;有n个出边&…...

yarn的安装及使用教程

Yarn 是一个快速、可靠、安全的包管理工具&#xff0c;用于管理 JavaScript 项目的依赖项。下面是关于 Yarn 的安装和基本使用的详细教程&#xff1a; 安装 Yarn 访问 Yarn 官网 并按照指示下载适合你操作系统的安装程序。安装程序会自动安装 Yarn&#xff0c;并将其添加到系…...

最新AI系统ChatGPT网站H5系统源码,支持Midjourney绘画,GPT语音对话+ChatFile文档对话总结+DALL-E3文生图

一、前言 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;那么如何搭建部署AI创作ChatGPT&#xff1f;小编这里写一个详细图文教程吧。已支持GPT…...

学会使用ubuntu——ubuntu22.04使用WebCatlog

Ubuntu22.04使用WebCatlog WebCatlog是适用于Gnu / Linux&#xff0c;Windows或Mac OS X系统的桌面程序。 引擎基于铬&#xff0c;它用于在我们的桌面上处理Web服务。简单点就是把网页单独一个窗口出来显示&#xff0c;当一个app用。本文就是利用WebCatlog安装后的notion编写的…...

XML Group端口详解

在XML数据映射过程中&#xff0c;经常需要对数据进行分组聚合操作。例如&#xff0c;当处理包含多个物料明细的XML文件时&#xff0c;可能需要将相同物料号的明细归为一组&#xff0c;或对相同物料号的数量进行求和计算。传统实现方式通常需要编写脚本代码&#xff0c;增加了开…...

【网络】每天掌握一个Linux命令 - iftop

在Linux系统中&#xff0c;iftop是网络管理的得力助手&#xff0c;能实时监控网络流量、连接情况等&#xff0c;帮助排查网络异常。接下来从多方面详细介绍它。 目录 【网络】每天掌握一个Linux命令 - iftop工具概述安装方式核心功能基础用法进阶操作实战案例面试题场景生产场景…...

Java 语言特性(面试系列2)

一、SQL 基础 1. 复杂查询 &#xff08;1&#xff09;连接查询&#xff08;JOIN&#xff09; 内连接&#xff08;INNER JOIN&#xff09;&#xff1a;返回两表匹配的记录。 SELECT e.name, d.dept_name FROM employees e INNER JOIN departments d ON e.dept_id d.dept_id; 左…...

用docker来安装部署freeswitch记录

今天刚才测试一个callcenter的项目&#xff0c;所以尝试安装freeswitch 1、使用轩辕镜像 - 中国开发者首选的专业 Docker 镜像加速服务平台 编辑下面/etc/docker/daemon.json文件为 {"registry-mirrors": ["https://docker.xuanyuan.me"] }同时可以进入轩…...

让回归模型不再被异常值“带跑偏“,MSE和Cauchy损失函数在噪声数据环境下的实战对比

在机器学习的回归分析中&#xff0c;损失函数的选择对模型性能具有决定性影响。均方误差&#xff08;MSE&#xff09;作为经典的损失函数&#xff0c;在处理干净数据时表现优异&#xff0c;但在面对包含异常值的噪声数据时&#xff0c;其对大误差的二次惩罚机制往往导致模型参数…...

使用Spring AI和MCP协议构建图片搜索服务

目录 使用Spring AI和MCP协议构建图片搜索服务 引言 技术栈概览 项目架构设计 架构图 服务端开发 1. 创建Spring Boot项目 2. 实现图片搜索工具 3. 配置传输模式 Stdio模式&#xff08;本地调用&#xff09; SSE模式&#xff08;远程调用&#xff09; 4. 注册工具提…...

虚拟电厂发展三大趋势:市场化、技术主导、车网互联

市场化&#xff1a;从政策驱动到多元盈利 政策全面赋能 2025年4月&#xff0c;国家发改委、能源局发布《关于加快推进虚拟电厂发展的指导意见》&#xff0c;首次明确虚拟电厂为“独立市场主体”&#xff0c;提出硬性目标&#xff1a;2027年全国调节能力≥2000万千瓦&#xff0…...

【 java 虚拟机知识 第一篇 】

目录 1.内存模型 1.1.JVM内存模型的介绍 1.2.堆和栈的区别 1.3.栈的存储细节 1.4.堆的部分 1.5.程序计数器的作用 1.6.方法区的内容 1.7.字符串池 1.8.引用类型 1.9.内存泄漏与内存溢出 1.10.会出现内存溢出的结构 1.内存模型 1.1.JVM内存模型的介绍 内存模型主要分…...

HubSpot推出与ChatGPT的深度集成引发兴奋与担忧

上周三&#xff0c;HubSpot宣布已构建与ChatGPT的深度集成&#xff0c;这一消息在HubSpot用户和营销技术观察者中引发了极大的兴奋&#xff0c;但同时也存在一些关于数据安全的担忧。 许多网络声音声称&#xff0c;这对SaaS应用程序和人工智能而言是一场范式转变。 但向任何技…...

【C++】纯虚函数类外可以写实现吗?

1. 答案 先说答案&#xff0c;可以。 2.代码测试 .h头文件 #include <iostream> #include <string>// 抽象基类 class AbstractBase { public:AbstractBase() default;virtual ~AbstractBase() default; // 默认析构函数public:virtual int PureVirtualFunct…...