一、问题由来
在很多机器学习任务中,特征并不总是连续值,而有可能是分类值。?例如:人是否生病、衣服有许多牌子像李宁、安踏、耐克等等。
为了解决上述分类问题,工程师们引入了ONE-HOT码这一概念来将类别变量转换为机器学习算法易于利用的一种形式的过程。
二?、?什么是 one-hot 编码?
官方定义:独热编码即 One-Hot 编码,又称一位有效编码,其方法是使用N位状态寄存器来对N个状态进行编码,每个状态都由他独立的寄存器位,并且在任意时候,其中只有一位有效。?
我的理解:整个编码有n位数,只有一个1来代表次状态的索引,剩下n-1个数全为0
好处:解决了分类器不好处理属性数据的问题,解决了分类器不好处理属性数据的问题
三、代码示例
from keras.preprocessing.text import Tokenizer
samples = ['The cat sat on the mat.', 'The dog ate my homework, he dog ate my homework.']
tokenizer = Tokenizer(num_words=100)
tokenizer.fit_on_texts(samples)
one_hot_results = tokenizer.texts_to_matrix(samples, mode='binary')
print('one_hot_results:\n',one_hot_results)
结果:
?
|