Python机器学习:One Hot 编码处理分类变量

因为模型处理不了文本类型的变量,所以如果是文本类型的分类变量都要转为数值类型。

one hot编码就是很常用的一种转码方式,转后的数据也叫虚拟变量。

比如地区字段Geography里面有3种值,分别是France、Germany、Spain。转为虚拟变量后值就变成了字段名,其含义是:是否法国、是否德国、是否西班牙。

Python机器学习:One Hot 编码处理分类变量_第1张图片

pandas库里面就有这个工具,语法是pd.get_dummies('数据'):

onehot_data = pd.get_dummies(data['Geography'])
onehot_data 

运行完打印:

Python机器学习:One Hot 编码处理分类变量_第2张图片

在英语里面 dummies是dummy 的复数形式,dummy的意思是假的、虚拟的、仿品··· get_dummies可以理解成是获取虚拟变量的意思。

注意有一种分类变量乍一看很像是可以使用one hot编码的,但实际却不能用的,比如性别。如果使用one hot编码,就会变成两个字段:是否男、是否女,但其实这俩字段是一个意思,用one hot编码就重复了。遇到类似的这种字段,直接赋值成数值类型的就行了。

反面案例:

数据长这样:

Python机器学习:One Hot 编码处理分类变量_第3张图片

One Hot运行完 长这样:

Python机器学习:One Hot 编码处理分类变量_第4张图片

你可能感兴趣的:(Python机器学习,python,jupyter,数据分析)