如何把类别资讯丢给模型训练 - 编码方法(上):Integer Encoding (Label Encoding) &a

前言

神经网路中一个常见的题目就是要做「分类」,而如何将类别资讯(Categorical Data)转换成数值资讯(Numerical Data)让模型能够理解,进而执行训练,就要来探讨如何对资料进行编码(Encoding)。

网路上已经有其他写得满清楚的部落格文章,可以直接参考(皆附程式码):

初学Python手记#3-资料前处理( Label encoding、 One hot encoding)Day03 Pandas DataFrame, Label Encoding and One Hot Encoding. Pandas基本资料类型、标籤编码与独热编码

这边仅简单做个白话的整理和比较,也可以直接看最后Take Home Message的部分。

编码 (Encoding)

常用的方式主要有以下两种方法:

Integer Encoding(标籤编码)One-Hot Encoding(独热编码)

1. Integer Encoding

将类别变量利用一位来呈现。不同类别,分别有对应的一个整数。

2. One-Hot Encoding

将类别变量用二进制的向量来呈现。有n类,向量长度就是n维。属于该类的话就注记1、不属于就注记0。

Take Home Message

针对三个类别来举例的话:

Integer Encoding会这样转换:
金牌 > 1
银牌 > 2
铜牌 > 3
(可以留意一下,金银铜牌这三类是「有序类别变量」,类别之间具有顺序关係)

One-Hot Encoding会这样转换:
红色 > 1 0 0
绿色 > 0 1 0
蓝色 > 0 0 1

两种方式使用时机的差异在于:

Integer Encoding会让模型学习到「顺序关係」,也就是有大小之分。而当类别之间不存在优劣、前后、高低之分的时候,也就是「无序」,就适合採用 One-Hot Encoding。但相对地,因为维度提高了,就会较费时且占用较多的空间。

如果有任何问题欢迎留言讨论,文中错误的地方还请不吝指正,谢谢!

References

Why One-Hot Encode Data in Machine Learning?


关于作者: 网站小编

码农网专注IT技术教程资源分享平台,学习资源下载网站,58码农网包含计算机技术、网站程序源码下载、编程技术论坛、互联网资源下载等产品服务,提供原创、优质、完整内容的专业码农交流分享平台。

热门文章