【发布时间】:2021-01-28 02:19:36
【问题描述】:
我正在尝试为我的数据创建一条回归曲线,角度为 2 度。当我创建我的图表时,我得到一个有趣的曲折的东西:
但我想将我的数据建模为一条实际曲线,它看起来像散点图的连接版本。
有什么建议/更好的方法吗?
degree = 2
p = np.poly1d(np.polyfit(data['input'],y, degree))
plt.plot(data['input'], p(data['input']), c='r',linestyle='-')
plt.scatter(data['input'], p(data['input']), c='b')
这里的 data['input'] 是一个与 y 维数相同的列向量。
编辑:我也试过这样:
X, y = np.array(data['input']).reshape(-1,1), np.array(data['output'])
lin_reg=LinearRegression(fit_intercept=False)
lin_reg.fit(X,y)
poly_reg=PolynomialFeatures(degree=2)
X_poly=poly_reg.fit_transform(X)
poly_reg.fit(X_poly,y)
lin_reg2=LinearRegression(fit_intercept=False)
lin_reg2.fit(X_poly,y)
X_grid=np.arange(min(X),max(X),0.1)
X_grid=X_grid.reshape((len(X_grid),1))
plt.scatter(X,y,color='red')
plt.plot(X,lin_reg2.predict(poly_reg.fit_transform(X)),color='blue')
plt.show()
【问题讨论】:
-
这能回答你的问题吗? scipy.curve_fit() returns multiple lines
标签: python matplotlib regression curve-fitting polynomials