Я боролся с этой проблемой с моим MSE, предсказывая с регрессией. Я столкнулся с той же проблемой с различными регрессионными моделями, которые я пытался построить.
Проблема в том, что мое MSE огромно. 83661743,99, если быть точным. Мой квадрат R равен 0,91, что не представляется проблематичным c.
Я вручную реализовал функцию стоимости и градиентное снижение, выполняя курсовую работу в классах Эндрю Нг в Стэнфордском ML, и у меня есть функция разумной стоимости; но когда я пытаюсь реализовать это с помощью SKLearn lib, MSE становится чем-то другим. Я не знаю, что я сделал неправильно, и мне нужна помощь, чтобы проверить это.
Вот ссылка на набор данных, который я использовал: https://www.kaggle.com/farhanmd29/50-startups
Мой код:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
from sklearn.preprocessing import LabelEncoder, StandardScaler
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error
from sklearn.linear_model import LinearRegression
df = pd.read_csv('50_Startups.csv')
#checking the level of correlations between the predictors and response
sns.heatmap(df.corr(), annot=True)
#Splitting the predictors from the response
X = df.iloc[:,:-1].values
y = df.iloc[:,4].values
#Encoding the Categorical values
label_encoder_X = LabelEncoder()
X[:,3] = label_encoder_X.fit_transform(X[:,3])
#Feature Scaling
scaler = StandardScaler()
X = scaler.fit_transform(X)
#splitting train and test
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.33, random_state=0)
#Linear Regression
model = LinearRegression()
model.fit(X_train,y_train)
pred = model.predict(X_test)
#Cost Function
mse = mean_squared_error(y_test,pred)
mse