多元线性回归
前言
在回归分析中,如果有两个或两个以上的自变量,就称为多元回归。事实上,一种现象常常是与多个因素相联系的,由多个自变量的最优组合共同来预测或估计因变量,比只用一个自变量进行预测或估计更有效,更符合实际。因此多元线性回归比一元线性回归的实用意义更大。
多元线性回归模型如下:
y = b0 + b1x1 + b2x2 + b3x3 + ... + bnxn
相关概念看下图⏬
补充:
关于向前/向后选择
“向前”和“向后”:向前是事先用一步一步的方法筛选自变量,也就是先设立门槛。称作“前”。而向后,是先把所有的自变量都进来,然后再筛选自变量。也就是先不设置门槛,等进来了再一个一个淘汰。
Step0: 开撸代码
文件下载地址(右键另存为)
简单解释一下各行
·设x1为 R&D Spend:研究与试验发展经费
·设x2为 Administration:事业行管经费
·设x3为 Marketing Spend:营销经费
·设x4为 State:州
·设y为 Profit:利润
假设变量之间存在线性关系:
y= b0 + b1x1 + b2x2 + b3x3 + b4x4
我们用机器学习来寻找这个关系,就得到了如何通过经费支出和地域来预测收益情况。
Let's Go!
Step1: 数据预处理
导入库
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:]
拆分数据集为训练集和测试集
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)
Step2:在训练集上训练多元线性回归模型
from sklearn.linear_model import LinearRegression
regressor = LinearRegression()
regressor.fit(X_train, Y_train)
Step 3: 在测试集上预测结果
y_pred = regressor.predict(X_test)