多元线性回归
多元线性回归是想在简单线性回归的基础上,建立两个或者两个以上的解释变量与反应变量之间的关系。它的步骤和一元线性回归相似。
四个假设条件
线性关系:要求解释变量与反应变量之间是是线性关系。
方差齐性:保证方差的均匀性
残差正太性:残差服从正太分布
多重共线性:假设个解释变量之间没有多重共线性
逐步回归:
不一定每一个变量与反应变量的相关性都十分高,当变量太多时,可以使用逐步回归来筛选变量。
“假”变量的处理:
对于分类变量可以进行编码。以及改进多元回归模型,使之能预测分类数据。
setp 1:数据预处理
1、导入必须的包 pandas、numpy、matplot、sklearn
2、导入数据集 read_csv()
3、进行数据清洗(异常值处理)
4、处理"假"数据(如果有必要)
5、特征缩放(和简单线性回归相同)
import pandas as pd
import numpy as np
dataset = pd.read_csv("50_Startups.csv")
X = dataset.iloc[:,:-1].values
Y = dataset.iloc[:,4].values
from sklearn.preprocessing import LabelEncoder,OneHotEncoder
labelencoder = LabelEncoder()
X[:,3]=labelencoder.fit_transform(X[:,3])
onehotencoder = OneHotEncoder(categorical_features=[3])
X = onehotencoder.fit_transform(X).toarray()
X =X[:,1:]#变成数据框格式
setp 2:训练模型
1、导入必须的类 LinerRegression从 sklearn.linear_model
2、数据集分割
3、创建回归模型对象 regressor 从 LinearRegression类
4、使用 fit()来训练模型
from sklearn.model_selection import train_test_split
X_train,X_test,Y_train,Y_test = train_test_split(X,Y,test_size=0.2,random_state=0)
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train,Y_train)
setp 3:预测结果
1、使用 predict()预测结果
y_pred = regressor.predict(X_test)
import matplotlib.pyplot as plt
plt.scatter(Y_test,y_pred)