Как визуализировать линию регрессии при многомерной полиномиальной регрессии?

#python #machine-learning #scikit-learn

#python #машинное обучение #scikit-learn

Вопрос:

Итак, у меня есть этот код, и я получаю хорошую оценку r для моей модели SGD. Единственное, что мне осталось сделать, это визуализировать линию регрессии, и я понятия не имею, как. Вот мой код:

 from sklearn.datasets import make_friedman1
import matplotlib.pyplot as plt
from sklearn.linear_model import SGDRegressor
from sklearn.model_selection import train_test_split
from sklearn.preprocessing import PolynomialFeatures

X_F1, y_F1 = make_friedman1(n_samples = 100,
                           n_features = 7, random_state=0)
poly = PolynomialFeatures(degree=2)
X_train_scale = poly.fit_transform(X_F1)
poly.fit(X_train_scale,y_F1)
X_train, X_test, y_train, y_test = train_test_split(X_train_scale,y_F1, random_state=0)
PolyReg = SGDRegressor(alpha=0.001,max_iter=100000).fit(X_train,y_train)
print ("Intercept for the Polynomial model ",PolyReg.intercept_)
print ("Coefficents for the Polynomial model ",PolyReg.coef_)
print ("R-squared Score (training) = ",PolyReg.score(X_train,y_train))
print ("R-squared Score (test) = ",PolyReg.score(X_test,y_test))
  

Ответ №1:

Что-то в этом роде?

 x = X_test
y = `PolyReg.coef_ * x   PolyReg.intercept_
plt.plot(x, y, '-')
plt.show()
  

замените значения x и y в соответствии с тем, что вы хотите видеть.
Вы также можете добавить точки данных на тот же график, используя что-то вроде:

 plt.plot(x, y_test, ".")
  

Комментарии:

1. Большое спасибо! Но я заметил, что когда я строю линию регрессии вместе со своими наборами данных, все точки идут выше линии. Я новичок в Python, поэтому я не знаю, что вызывает это

2. Ну, я хотел помочь с построением графика. Но понимание данных на вашей стороне 😉 Я имею в виду: замените x и y тем, что вы хотите построить, например, возможно, вы хотите построить данные поезда, а не тест. Возможно, есть ошибка в самой процедуре обучения; Я полагался на то, что вы написали, что коэффициент хороший. В любом случае, теперь, когда вы можете построить график, должно быть полезно понять, что происходит.