简介
过去几个月我一直在研究机器学习,更具体地说是神经网络。我发现分类数据(例如城市)可以转换为整数数据,但不应该因为没有线性。我的意思是:纽约没有理由为1或100.对此更好的解决方案是一个热编码。但是,它极大地增加了问题的维度(将城市数量作为输入节点绘制为网络输入)。
示例:
纽约= [1,0,0]
布宜诺斯艾利斯= [0,1,0]
Tokio = [0,0,1]
您需要N个输入,N是城市数量。
可能的解决方案:
我真的不知道这是否已经存在或是否可行,我还没有测试过。话虽如此,在上面的例子中,我正在使用十进制输入。您可以使用二进制输入,以减少问题的维数吗?
使用二进制输入的示例
纽约= [0,1]
布宜诺斯艾利斯= [1,0]
Tokio = [1,1]
通过这种方式,您只需要≈ log(N)(基数2)输入数量会大大增加,特别是在有大量功能的情况下。例如:如果您有1000个分类数据输入,那么它只会产生10个神经网络输入。
提前谢谢你。记住我只是在学习。
答案 0 :(得分:1)
我认为您不能将One Hot Encoding(OHE)转换为二进制输入。 One Hot Encoding的含义是您拥有与城市一样多的功能。没有两个城市可以分享任何功能的价值,因为它们是截然不同的转换为二进制输入后,各个城市会随机共享同一要素的值。
E.g。布宜诺斯艾利斯和Tokio都将有1作为第一个功能。神经网络会认为它们确实具有这个共同特征。然而情况并非如此,根据您的订购情况,纽约可以很容易地与Tokio分享第一个功能的价值:
Buenos Aires = [0, 1]
Tokio = [1, 0]
New York = [1, 1]
现在,Tokio和纽约似乎彼此更相似。
答案 1 :(得分:0)
但是你只会将编号基础系统从基数10改为基数2而不解决问题,即纽约没有理由不是1111而不是0001。