我一直在用我的 MSE 解决这个问题,同时用回归进行预测。我尝试构建的不同回归模型遇到了同样的问题。
问题是,我的 MSE 是巨大的。确切地说是83661743.99。我的 R 平方是 0.91,这似乎没有问题。
我在 Andrew Ng 的斯坦福 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