美文网首页
哑变量编码-python

哑变量编码-python

作者: 梦游的猫头鹰 | 来源:发表于2018-08-13 12:58 被阅读647次

一、Dummy Variable定义

虚拟变量又称虚设变量、名义变量或哑变量,引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到俩个方程的作用,而且接近现实。

例如:

1. 分离异常因素的影响,例如分析我国GDP的时间序列,必须考虑“文革”因素对国民经济的破坏性影响,剔除不可比的“文革”因素。 

2. 检验不同属性类型对因变量的作用,例如工资模型中的文化程度、季节对销售额的影响。 

3. 提高模型的精度,相当与将不同属性的样本合并,扩大了样本容量(增加了误差自由度,从而降低了误差方差

二、编码方式

1、dummy encoding

dummy encoding就是把一个有h个level的变量变成h-1个变量,比如3个level的变量就表示成成10,01,或00。

python实现

pd.get_dummies( drop_first=False, dummy_na=True),新增(h-1)个变量,可处理string类型数据(string 转换为 integers 类型)。

2、One-Hot Encoding

one-hot encoding就是用h个变量来代表这h个level,比如3个level的变量就表示成100,010,001。

python实现

pd.get_dummies( drop_first=True, dummy_na=True),新增(h)个变量,可处理string类型数据。

sklearn.preprocessing.OneHotEncoder(),不可以直接处理 string。

3、DictVectorizer

将字典类型表示的属性,转换为向量类型。

python实现

#定义一组字典列表,用来表示多个数据样本(每个字典代表一个数据样本)

measurements = [{'city':'Beijing','country':'CN','temperature':33.},{'city':'London','country':'UK','temperature':12.},{'city':'San Fransisco','country':'USA','temperature':18.}]

#从sklearn.feature_extraction导入

DictVectorizerfrom sklearn.feature_extraction import DictVectorizervec = DictVectorizer()

#输出转化后的特征矩阵print vec.fit_transform(measurements).toarray()

#输出各个维度的特征含义print vec.get_feature_names()

output

'''

[[ 1. 0. 0. 1. 0. 0. 33.]

 [ 0. 1. 0. 0. 1. 0. 12.]

 [ 0. 0. 1. 0. 0. 1. 18.]]

['city=Dubai', 'city=London', 'city=San Fransisco', 'country=CN', 'country=UK', 'country=USA', 'temperature']

'''

PS:另一个有趣的例子

measurements = [

    {'city=Dubai': True, 'city=London': True, 'temperature': 33.},

    {'city=London': True, 'city=San Fransisco': True, 'temperature': 12.},

    {'city': 'San Fransisco', 'temperature': 18.},

]

vec.fit_transform(measurements).toarray()

output

array([[ 1., 1., 0., 33.],

          [  0.,  1.,  1.,  12.],

          [  0.,  0.,  1.,  18.]])

相关文章

  • 哑变量编码-python

    一、Dummy Variable定义 虚拟变量又称虚设变量、名义变量或哑变量,引入哑变量可使线形回归模型变得更复杂...

  • Python学习笔记-3群18组-杜杜狼-2017.7.24

    Lesson 26 虚拟变量 虚拟变量又叫哑变量和离散特征编码,用来表示分类变量,非数量因素可能产生的影响 离散特...

  • python 介绍 基本语法和流程控制

    python2 采用ascii字符集编码,python3 采用utf-8字符集编码 python 变量名:name

  • python变量&字符编码

    变量和字符编码 变量 声明变量 上述代码声明了一个变量,变量名为: name,变量name的值为:"Tom" 变量...

  • python类别变量编码

    在调查问卷中,经常要将文字类别编码成数字,如果想指定某个文字对应哪个数字使用下边代码最方便,但是按照字母顺序进行编码

  • one-hot encoding 与dummy encoding

    One-Hot编码和哑变量应该怎么用 考虑一个具有三个类别的离散型特征,采用One-Hot 编码后: 其中 因此有...

  • 机器学习之特征工程

    一、哑变量 关于哑变量,这篇博文写的很好,相关概念可以参阅:《机器学习总结之——Dummy Coding(哑变量)...

  • 哑变量

    在SPSS logistic回归X为多分类产量时,或者在R中用回归(lm)做方差分析时,系统会设置哑变量,哑变量的...

  • python人工智能

    AI领域Python的最小知识范围 Python的类型,变量,流程控制语句 字符和编码 数据容器 函数式编程基础 ...

  • 回归拟合(三)——哑变量在预测篮球赛得分中的简单应用

    理解哑变量( dummy variable ) 哑变量只有0或者1两个取值 哑变量就像是一个开关 比如有一个函数:...

网友评论

      本文标题:哑变量编码-python

      本文链接:https://www.haomeiwen.com/subject/vxoybftx.html