多变量线性回归
对两个或多个变量与结果之间的关系建模,通过线性关系式(Y= b0+b1X1+b2X2+……+bnXn)来观察数据。
多变量线性回归的步骤与简单线性回归相似,不同之处在于对预测结果的评估。
通过多变量线性回归,可以发现哪个变量对预测结果的影响最大,以及不同变量之间的相互关系。
案例:预测公司收益
一、数据预处理
- 导入库
- 导入数据
- 处理缺失值
- 分类变量编码
- 生成dummy variable
- 数据标准化
import numpy as np
import pandas as pd
df = pd.read_csv('D:\\data\\day3-50_Startups.csv')
X =df.iloc[:,:-1].values
Y =df.iloc[:,-1].values
#分类数据编码
from sklearn.preprocessing import LabelEncoder, OneHotEncoder
le = LabelEncoder()
X[:,3] = le.fit_transform(X[:,3])
#生成dummy variable
ohe = OneHotEncoder(categorical_features = [3])
X = ohe.fit_transform(X).toarray()
X = X[:,1:] #避免Dummy Variable陷阱
#分割数据集
from sklearn.cross_validation import train_test_split
X_train, X_test, Y_train, Y_test = train_test_split(X, Y, test_size=0.2, random_state = 0)
Dummy Variable陷阱:
当两个或多个变量高度相关,通过一个变量可以推测出另一个,即有一个变量是多余的。如,male和female,male为0时即为female,删除一个后亦可通过保留的变量推测出来。
解决Dummy Variable陷阱的方法是删除一个变量。如果有m个变量,在模型中使用m-1个,不属于m-1个变量的即为被删除的变量。
二、用训练集训练模型
from sklearn.linear_model import LinearRegression
lr = LinearRegression()
lr = lr.fit(X_train, Y_train)
三、在测试集上预测结果
Y_pred = lr.predict(X_test)