我正在尝试通过以下代码使用多项式特征来绘制学习曲线,但结果不正确。如何仅绘制单个学习曲线?
import matplotlib.pyplot as plt
import numpy as np
m = 100
X = 6 * np.random.rand(m,1) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m,1)
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
poly_features = PolynomialFeatures(degree=2,include_bias=False)
X_poly = poly_features.fit_transform(X)
lin = LinearRegression()
lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)
plt.scatter(X, Y)
plt.plot(X_poly,Y_pred,color='red')
plt.show()
尝试:
import matplotlib.pyplot as plt
import numpy as np
np.random.seed(42)
m = 100
X = 6 * np.random.rand(m,1) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m,1)
from sklearn.preprocessing import PolynomialFeatures
from sklearn.linear_model import LinearRegression
poly_features = PolynomialFeatures(degree=2,include_bias=False)
X_poly = poly_features.fit_transform(X)
lin = LinearRegression()
lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)
idx = X.ravel().argsort()
plt.scatter(X, Y)
plt.plot(X.ravel()[idx],Y_pred[idx],color='red')
plt.show()