多元线性回归

原理

相较于简单线性回归,多元线性回归仅仅是特征数从一变成了多,其他的基本上没有变化

  • 注意行为样本,列为特征


    X矩阵的排列示意
  • 基于多元线性回归,对某一个样本X(i),如图


    多元线性回归

    相较于简单线性回归,其横坐标仍然是X(i)但从单个数值变成了一行数值,也就是一个1*n(n为特征数)的矩阵

  • 我们注意到方程和简单线性回归一样,有一个常数,所以我们不妨添加一行X(i=0)


    1
  • 改变之后,我们注意到,这时y_hat与x和seata的关系
    关系
  • 目标不变,仍为使预测值与数据值相差更小,这时我们使用矩阵的表示形式


    目标

    这时我们可以推导出seata的表达式,推导过程这里省略

  • seata的这个表达式被称为正规方程解
  • 注意,假设最初X数据为mn的矩阵,这时Xb为mn+1,seata为n+1*1的矩阵(其实一般而言是不区分Xb和X的)

利用正规方程进行实现

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston=datasets.load_boston()
#波士顿房产数据
x=boston.data
y=boston.target
x=x[y<np.max(y)]
y=y[y<np.max(y)]
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=666)
#实际上这里size默认是0.2
#下面开始训练线性回归模型

X_b = np.hstack([np.ones((len(x_train), 1)), x_train])
theta = np.linalg.inv(X_b.T.dot(X_b)).dot(X_b.T).dot(y_train)

intercept_ = theta[0]#返回截距
coef = theta[1:]#返回theta向量

        
xtest_b=np.hstack([np.ones((len(x_test), 1)), x_test]) 
y_predict=xtest_b.dot(theta)
mse_test=np.sum((y_predict-y_test)**2)/len(y_test)
rsquared=mse_test/np.var(y_test)

其中可也得到截距等参数如图


结果

使用sklearn进行多元线性回归

同样的例子,完全使用sklearn进行编写,这时候我们要注意到,它并没有采用正规化方程的方法,但由于我们是不用知道其底层究竟是如何封装的,所以目前尽管使用就是

import numpy as np
import matplotlib.pyplot as plt
from sklearn import datasets
boston=datasets.load_boston()
#波士顿房产数据
x=boston.data
y=boston.target
x=x[y<np.max(y)]
y=y[y<np.max(y)]
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=666)
#实际上这里size默认是0.2
#下面开始训练线性回归模型
from sklearn.linear_model import LinearRegression
Lin_reg=LinearRegression()
Lin_reg.fit(x_train,y_train)
Lin_reg.score(x_test,y_test)
得到结果

总结

其实在学习的课程里面,关于多元线性回归还有一些对于可解释性等的思考与介绍,有利于我们对于现实模型的理解,这里我不是很想赘述,因为可能我们学习ml,更多用到的可能是后面复杂一些的算法,另外可解释性也是很容易理解的,在实际上手数据之后,相必我们拿到预测结果自己也能有所分析!!!所以内容暂且写到这里吧,以后还有想要增加的内容,我也会自行增加!

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

  • 前言 一元线性回归只是让我们好理解回归这个概念。在实际中特征很少说只有一个。所有就有多元线性回归。 概念 与一元线...
    skullfang阅读 1,945评论 0 5
  • 在统计学10-回归一文中介绍了一元线性回归的概念。假设我们现在有多个解释变量,如何构造多元线性回归模型呢? 第一个...
    赵阳_c149阅读 2,247评论 0 7
  • 概述 之前我们讲了最基本、最简单的一元线性回归算法,本章主要讲解多元线性回归,以及梯度下降、特征缩放和正规方程解等...
    AnuoF阅读 2,291评论 1 1
  • 1. 模型简介 模型思想 多元线性回归(multiple linear regression) 模型的目的是构建一...
    风逝流沙阅读 20,755评论 0 5
  • 陈曦坐在简宁对面,耐心地给简宁调着芝麻酱。 这家德顺祥的羊肉在当地很有名,从公园出来,陈曦提议去吃涮羊肉,说这个天...
    孟婆的碗不空阅读 614评论 9 12

友情链接更多精彩内容