多元線性回歸是想在簡單線性回歸的基礎(chǔ)上,建立兩個或者兩個以上的解釋變量與反應(yīng)變量之間的關(guān)系。它的步驟和一元線性回歸相似。
四個假設(shè)條件
線性關(guān)系:要求解釋變量與反應(yīng)變量之間是是線性關(guān)系。
方差齊性:保證方差的均勻性
殘差正太性:殘差服從正太分布
多重共線性:假設(shè)個解釋變量之間沒有多重共線性
逐步回歸:
不一定每一個變量與反應(yīng)變量的相關(guān)性都十分高,當變量太多時,可以使用逐步回歸來篩選變量。
“假”變量的處理:
對于分類變量可以進行編碼。以及改進多元回歸模型,使之能預(yù)測分類數(shù)據(jù)。
setp 1:數(shù)據(jù)預(yù)處理
1、導(dǎo)入必須的包 pandas、numpy、matplot、sklearn
2、導(dǎo)入數(shù)據(jù)集 read_csv()
3、進行數(shù)據(jù)清洗(異常值處理)
4、處理"假"數(shù)據(jù)(如果有必要)
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:]#變成數(shù)據(jù)框格式
setp 2:訓(xùn)練模型
1、導(dǎo)入必須的類 LinerRegression從 sklearn.linear_model
2、數(shù)據(jù)集分割
3、創(chuàng)建回歸模型對象 regressor 從 LinearRegression類
4、使用 fit()來訓(xùn)練模型
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:預(yù)測結(jié)果
1、使用 predict()預(yù)測結(jié)果
y_pred = regressor.predict(X_test)
import matplotlib.pyplot as plt
plt.scatter(Y_test,y_pred)
