对阵列数据集的二进制分类

时间:2012-07-05 01:19:43

标签: algorithm dataset machine-learning classification

我有一个2类数据集,我应该应用二进制分类算法。数据集如下所示:

a1,a2,a3,...... +1 ......
b1,b2,b3,.......- 1
.......

其中每个要素/属性值都是2元组。例如,a1是(a1_1,a1_2)。 a1_1和a1_2之间存在依赖关系(虽然此时我不确定如何相关)并且它们的顺序并不重要。类似的情况也适用于负类实例。

我正在寻找一些对这些实例进行分类的方法。如果存在这样的算法,请告诉我。

首先,我尝试拆分元组 - a1_1和a1_2为一个实例组成两个单独的列,导致每个实例的特征值数量增加两倍 - 并使用LIBSVM(C / C ++)库,但结果不是好。我认为分割元组并因此寻找合适的方法没有意义。

1 个答案:

答案 0 :(得分:0)

在所有条件相同的情况下,我想如果你的数据实际上包含了成对的东西,那么将这个事实传达给学习算法会很有用。 将您的整体对拆分为单独的功能,使您的分类算法有机会了解两个功能之间可能存在的任何有用关系

然而,这只是一般的经验法则。您可能无法获得良好的分类结果有几个原因:

  1. 两个特征之间可能没有任何有用的关系。如果是这种情况,那么分成两个特征会使您的问题变得更加困难:现在分类算法已经an additional dimension to explore
  2. 也许你还没找到合适的学习算法。不同的算法具有不同的优势,如果您使用正确的分类算法,使用多个功能可能是个好主意。我建议尝试像Weka这样的监督学习包,它提供了一种在单个问题上比较一堆学习算法的简单方法。只需将您的数据转换为.arff格式,您就可以立即使用SVN,决策树,神经网络等进行分类。
  3. 您可能无法提供足够的功能。将a1, a2, ...拆分为单独的要素[a1_1, a1_2], [a2_1, a2_2], ...时,您也可以包含已撤消的数据,例如[a1_1, a1_2], [a1_2, a1_1], [a2_1, a2_2], [a2_2, a2_1], ...就此而言,您还可以通过包含每个数据的非拆分版本来使用三个功能,例如: [a1, a1_1, a1_2], [a2, a2_1, a2_2], ...这就是“让我们抛出我们能解决的所有问题”方法。
  4. 可能你只是有一个非常困难的分类问题。您是否有任何证据表明您的输入中确实存在一些分类器可用于将数据分成两组的信号?