赞
踩
关于onehot编码,实际上博主很久就已经接触过了,今天博主正式做一个笔记.
这里首先说明一下为什么会存在oenhot编码呢,这是为什么呢?
这里其实很重要,如果经常做特征工程,做机器学习,做深度学习,或者做一些数据分类的工作,onehot编码不仅仅是一个方法,他更蕴含了一种思想,这种思想是将我们日常我们能够理解的标识符转化为计算机所能理解的。比如性别:男、女。比如,国家:中国、美国、德国。
计算机可以存储这些信息,但是在进行数学计算或者数学建模的时候,这些信息是无法直接利用的,但是如果我们使用onehot编码技术就可以将他们进行数值编码,编码成一个向量,同样也有很常见的数值编码技术,只将信息编码成一个数值。这样计算机就可以理解这些数据,利用他们去进行数值分析或者建模。
举例:
onehot编码只是针对离散型数据,注意,一定要是离散型(而且是有限的)数据,因为如果是连续型或者无限的离散型数据,那么对他们进行onehot编码事实上是不能将他们的信息利用起来的。
比如男、女-onehot编码之后,男可以转化为0,女可以转化为1。
第一个例子就是常规的数值编码技术,这种技术不用于离散型变量取值比较多的情况下,因为如果编码范围太高,会增加模型负担,模型渐渐的会不能理解编码的数值。所以这就体现了onehot编码的一个优势。
但如果对于国家,比如中国我们往往将他转化为一个长向量【1,0,0,0,0,0,0,0,0,0,0,,,,】为什么呢,因为国家有二百多个,如果我们每个都进行一个数值编码,比如将美国编码成132,澳大利亚编码成205,这样,在建模的时候,因为数值都集中在一个占位符上,我们的模型需要针对这一个占位符进行复杂多变的处理,这可能极大影响模型的性能,但是如果,我们将其分成一个向量,那么其实会让模型在进行训练的时候,对于每个占位符数据的处理可以更加的轻松,毕竟不是0就是1,总比1-205要轻松多了叭。
下面一张图就是一个例子:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。