什么是虚拟变量和因子型数据
虚拟变量,
虚拟变量(DummyVariables)又称虚设变量、名义变量或哑变量,用以反映质的属性的一个人工变量,是量化了的自变量,通常取值为0或1。引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到两个方程的作用,而且接近现实。
哑变量(Dummy Variable),又称虚设变量、名义变量或哑变量,是量化了的质变量,通常取值为0或1。引入哑变量可使线形回归模型变得更复杂,但对问题描述更简明,一个方程能达到俩个方程的作用,而且接近现实。
举例说明,我想研究收入和学历的关系,那么学历包含:小学、初中、高中、本科、研究生、博士等。那学历这个变量包含的类容,咱们可以称为虚拟变量,用1,2,3,4,5,6来进行表示。
那虚拟变量、哑变量、虚设变量、名义变量等其实是一个说法。
在R语言中,以上的1,2,3,4,5,6称为层次水平因子factor,而学历就叫做因子型变量。
注意:虚拟变量的值必须是大于等于2个,否则没有意义。
Python虚拟变量和因子型数据转换
同样,数据样本中有一类特征属性彼此是平行的关系,不能简单的以数值或字符赋予其含义,也不参加大小的运算。例如 性别、学历、评级等,面对这类问题,可以通过构建哑变量来解决。以疾病的病种类型为例进行如下所示:
例如含有三个因子的特征可以将其转化为三列每列都只有0-1构成的向量。这样的向量就是哑变量。下面来看一下再python中的实现
import pandas as pd
testdata = pd.read_csv("C://Users//TD//Desktop//1.csv")
from sklearn import preprocessing
testdata["疾病名称"].head()
0 败血症(成人)
1 败血症(成人)
2 脑出血和脑梗死
3 脑出血和脑梗死
4 脑出血和脑梗死
Name: 疾病名称, dtype: object
factor=pd.get_dummies(testdata["疾病名称"],prefix='疾病名称')
factor
疾病名称_创伤性颅脑损伤 疾病名称_前列腺增生 ... 疾病名称_败血症(成人) 疾病名称_高血压病(成人)
0 0 0 ... 1 0
1 0 0 ... 1 0
2 0 0 ... 0 0
于是就将上述的内容直接转化为哑变量,带入Python模型中进行分析。