Jua*_*oto 7 python regression numpy machine-learning scikit-learn
使用scikit-learnPython,我试图将二次多项式曲线拟合到一组数据,以便模型具有形式y = a2x^2 + a1x + a0,an系数将由模型提供.
我不知道如何使用该包来拟合多项式曲线,并且似乎很少有关于如何做的明确参考(我已经看了一会儿).我已经看到了与NumPy做类似事情的这个问题,而且这个问题比我要求的更复杂.
希望一个好的解决方案可以像这样(从我正在使用的线性拟合代码改编的样本):
x = my_x_data.reshape(len(profile), 1)
y = my_y_data.reshape(len(profile), 1)
regression = linear_model.LinearRegression(degree=2) # or PolynomialRegression(degree=2) or QuadraticRegression()
regression.fit(x, y)
Run Code Online (Sandbox Code Playgroud)
我会想象scikit-learn会有这样的设施,因为它很常见(例如,in R,可以在代码中提供拟合公式,并且它们应该能够在这种用例中相互替换).
有什么好方法可以做到这一点,或者我在哪里可以找到有关如何正确执行此操作的信息?
AGM*_*GML 10
可能重复:https://stats.stackexchange.com/questions/58739/polynomial-regression-using-scikit-learn.
是否因某些原因使用scikit-learn来完成这一点至关重要?使用numpy可以非常轻松地执行所需的操作:
z = np.poly1d(np.polyfit(x,y,2))
Run Code Online (Sandbox Code Playgroud)
之后z(x)返回fit的值x.
scikit-learn解决方案几乎肯定只是围绕相同代码的包装器.
我相信萨尔瓦多达利在这里的回答将回答你的问题.在scikit-learn中,从数据构造多项式特征,然后对该扩展数据集运行线性回归就足够了.如果您有兴趣阅读有关它的文档,可以在此处找到更多信息.为方便起见,我将发布Salvador Dali提供的示例代码:
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_)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
17014 次 |
| 最近记录: |