使用scikit-learn预测给定"y"的数据向量"x"?



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

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"one_answers"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]

否。有许多向量(X)可能导致相同的结果(Y),而不是相反。

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

在scikit中不可能,无

你问的是x和y的生成或联合模型。如果你符合这样的模型,你可以对分布p(x,y),或者条件分布p(x|y)或p(y|x)进行推断。Naive Bayes是最流行的生成模型,但使用scikit的版本无法进行上述推断。除了琐碎的问题之外,它还会对任何事情产生糟糕的估计。拟合好的联接模型比给定其他变量的一个变量的条件模型要困难得多。

最新更新