Я пытаюсь построить график среднеквадратичной ошибки моих данных, и мне немного трудно понять, как это сделать. Я знаю, что вам нужно как «истинное» значение, так и «прогнозируемое» значение, чтобы получить mse, но то, как устроен мой проект, довольно запутанно.
У меня есть метод, в котором я создаю модель следующим образом:
def fit_curve(X, y, degree):
poly_features = PolynomialFeatures(degree = degree)
x_poly = poly_features.fit_transform(X)
linreg = LinearRegression()
model = linreg.fit(x_poly, y)
return model
Это возвращает уже обученную модель.
Затем я должен найти среднеквадратичную ошибку для указанной модели. Я не уверен, как я должен это сделать, поскольку модель уже обучена без возврата прогнозируемых значений. Прямо сейчас мой метод, который вычисляет mse:
def mse(X, y, degree, model):
poly_features = PolynomialFeatures(degree = degree)
linreg = LinearRegression()
x_poly = poly_features.fit_transform(X)
linreg.fit(x_poly, y)
y_predict = linreg.predict(x_poly)
mse = mean_squared_error(y_predict, y)
return mse
Я чувствую, что большая часть кода, который я использую в mse
, очень избыточна по сравнению с fit_curve
. К сожалению, в рекомендациях говорится, что мне нужно сделать это так (с mse
, принимающим X
, y
, degree
и model
.
Я думаю, также стоит отметить, что мой текущий mse
работает правильно примерно до 13-14 градусов, когда ответ, который он генерирует на графике, не соответствует решению, которое мне дали. Я не уверен, почему это не работает идеально, потому что я думал, что это была правильная идея.