Как построить растущую кривую обучения полиномиальной регрессии - PullRequest
0 голосов
/ 01 марта 2020

Я пытаюсь построить подобранную кривую после использования полиномиальной функции со следующим кодом, но она не получается правильно. Как построить только одну подгоночную кривую?

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()

Click to see the matplotlib plot

1 Ответ

0 голосов
/ 01 марта 2020

Попробуйте:

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()

enter image description here

...