机器学习中的逆向预测

时间:2018-03-14 19:25:08

标签: machine-learning scikit-learn svm linear-regression data-science

我对机器学习/数据科学中的逆预测有疑问。这里我举一个例子来说明我的问题:我有20个输入特征X =(x0,x1,... x19)和3个输出变量Y =(y0,y1,y2)。训练/测试数据的数量通常较小,例如训练集中的<1000项或甚至<100。

通常,通过使用机器学习工具箱(例如scikit learn),我可以从X - >训练模型(例如随机森林,线性/多项式回归和神经网络)。 Y.但我真正想知道的是,例如,我应该如何设置X,以便我可以在特定范围内具有y1值(例如y1> 100)。

有谁知道如何解决这种&#34;逆预测&#34;?我有两种方式:

  1. 以正常方式训练模型:X - > Y,然后在高维X空间中设置密集网格。在此示例中,它是20维。然后使用此网格中的所有点作为输入数据,并将它们投射到训练模型。选择预测的y1> 1的所有输入点。 100.最后,使用一些方法,例如聚类来查找所选数据点中的某些模式。
  2. 直接学习从Y到X的模型。然后,在高维Y空间中设置密集网格,其中让y1&gt; 100.然后使用训练的模型计算X数据点。
  3. 当Y也具有高维度时,第二种方法可能没问题。但通常情况下,在我的应用中,Y是非常低维度的,X是非常高维的,这让我觉得方法2不太实用。

    有没有人有任何新想法?我认为这应该在某种程度上在工业中非常普遍,也许有些人以前会遇到类似的情况。

    谢谢!

1 个答案:

答案 0 :(得分:1)

根据我对你的需求的理解,#1非常适合这个问题。我建议您使用简单的二元分类器SVM来区分好/坏X向量。 SVM适用于高维空间,在大多数SVM接口中读取系数很容易。