具有分类特征的分类的合适算法是什么?

人工智能 算法 分类 学习算法 分类数据
2021-10-31 13:10:48

我的输入数据由一系列 8 个整数组成。每个整数都是一个离散标记,而不是一个相对数值(即“1”和“2”与“1”和“100”一样不同)。输出是一个指示成功或失败的二进制值。例如:

fail,12,35,60,82,98,111,142,161
success,23,46,59,87,102,121,145,161
fail,13,35,65,83,100,102,122,161

我说这些条目中有 500,000 条。

成功或失败取决于构成输入的八个标记的组合。我确信没有单一的标记会决定成功或失败,但可能有特定的标记或标记组合对决定成功或失败很重要,我不知道,但想知道。

我的问题是,我应该实施什么样的机器学习算法来回答哪些令牌和令牌组合最有可能导致成功的问题?

如果它相关或有用,请在输入数据上添加一些注释:

每个插槽中的令牌(因此整数)范围有限。所以有了这个数据输入:

success,A,B,C,D,E,F,G,H

A总是说 1、2、3、4 或 5 之一。B 总是 6、7 或 8 之一。C 总是 9、10、11 或 12 之一。所以在一般情况下,A 的可能值其他插槽永远不会有可能的值,并且每个插槽有 2 到 12 个值。不知道这是否与答案不同,但为了完整起见,想将其包括在内。

1个回答

您所拥有的称为具有分类特征的分类问题。也就是说,特征可以用数字来表示,但数字没有相对意义。

依赖平滑函数逼近的算法在这里可能无法正常工作。这些将包括经典的回归方法,以及通过神经网络进行的函数逼近。那是因为数据一点也不平滑!

相比之下,经典的分类算法,如 Quinlan 的C4.5 决策树学习器(在 Weka Toolkit 中以J48的形式实现,并且可能在 SciKitLearn 中以DecisionTreeClassifier的形式实现,尽管文档不太清楚),是理想的:它们实际上通过拆分来工作无论如何,数值都分为离散类别,因此它们根本没有问题。大多数版本还支持将特征预先标记为分类的方法,并且算法依赖于每个特征类别的交叉熵,而不做平滑假设。