【问题标题】:Use scikit-learn to predict data vector "x" given "y"?使用 scikit-learn 预测给定“y”的数据向量“x”?
【发布时间】:2015-05-24 16:52:10
【问题描述】:

使用 Scikit learn,基本思想(例如,使用回归)是在拟合模型后,在给定数据向量“x”的情况下预测一些“y”。典型代码如下所示(改编自 here):

from sklearn.svm import SVR
import numpy as np
n_samples, n_features = 10, 5
np.random.seed(0)
y = np.random.randn(n_samples)
X = np.random.randn(n_samples, n_features)
clf = SVR(C=1.0, epsilon=0.2)
clf.fit(X[:-1], y[:-1]) 
prediction = clf.predict(X[-1])
print 'prediction:', prediction[0]
print 'actual:', y[-1]

我的问题是:是否可以在给定“x”和“y”的情况下拟合某个模型(也许不是 SVR),然后在给定“y”的情况下预测“x”。换句话说,是这样的:

clf = someCLF()
clf.fit(x[:-1], y[:-1])
prediction = clf.predict(y[-1])
#where predict would return the data vector that could produce y[-1]

【问题讨论】:

    标签: python machine-learning scikit-learn regression


    【解决方案1】:

    没有。有许多向量 (X) 可能导致相同的结果 (Y),反之则不然。

    如果您需要预测一开始用作 X 的数据,您可能会考虑更改您的 X 和 Y。

    【讨论】:

      【解决方案2】:

      在 scikit 中不可能,不。

      您询问的是 x 和 y 的生成模型或联合模型。如果您拟合这样的模型,您可以推断分布 p(x, y) 或条件分布 p(x | y) 或 p(y | x)。朴素贝叶斯是最流行的生成模型,但您将无法使用 scikit 的版本进行上述推理。除了琐碎的问题之外,它还会对任何事情产生错误的估计。拟合好的连接模型比一个变量的条件模型要困难得多。

      【讨论】:

        猜你喜欢
        • 2023-03-09
        • 2013-05-31
        • 2016-10-29
        • 2015-03-19
        • 2022-07-19
        • 1970-01-01
        • 2019-06-05
        • 2015-03-05
        • 2020-06-23
        相关资源
        最近更新 更多