使用 scikit-learn 预测给定 "y" 的数据向量 "x"?
Use scikit-learn to predict data vector "x" given "y"?
使用 Scikit 学习,基本思想(例如回归)是在拟合模型后给定数据向量 "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]
没有。有许多向量 (X) 可能导致相同的结果 (Y),反之亦然。
如果您需要预测一开始用作 X 的数据,您可能会考虑更改 X 和 Y。
在 scikit 中不可能,不。
你问的是 x 和 y 的生成模型或联合模型。如果您适合这样的模型,您可以对分布 p(x, y) 或条件分布 p(x | y) 或 p(y | x) 中的任一个进行推断。朴素贝叶斯是最流行的生成模型,但您无法使用 scikit 的版本进行上述推理。除了微不足道的问题,它还会对任何事情产生错误的估计。在给定其余变量的情况下,拟合好的连接模型比一个变量的条件模型要难得多。
使用 Scikit 学习,基本思想(例如回归)是在拟合模型后给定数据向量 "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]
没有。有许多向量 (X) 可能导致相同的结果 (Y),反之亦然。
如果您需要预测一开始用作 X 的数据,您可能会考虑更改 X 和 Y。
在 scikit 中不可能,不。
你问的是 x 和 y 的生成模型或联合模型。如果您适合这样的模型,您可以对分布 p(x, y) 或条件分布 p(x | y) 或 p(y | x) 中的任一个进行推断。朴素贝叶斯是最流行的生成模型,但您无法使用 scikit 的版本进行上述推理。除了微不足道的问题,它还会对任何事情产生错误的估计。在给定其余变量的情况下,拟合好的连接模型比一个变量的条件模型要难得多。