用于多标签分类的机器学习模型,我们知道标签之间的关系

时间:2013-09-10 18:22:38

标签: machine-learning

我手头有问题,

我需要将输入数据分类为一个或多个标签S1,S2,S3,S4

标签S1,S2,S3和S4之间存在关系,即

如果输入标记为Sn,则必须标记为S1..Sn。

S1,S2,S3和S4类似于实体X通过的不同阶段。基于输入数据X可能通过一个或多个阶段,X必须通过S1进入S2,S2进入S3等等

我们希望确保只允许那些X通过哪个到达S3 ,因此我们根据输入数据决定是否允许X通过S1

如果我们有输入数据和X已经为该输入数据传递的阶段等信息,我们可以选择预测X是否达到S3的机器学习模型

我在思考多标签分类的方向输入数据阶段S1和S2之间可能存在某种关系

更新:我必须训练如下的例子 1.输入数据为s1 2.输入数据是s2 3. .. .. 4 ..

1 个答案:

答案 0 :(得分:0)

有些疑惑

你的问题远非明确,例如:

  

我们希望优化大多数X到达S3,因此根据输入数据我们决定是否允许X通过S1

实际上建议,最好的模型将是“总是回答是”,因为它最大化了到达S3的对象数量(因为它只是让任何对象到达这一点)

一般想法

我假设有两种可能的解释:

  1. 您有一个标签“管道”,这只是意味着,如果该对象尚未标记为S_n的所有S_i,则该对象无法标记为i < n

    对于单个模型而言,这似乎不是问题,您可以以自然的方式管道模型,即。如果对象1应具有标签x,则训练模型S_1,该模型会重新识别。接下来,您在训练集中标记为2的所有数据上训练模型S_1并预测标签S_2,依此类推。在执行期间,您只需询问每个模型i是否接受(标记)传入对象x,并在第一个模型显示“否”时停止

  2. 你对标签有一些更复杂的约束,这可能是严格的或不严格的。对于这种情况,你应该尝试multi label classification with constraints的许多方法之一,特别是有{{3}关于ML的这方面。

  3. 解决方案1 ​​ - 近似测试功能

    如果您的问题可以描述为:

    • 您有数据点X,因此对于每个数据点,您都知道T_i通过的某些可管道化测试x的最大数量
    • 您想训练能够预测的分类器,您的分数x通过的最大连续测试次数是多少
    • 您无权访问实际测试T_i或者效率非常低

    然后最简单的方法是应用以下训练程序而不是一个分类器:

    1. 获取所有数据点,将y=0的{​​{1}}和0的{​​{1}}标记为y>=1,并训练一些二元分类器(例如SVM)。因此,您只是暂时重新标记您的数据,以便显示通过第一次测试的点和不通过第一次测试的点。让我们调用此分类器1
    2. 现在,将您的数据点标记为cl_1y=1,将0标记为y>=2并再次训练二进制分类,并将其称为{{1} }
    3. 重复直到所有测试都有他们的分类器,一般情况下我们称之为分类器1,因为它可以区分标有cl_2的点和cl_i的点。
    4. 现在,要对新点进行分类,只需迭代检查y=i-1 y>=i的{​​{1}},然后使用cl_i的最大i=1,..,tests进行回答。因此,您使用分类器“模拟”您的测试,并简单地说明这些测试的近似值通过了多少。

      总结:每个测试可以用一个二元分类器近似,然后问题“我们的点通过的最大的连续测试数是多少”近似为“什么是最大的连续分类器数字,是什么归类为真实“。

      解决方案2 - 简单回归

      您还可以简单地将输入空间中的回归应用到它到达的测试数量。回归实际上有一个印记假设,即输出值是相关的。因此,如果您使用成对i训练数据,其中cl_i(x)=1(x,y)传递的最后一次测试的数量,那么您实际上正在使用输出y为与计算中首先获得x高度相关。这种回归(非线性!)可以简单地使用神经网络(可能是正则化的)来完成