如何绘制多项式回归的递增学习曲线
How to plot a increasing learning curve of polynomial regression
我试图在使用以下代码使用多项式特征后绘制拟合曲线,但结果不正确。如何只绘制一条拟合曲线?
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) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m)
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.reshape(-1,1))
lin = LinearRegression()
lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)
idx = X.argsort()
plt.scatter(X, Y)
plt.plot(X[idx],Y_pred[idx],color='red')
plt.show()
我试图在使用以下代码使用多项式特征后绘制拟合曲线,但结果不正确。如何只绘制一条拟合曲线?
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) - 3
Y = 0.5 * X**2 + X + 2 + np.random.randn(m)
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.reshape(-1,1))
lin = LinearRegression()
lin.fit(X_poly,Y)
Y_pred = lin.predict(X_poly)
idx = X.argsort()
plt.scatter(X, Y)
plt.plot(X[idx],Y_pred[idx],color='red')
plt.show()