机器学习100天,今天讲的是:数据预处理之类别特征编码。
在上一节,我们对特征 X 的 NaN 值进行了平均数插值处理。
我们打开 X,查看第一列特征,国家这一列:
发现这一列特征都是字符串,例如:法国、德国、韩国。
大部分机器学习模型,字符串类别特征是不能用来直接进行数值处理和分析的,我们必须将类别型特征转化为连续型特征。通俗地来说就是把这里的字符串转化为数值。
怎么做呢?
最简单的做法是标签编码,就是直接将类别特征从字符串转换为数字,例如我们直接把法国编码为 0,德国编码为 1,韩国编码为 2。就是这样:
但是这种做法有个很大的缺点,0,1,2 在数值上是连续的,它很容易给机器学习模型一个误导,就是这些特征之间存在大小等某种数值上的关系。但是,法国、德国、韩国,这些特征量之间并不存在某种数值关系。因此,处理类别特征最常用的做法就是使用独热编码(One-hot 编码)。
One-hot 编码又称为一位有效编码,是采用 N 个状态进行编码,每个状态在任意时候只有一位有效,且为 1,其它位为 0。
例如,这里 X 的第一列国家特征,所有样本总共有三种类别:法国、德国、韩国