当我使用下面的代码时,一切正常,并且得到漂亮的图形。
# Model
f = np.polyfit(df[feature], y, order)
p = np.poly1d(f)
print(p)
# Visualisation
def PlotPolly(model, independent_variable, dependent_variable, Name):
x_new = np.linspace(df[feature].min(), df[feature].max(), 100)
y_new = model(x_new)
plt.plot(independent_variable, dependent_variable, '.', x_new, y_new, '-')
plt.title('Polynomial Fit')
ax = plt.gca()
ax.set_facecolor((0.898, 0.898, 0.898))
fig = plt.gcf()
plt.xlabel(Name)
plt.ylabel(target)
plt.show()
plt.close()
PlotPolly(p, X, y, feature)
但是当我使用sklearn定义模型时,我似乎无法绘制图形
# Model
from sklearn.preprocessing import PolynomialFeatures
f = PolynomialFeatures(degree = 4)
p = f.fit_transform(X)
m = LinearRegression()
m.fit(p, y)
这样定义的模型似乎有效。 但是下面的代码只能正确绘制红点。蓝线到处都是。要使其正常工作,我需要在下面的代码中进行哪些更改?如果需要此信息,我的变量将以以下格式定义: X = df [[feature]] y = df [target]
plt.scatter(X, y, color = 'red')
plt.plot(X, m.predict(f.fit_transform(X)), color = 'blue')
plt.title('Truth or Bluff (Polynomial Regression)')
plt.xlabel('Position level')
plt.ylabel('Salary')
plt.show()