Я пытаюсь изобразить среднеквадратичную ошибку моих данных, и у меня есть небольшая трудность, чтобы понять, как это сделать. Я знаю, что вам нужно и "истинное" значение, и "прогнозируемое" значение, чтобы получить значение 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 градусов, где ответ, который он генерирует на графике, не соответствует решению, которое мне дали. Я не уверен, почему это не работает идеально, потому что я думал, что это правильная идея .