scikit learn是否提供了使用高斯或多项式内核执行回归的便利?我看了API,没有看到任何。有没有人在scikit学习的基础上构建了一个包来实现这一点?
理论
多项式回归是线性回归的一个特例。关于如何选择功能的主要思想。考察具有两个变量的多元回归:x1
和x2
。线性回归如下所示:y = a1 * x1 + a2 * x2.
现在你想要一个多项式回归(让我们做2次多项式)。我们将创建一些附加功能:x1*x2
、x1^2
和x2^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
。