对 10 位数字键进行分类的算法

Algorithm to classify 10 digit keys

我正在寻找一种算法来对格式不同的 10 位数字(大部分)整数键进行分类。训练数据集如下所示:

+------------+----------------+
|    key     | classification |
+------------+----------------+
| 1000012355 | US             |
| 1000045331 | US             |
| 0000123101 | DE             |
| 0003453202 | DE             |
| 000K213411 | ES             |
| 000K243221 | ES             |
+------------+----------------+

这些密钥来自不同的系统,并且以不同的方式创建。有大量可用的训练数据集。虽然我假设这些密钥的某些部分是随机的,但结构不是。

任何帮助将不胜感激。

您可以对每个字符进行一次性编码,然后将它们连接起来。

也就是说,假设您有 20 个可能的字符,密钥中的这 10 个字符中的每一个都可以使用。然后,您可以将每个字符转换为长度为 20 的零向量,其中 1 位于与特定字符对应的位置。然后,您将拥有一个长度为 10 * 20 = 200 的整体特征向量。然后您可以将其作为输入输入到任何分类算法中,目标输出是可能的国家/地区。

如果这确实是确定性的,并且键可以分开,那么决策树可能会找到完美的解决方案。甚至逻辑回归?如果有一些 'fuzziness' 那么像随机森林这样的东西可能会更好。

在构建模型、训练和 predicting.It 之前最好先分析问题,您假设这些键的某些部分是随机的,结构是 not.You 需要探索数据集证明你的假设,根据数据的分布,决定使用什么模型。

  1. 将字符串转化为向量,将字符串中的每个字符作为一个分类特征,使用one-hot编码,得到一个高维稀疏矩阵。完成这一步后,就可以对训练数据进行计算、分析、建模等操作了。
  2. 然后你需要分析数据。一种简单有效的方法是可视化analysis.For高维数据,可以使用andrews curves, parallel coordinates等on.You也可以使用PCA或ICA等降维方法,然后可视化低维数据。
  3. 根据你的可视化结果,你可以根据特征分布选择你的model.If,不同类别的数据很容易划分,你几乎可以使用任何class化算法,比如LR ,SVM甚至clustering.If是multiclass的问题,可以用OVO或者OVR.If可视化效果差,classes区分不明显,可能需要做一些特征工程,或者尝试树模型和集成学习方法。