我是ML的新手,并且考虑将一个简单的问候世界问题作为使用ANN的一种做法。这是问题,比如我有一个带有英文名称及其相应性别的训练数据集:
ALEX,M
BONNIE,F
CARLO,F
DAVID,M
EDDY,M
...
我想建立一个模型来预测名称的性别。由于ANN的输入必须是矢量形式,我想将名称转换为具有与数据集中最长名称相同的许多特征的向量(即10),然后将A = 1,B = 2 ,...,Z = 26,并且向量为null = -1。
例如:
ALEX will be [1, 12, 5, 24, -1, -1, -1, -1, -1, -1]
输出图层将为{0,1},代表男性或女性。
这听起来很奇怪。像这样将单个单词输入ANN是一种好方法吗?
答案 0 :(得分:1)
使用单热编码。这意味着您有一个大的输入大小,但它已被证明是有效的。使用A=1, B=2, Z=26
会给网络一种印象,即B比A更接近A,而且需要大量隐藏节点来映射函数。
使用单热编码:
[1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[0,1,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,1]
[0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0,0]
因此每个字母需要26个输入。