我手头有问题,
我需要将输入数据分类为一个或多个标签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 ..
答案 0 :(得分:0)
你的问题远非明确,例如:
我们希望优化大多数X到达S3,因此根据输入数据我们决定是否允许X通过S1
实际上建议,最好的模型将是“总是回答是”,因为它最大化了到达S3的对象数量(因为它只是让任何对象到达这一点)
我假设有两种可能的解释:
您有一个标签“管道”,这只是意味着,如果该对象尚未标记为S_n
的所有S_i
,则该对象无法标记为i < n
对于单个模型而言,这似乎不是问题,您可以以自然的方式管道模型,即。如果对象1
应具有标签x
,则训练模型S_1
,该模型会重新识别。接下来,您在训练集中标记为2
的所有数据上训练模型S_1
并预测标签S_2
,依此类推。在执行期间,您只需询问每个模型i
是否接受(标记)传入对象x
,并在第一个模型显示“否”时停止
你对标签有一些更复杂的约束,这可能是严格的或不严格的。对于这种情况,你应该尝试multi label classification with constraints
的许多方法之一,特别是有{{3}关于ML的这方面。
如果您的问题可以描述为:
X
,因此对于每个数据点,您都知道T_i
通过的某些可管道化测试x
的最大数量x
通过的最大连续测试次数是多少T_i
或者效率非常低然后最简单的方法是应用以下训练程序而不是一个分类器:
y=0
的{{1}}和0
的{{1}}标记为y>=1
,并训练一些二元分类器(例如SVM)。因此,您只是暂时重新标记您的数据,以便显示通过第一次测试的点和不通过第一次测试的点。让我们调用此分类器1
cl_1
为y=1
,将0
标记为y>=2
并再次训练二进制分类,并将其称为{{1} } 1
,因为它可以区分标有cl_2
的点和cl_i
的点。 现在,要对新点进行分类,只需迭代检查y=i-1
y>=i
的{{1}},然后使用cl_i
的最大i=1,..,tests
进行回答。因此,您使用分类器“模拟”您的测试,并简单地说明这些测试的近似值通过了多少。
总结:每个测试可以用一个二元分类器近似,然后问题“我们的点通过的最大的连续测试数是多少”近似为“什么是最大的连续分类器数字,是什么归类为真实“。
您还可以简单地将输入空间中的回归应用到它到达的测试数量。回归实际上有一个印记假设,即输出值是相关的。因此,如果您使用成对i
训练数据,其中cl_i(x)=1
是(x,y)
传递的最后一次测试的数量,那么您实际上正在使用输出y
为与计算中首先获得x
高度相关。这种回归(非线性!)可以简单地使用神经网络(可能是正则化的)来完成