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

时间:2017-09-04 19:51:15

标签: algorithm machine-learning integer classification business-intelligence

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

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

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

任何帮助将不胜感激。

2 个答案:

答案 0 :(得分:0)

你可以对每个角色进行一次热门编码,并将它们连接起来。

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

如果这是真正的确定性,并且密钥可以分开,则决策树可能会找到完美的解决方案。甚至是逻辑回归?如果有一些“模糊”的话。然后像随机森林这样的东西可能会更好。

答案 1 :(得分:0)

在构建模型,训练和预测之前。最好先分析问题,你假设这些键的某些部分是随机的,结构不是。你需要探索数据集以证明你的假设并根据分发数据,确定使用哪种模型。

  1. 将字符串转换为向量,将字符串中的每个字符视为分类类型要素,使用单热编码,您将获得高维的稀疏矩阵。完成此步骤后,您可以计算,分析,建模等培训数据。
  2. 然后你需要分析数据。其中一个简单有效的方法是可视化分析。对于高维数据,您可以使用andrews curvesparallel coordinates等。您还可以使用降维方法,如PCA或ICA,然后可视化低维数据。
  3. 根据您的可视化结果,您可以选择您的模型。如果根据功能分布,可以轻松划分不同类别的数据,您几乎可以使用任何分类算法,例如LR,SVM甚至聚类。如果是多类问题,你可以使用OVO或OVR。如果可视化很差,类之间的区别并不明显,你可能需要做一些特征工程,或尝试树模型和集成学习方法。