【发布时间】:2020-12-29 22:05:48
【问题描述】:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.linear_model import LinearRegression
from sklearn.preprocessing import PolynomialFeatures
data=pd.DataFrame(
{"input":
[0.001,0.015,0.066,0.151,0.266,0.402,0.45,0.499,0.598,0.646,0.738,0.782,0.86,0.894,0.924,0.95],
"output":[0.5263157894736842,0.5789473684210524,0.6315789473684206,0.6842105263157897,
0.6315789473684206, 0.7894736842105263, 0.8421052631578945, 0.7894736842105263, 0.736842105263158,
0.6842105263157897, 0.736842105263158, 0.736842105263158,0.6842105263157897, 0.6842105263157897,
0.6315789473684206,0.5789473684210524]})
我有上述数据,其中包括输入和输出数据,我想制作一条适合这些数据的曲线。首先绘制输入和输出值在这里:
我已经制作了这段代码:
X=data.iloc[:,0].to_numpy()
X=X.reshape(-1,1)
y=data.iloc[:,1].to_numpy()
y=y.reshape(-1,1)
poly=PolynomialFeatures(degree=2)
poly.fit(X,y)
X_poly=poly.transform(X)
reg=LinearRegression().fit(X_poly,y)
plt.scatter(X,y,color="blue")
plt.plot(X,reg.predict(X_poly),color="orange",label="Polynomial Linear Regression")
plt.xlabel("Temperature")
plt.ylabel("Pressure")
plt.legend(loc="upper left")
情节是:
但是我没有找到上面的曲线方程(橙色曲线)我怎么能找到呢?
【问题讨论】:
-
由于您使用来自
sklearn的PolynomialFeatures,它会为您完成所有工作,方程将不可见,但您可以认为它是最好的n次多项式方程适合您的数据。 -
@JenilDave 我将使用这个方程通过积分获得阻力,因此必须确定。也许我应该使用 scipy 回归?
-
@ashraful no 我无法通过这种方式找到
-
请发布您用于生成绘图的
degree的确切值(它与您在代码中显示的degree=2不对应,看起来更像degree=7)。跨度>
标签: python machine-learning scikit-learn regression