One-Hot独热编码

Dummy Encoding VS One-Hot Encoding
二者都可以对Categorical Variable做处理,定性特征转换为定量特征,
转换为定量特征其实就是将原来每个特征的类别拿出来作为一个新的特征(Dummy Variable)了,
如性别——男,女,定量特征即将男作为一个特征,女作为一个特征,如果数据中的Categorical Variable很多,且每个Variable种类比较多,那么转换后的数据可能会非常稀疏。
两者本身存在差别:
difference:一个定性特征或者成为Categorical Variable,其有n个值,
Dummy Encoding 会将这个Categorical Variable转换为n-1个特征变量,
而OneHot Encoding会转换为n个特征变量。
其中,这种转换在经济学或者回归模型中会存在一个Dummy Variable Trap的问题,
使用Dummy Encoder可以避免这个问题,
对于Dummy Variable Trap问题下面未做介绍。
由于我这里面对的是分类问题,没有过多的调研。

 #方法一(使用pandas.get_dummies进行onehot编码)
import pandas as pd
testdata_01= pd.read_csv('D:/suning/learning/testdata.csv') # 读取数据
a=pd.get_dummies(testdata_02,columns=['pet'])#onehot encoding

b=pd.get_dummies(testdata_01,columns=['pet'],drop_first=True)#dummy encoding

c=pd.get_dummies(testdata_01,columns=['is_has_car'])#onehot encoding

d=pd.get_dummies(testdata_01,columns=['is_has_car'],drop_first=True)#onehot encoding

e=pd.get_dummies(testdata_01) #onehot encoding

f=pd.get_dummies(testdata_01,drop_first=True)

 #方法二(使用sklearn.preprocessing进行onehotcoder)
##sklearn中的OneHotEncoder提供fit(X),transform(X),fit_transform(X),
##其中X是一个二维数组,且数组类型为int,不能直接处理字符串类型的Categorical Varibale
##先把字符串类型定性特征转变为连续的数值型变量,再用OneHotEncoder二值化。
import pandas as pd
import numpy as np
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
a=LabelEncoder().fit_transform(testdata_01['pet'])#把字符串类型定性特征转变为连续的数值型变量
aaa=OneHotEncoder(sparse=False).fit_transform(np.array(a).reshape(-1,1))#OneHotEncoder二值化 #结论:pandas.get_dummies可以很方便的对定性特征定量化,且可以批量处理。第二种方法无法批量的对定性特征进行定量化。
#建议使用第一种方法。

One-Hot独热编码的更多相关文章

  1. 【转】数据预处理之独热编码(One-Hot Encoding)

    原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. ...

  2. 机器学习实战:数据预处理之独热编码(One-Hot Encoding)

    问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...

  3. 独热编码OneHotEncoder简介

    在分类和聚类运算中我们经常计算两个个体之间的距离,对于连续的数字(Numric)这一点不成问题,但是对于名词性(Norminal)的类别,计算距离很难.即使将类别与数字对应,例如{'A','B','C ...

  4. OneHotEncoder独热编码和 LabelEncoder标签编码

    学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别. 首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到 ...

  5. 数据预处理:独热编码(One-Hot Encoding)

    python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...

  6. 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码

    一.问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one- ...

  7. 数据预处理之独热编码(One-Hot Encoding)(转载)

    问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...

  8. 机器学习 数据预处理之独热编码(One-Hot Encoding)

    问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...

  9. 机器学习:数据预处理之独热编码(One-Hot)

    前言 ———————————————————————————————————————— 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等.这些特征值并不是连续的 ...

随机推荐

  1. Luogu P1196 [NOI2002]银河英雄传说:带权并查集

    题目链接:https://www.luogu.org/problemnew/show/P1196 题意: 有30000个战舰队列,编号1...30000. 有30000艘战舰,编号1...30000, ...

  2. httpRequest.CookieContainer= cookie 与 httpRequest.Headers.Add("Cookie", cookie)

    这两天做了一个获取cookie并且携带此cookie去请求另外一个url地址,中间携带cookie用了两种方式:1. httpRequest.CookieContainer= cookie (此coo ...

  3. Delphi TcxComboBox控件说明

    属性: Text:ComboBox 的文本信息 EditText: 也是给ComboBox 的文本信息赋值,但不同的是 给Text赋值会 触发 Change事件,也会触发 EditvaluesChan ...

  4. error: reference to 'max' is ambiguous

    1.     自定义的变量名    与      库中的      重名了

  5. 大数据_学习_01_Hadoop 2.x及hbase常用端口及查看方法

    二.参考资料 1.Hadoop 2.x常用端口及查看方法

  6. PHP使用http_build_query()构造URL字符串的方法

    http_build_query http_build_query -- 生成 url-encoded 之后的请求字符串描述string http_build_query ( array formda ...

  7. IE input 去掉文本框的叉叉和密码输入框的眼睛图标

    ::-ms-clear, ::-ms-reveal{display: none;}

  8. Arc077_E Guruguru

    传送门 题目大意 有$m$个点编号从小到大按照顺时针编成了一个环,有一枚棋子,每次移动可以选择顺时针移动到下一个或者直接移动到编号为$x$的点,现在有$n-1$次数操作,第$i$次要把棋子从第$A_i ...

  9. Metasploit的使用下篇——漏洞攻击

    一.上文总结 上篇当中主要通过开启的端口对目标主机进行攻击,最后成功做到了连接不过却不能查看到telnet的登陆用户名和密码,目前来看有两个原因:第一.我对于靶机telnet的设置有问题,没有设置相应 ...

  10. js中eval详解

    先来说eval的用法,内容比较简单,熟悉的可以跳过   eval函数接收一个参数s,如果s不是字符串,则直接返回s.否则执行s语句.如果s语句执行结果是一个值,则返回此值,否则返回undefined. ...