One-Hot独热编码
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独热编码的更多相关文章
- 【转】数据预处理之独热编码(One-Hot Encoding)
原文链接:http://blog.csdn.net/dulingtingzi/article/details/51374487 问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. ...
- 机器学习实战:数据预处理之独热编码(One-Hot Encoding)
问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...
- 独热编码OneHotEncoder简介
在分类和聚类运算中我们经常计算两个个体之间的距离,对于连续的数字(Numric)这一点不成问题,但是对于名词性(Norminal)的类别,计算距离很难.即使将类别与数字对应,例如{'A','B','C ...
- OneHotEncoder独热编码和 LabelEncoder标签编码
学习sklearn和kagggle时遇到的问题,什么是独热编码?为什么要用独热编码?什么情况下可以用独热编码?以及和其他几种编码方式的区别. 首先了解机器学习中的特征类别:连续型特征和离散型特征 拿到 ...
- 数据预处理:独热编码(One-Hot Encoding)
python机器学习-sklearn挖掘乳腺癌细胞( 博主亲自录制) 网易云观看地址 https://study.163.com/course/introduction.htm?courseId=10 ...
- 数据预处理:独热编码(One-Hot Encoding)和 LabelEncoder标签编码
一.问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 离散特征的编码分为两种情况: 1.离散特征的取值之间没有大小的意义,比如color:[red,blue],那么就使用one- ...
- 数据预处理之独热编码(One-Hot Encoding)(转载)
问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...
- 机器学习 数据预处理之独热编码(One-Hot Encoding)
问题由来 在很多机器学习任务中,特征并不总是连续值,而有可能是分类值. 例如,考虑一下的三个特征: ["male", "female"] ["from ...
- 机器学习:数据预处理之独热编码(One-Hot)
前言 ———————————————————————————————————————— 在机器学习算法中,我们经常会遇到分类特征,例如:人的性别有男女,祖国有中国,美国,法国等.这些特征值并不是连续的 ...
随机推荐
- C#返回Json,js解析Json,并添加到select标签中
后台: List<Student> list=GetAll();//id name string json = new JavaScriptSerializer().Serialize(l ...
- 分享知识-快乐自己:mongodb 安装部署(linux)
1):下载 mongodb 包 [root@admin tools]# wget http://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.0.6. ...
- jenkins-小知识点
如果想停止jenkins运行 控制面板-服务-查看本地服务-选中jenkins 1.启动类型改为手动 2.改为禁止 使用的时候,每次都改一下状态
- Python入门经典练习题
[程序1] 题目:有1.2.3.4个数字,能组成多少个互不相同且无重复数字的三位数?都是多少? num_list=[]cou=0for i in range(1,5): for j in range( ...
- windows 安装 pytorch
之前都在服务器上跑pytorch,近来发现新版本可在windows上跑了,甚是开心. 环境: windows7 python3 无CPU 步骤: 1. 确保确保python版本在3.5.3/3.6. ...
- 把自定义的decoder加入ffmpeg源码
第一步: 在libavcodec目录下新建mkdecoder.c,并加入一下代码: /* *实现一个自己的decoder,编码工作其实就是把pkt的数据拷贝到frame *作者:缪国凯(MK) *82 ...
- 2017-2018-1 20179215《Linux内核原理与分析》第三周作业
本次作业分为两部分:第一部分为实验.主要目的是进行基于MYKERNEL的一个简单的时间片轮转多道程序内核代码分析.第二部分为阅读教材,了解LINUX进程调度等. 一.实验部分 实验过程如过程所述:使用 ...
- 使用UIVisualEffectView创建毛玻璃效果
UIVisuaEffectView :继承自UIView,可以看成是专门用于处理毛玻璃效果的视图,只要我们将这个特殊的View添加到其他视图(eg. ImageView )上面,被该UIVisuaEf ...
- [转]javascript单元测试
1. 什么是单元测试 在计算机编程中,单元测试(又称为模块测试)是针对程序模块(软件设计的最小单位)来进行正确性检验的测试工作.程序单元是应用的最小可测试部件.在过程化编程中,一个单元就是单 ...
- poj 2187 Beauty Contest —— 旋转卡壳
题目:http://poj.org/problem?id=2187 学习资料:https://blog.csdn.net/wang_heng199/article/details/74477738 h ...