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

时间:2019-02-20 10:35:38

标签: python machine-learning nearest-neighbor

我的训练数据包含

之类的文本
EMI3776438, U9BA7E, 20FXU84P, 4506067765, N8UZ00351

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

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

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

例如,12变为ABI37

此方法的问题在于1011I37AA都将映射到1010,并且该算法无法区分它们并正确分类。

是否有一个很好的方法可以将它们转换为仅数字(因为该算法仅适用于数字),以便可以正确完成实际值和分类?

1 个答案:

答案 0 :(得分:0)

为此,您首先需要确定一个距离(或“度量”)以进行字符串比较。一旦有了指标,就可以很容易地将k-nn应用于数据,因为k-nn仅需要问“两个数据点之间的距离是多少?”。请参阅this Wikipedia文章以获取想法。

您可以按照您的建议将字符简单地转换为int,但这错过了一个关键点,即它不一定根据k-nn的需要给出有意义的字符串“距离”度量来给出有意义的值。最佳指标的选择取决于特定的问题详细信息,即您的数据实际代表什么!

This issue讨论了类似的问题。