我应该如何将包含字母和数字的单词转换为仅数字,以便K-Neighbors分类器可以训练它来对它们进行分类?

问题描述 投票:0回答:1

我的训练数据包含像

EMI3776438, U9BA7E, 20FXU84P, 4506067765, N8UZ00351

我正在使用K-Neighbors分类器算法。

现在,我使用的方法是将字母转换为数字。

例如,a / A将映射到10b / B将映射到11c / C将映射到12。转换后,我会将此数据发送到K-Neighbors分类器。

因此,例如,ABI37成为1011I37

这种方法的问题是AA1010都将映射到1010,并且算法无法区分它们并正确分类。

有没有一种很好的方法可以将这些转换为仅数字(因为这个算法仅适用于数字),以便真正的价值和分类可以正确完成?

python machine-learning nearest-neighbor
1个回答
0
投票

要做到这一点,首先需要确定字符串比较的距离(或“度量”)。一旦你有了一个指标,那么将k-nn应用到数据将很容易,因为k-nn只需要能够询问“两个数据点之间的距离是多少?”。有关想法,请参阅this Wikipedia文章。

您可以根据自己的建议简单地将字符转换为int,但是这会忽略一个关键点,即它不一定能给出k-nn所需的字符串“距离”的有意义的度量,以给出合理的东西。最佳指标的选择取决于具体的问题细节,即您的数据实际代表的内容!

This issue讨论了类似的问题。

© www.soinside.com 2019 - 2024. All rights reserved.