【问题标题】:Binary Classification on a tupled dataset元组数据集上的二进制分类
【发布时间】:2012-07-05 09:59:33
【问题描述】:

我有一个 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++) 库,但结果不是好的。我认为拆分元组并因此寻找合适的方法是没有意义的。

【问题讨论】:

    标签: algorithm dataset machine-learning classification


    【解决方案1】:

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

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

    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. 可能是您遇到了一个非常困难的分类问题。您是否有任何证据表明您的输入中确实存在一些信号,分类器可以使用该信号将数据分为两组?

    【讨论】:

    • 我可以给出我的问题的更多部分。每个元组的第二个组件(对于所有特征)确实属于一个实体/实例。也就是说,不是传统的单个实例属于一个类,而是我有两个具有相同特征集的实例属于 + / - 类。将实例拆分为两个单独的 + / - 类实例是没有意义的。对于我的问题,我必须将实体放在一起并将它们称为单个实例。你的观点:4)你的问题得到回答了吗? 1) 同意,这不仅使问题变得更难,而且算法不必要地学习了特征之间的关系。
    猜你喜欢
    • 2021-06-30
    • 2017-12-28
    • 2018-09-13
    • 2019-05-21
    • 2017-04-05
    • 1970-01-01
    • 2016-04-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多