如何用scikit学习高斯/多项式回归



scikit learn是否提供了使用高斯或多项式内核执行回归的便利?我看了API,没有看到任何。有没有人在scikit学习的基础上构建了一个包来实现这一点?

理论

多项式回归是线性回归的一个特例。关于如何选择功能的主要思想。考察具有两个变量的多元回归:x1x2。线性回归如下所示:y = a1 * x1 + a2 * x2.

现在你想要一个多项式回归(让我们做2次多项式)。我们将创建一些附加功能:x1*x2x1^2x2^2。因此,我们将得到您的"线性回归":

y = a1 * x1 + a2 * x2 + a3 * x1*x2 + a4 * x1^2 + a5 * x2^2

这很好地表明了维度的一个重要概念诅咒,因为新特征的数量随着多项式次数的增长比线性增长快得多。你可以在这里看看这个概念。

使用scikit进行练习学习

你不需要在scikit中完成所有这些。多项式回归已经在那里可用(在0.15版本中。请在此处查看如何更新)。

from sklearn.preprocessing import PolynomialFeatures
from sklearn import linear_model
X = [[0.44, 0.68], [0.99, 0.23]]
vector = [109.85, 155.72]
predict= [0.49, 0.18]
poly = PolynomialFeatures(degree=2)
X_ = poly.fit_transform(X)
predict_ = poly.fit_transform(predict)
clf = linear_model.LinearRegression()
clf.fit(X_, vector)
print clf.predict(predict_)

使用支持向量回归sklearn.svm.SVR并设置适当的kernel(请参阅此处)。

或者安装sklearn的最新主版本,并使用最近添加的sklearn.preprocessing.PolynomialFeatures(请参阅此处),然后再在此基础上使用OLS或Ridge

相关内容

  • 没有找到相关文章

最新更新