独热编码(One-Hot Encoding)介绍及实现

独热编码(One-Hot Encoding)介绍及实现一、介绍One-Hot编码,又称为一位有效编码,主要是采用位状态寄存器来对个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。独热编码是利用0和1表示一些参数,使用N位状态寄存器来对N个状态进行编码。例如:参考数字手写体识别中:如数字字体识别0~9中,6的独热编码为0000001000自然状态码为:000,001,010,011,100,101…

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

一、介绍

 One-Hot编码,又称为一位有效编码,主要是采用独热编码(One-Hot Encoding)介绍及实现位状态寄存器来对独热编码(One-Hot Encoding)介绍及实现个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候只有一位有效。

独热编码 是利用0和1表示一些参数,使用N位状态寄存器来对N个状态进行编码。

例如:参考数字手写体识别中:

如数字字体识别0~9中,6的独热编码为

0000001000

自然状态码为:000,001,010,011,100,101

独热编码为:000001,000010,000100,001000,010000,100000

Jetbrains全家桶1年46,售后保障稳定

有如下三个特征属性:
性别:[“male”,”female”] ======》[1,0] 表示男,[0,1]表示女
地区:[“Europe”,”US”,”Asia”]
浏览器:[“Firefox”,”Chrome”,”Safari”,”Internet Explorer”]
对于某一个样本,如[“male”,”US”,”Internet Explorer”],我们需要将这个分类值的特征数字化,最直接的方法,我们可以采用序列化的方式:[0,1,3]。但是这样的特征处理并不能直接放入机器学习算法中。

 对于上述的问题,性别的属性是二维的,同理,地区是三维的,浏览器则是思维的,这样,我们可以采用One-Hot编码的方式对上述的样本“[“male”,”US”,”Internet Explorer”]”编码,“male”则对应着[1,0],同理“US”对应着[0,1,0],“Internet Explorer”对应着[0,0,0,1]。则完整的特征数字化的结果为:[1,0,0,1,0,0,0,0,1]。这样导致的一个结果就是数据会变得非常的稀疏。
 

二、优点

独热编码的优点为:

1.能够处理非连续型数值特征。 
2.在一定程度上也扩充了特征。比如性别本身是一个特征,经过one hot编码以后,就变成了男或女两个特征。

当然,当特征类别较多时,数据经过独热编码可能会变得过于稀疏。

三、实现 

from sklearn import preprocessing


encoder = preprocessing.OneHotEncoder()
# 4个特征:

#第一个特征(即为第一列)为[0,1,2,1],其中三类特征值[0,1,2],因此One-Hot Code可将[0,1,2]表示为:[100,010,001]
#第一个特征有三种值:采用三个编码:[100,010,001]

#同理第二个特征列可将两类特征值[2,3]表示为[10,01]


#第三个特征将4类特征值[1,2,4,5]表示为[1000,0100,0010,0001]

#第四个特征将2类特征值[3,12]表示为[10,01]

encoder.fit([
    [0, 2, 1, 12],
    [1, 3, 5, 3],
    [2, 3, 2, 12],
    [1, 2, 4, 3]
])
encoded_vector = encoder.transform([[2, 3, 5, 3]]).toarray()
print("\n Encoded vector =", encoded_vector)
#[[0. 0. 1.    0. 1.      0. 0. 0. 1.     1. 0.]]

参考:独热编码(One-Hot Encoding)介绍及实现_天空下的斌的博客-CSDN博客_独热编码

数据处理——One-Hot Encoding_zhiyong_will的博客-CSDN博客

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/200862.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)
blank

相关推荐

  • controller是什么意思_Controller注解

    controller是什么意思_Controller注解一、简介在SpringMVC 中,控制器Controller 负责处理由DispatcherServlet 分发的请求,它把用户请求的数据经过业务处理层处理之后封装成一

  • 生物识别指纹_生物指纹识别技术

    生物识别指纹_生物指纹识别技术锁屏要使用指纹解锁,首先要注册指纹服务,我看过的一些大厂项目中,实际上是在KeyguardUpdate.java类中发起注册的,一般是根据当前状态,是不是已经处于上锁状态(侧边指纹机器,是不等上锁即进行指纹服务注册,屏下指纹需要等上锁后,才发起指纹服务注册)。………………………

  • web渗透测试工具大全_web安全攻防渗透测试实战指南 pdf

    web渗透测试工具大全_web安全攻防渗透测试实战指南 pdf一、渗透测试工具nmap,查看网站服务器开放的端口1、查看服务器上运行的服务$nmap-sVhack-test.com2、查看操作系统版本$nmap-Ohack-test.com二、使用Nikto来收集漏洞信息#官方网站:https://cirt.net/nikto2#wgethttps://cirt.net/nikto/nikto-2.1.5.

  • Java文件路径/服务器路径的获取

    Java文件路径/服务器路径的获取Java文件路径获取几种获取方式getResourceAsStream()返回的是inputstreamgetResource()返回:URLClass.getResource(“”)   返回的是当前Class这个类所在包开始的为置Class.getResource(“/”)返回的是classpath的位置getClassLoader().getResour

  • 二 详解VBA编程是什么

    二 详解VBA编程是什么详解VBA编程是什么直到90年代早期,使应用程序自动化还是充满挑战性的领域.对每个需要自动化的应用程序,人们不得不学习一种不同的自动化语言.例如:可以用EXCEL的宏语言来使EXCEL自动化,使用WORDBASIC使WORD自动化,等等.微软决定让它开发出来的应用程序共享一种通用的自动化语言——–VisualBasicForApplication(VBA),可以认为VBA是非常流行的应用程序开发语言VASUALBASIC的子集.实际上VBA是”寄生于”VB应用程序的版本.V

  • Google资深工程师深度讲解Go语言-内建容器(三)[通俗易懂]

    Google资深工程师深度讲解Go语言-内建容器(三)

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号