线性回归(Linear Regression)

来源:互联网 发布:js为二维数组赋值 编辑:程序博客网 时间:2024/05/16 10:27

线性回归(Linear Regression)

    在统计学中,线性回归(Linear Regression)是利用称为线性回归方程的最小平方函数对一个或多个自变量和因变量之间关系进行建模的一种回归分析。因为自变量和因变量之间关系是线性关系,所以叫做线性回归。这种函数是一个或多个称为回归系数的模型参数的线性组合。只有一个自变量的情况称为简单回归,大于一个自变量情况的叫做多元回归。线性回归模型经常用最小二乘逼近来拟合。

一. 线性回归模型

    我们假设自变量x与因变量y是线性关系。则假设预测输出为:


    模型假定好后,我们把训练数据代入上面的设定模型中,可以通过模型预测一个样本最终值:


其中上式右边第二项表示样本(i)的真实值与预测值的误差。

二. 成本函数(cost function)

    由上述模型,我们使用最小二乘法做成本函数:


我们用极大似然估计来解释为什么用最小二乘法

1.极大似然估计原理

    如果已经知道分布函数的形式,并且知道它服从F分布,但是里面的参数不知道。如果现在又一组样本{X1,X2,...,Xm},则出现这组样本发生的概率为P(X1,X2,...,Xm),且每个Xm(i=1 to n),都满足N分布。由于{X1,X2,...,Xm}为独立取样的,所以样本{X1,X2,...,Xm}发生的概率为:

    此时样本已经发生,则所服从的F分布的参数未知,则我们要既然{X1,X2,...,Xm}已经发生,则我们希望{X1,X2,...,Xm}发生的概率达到最大,也就是说:


此时我们就可以算出参数在什么情况下才能使得{X1,X2,...,Xm}发生的概率最大,这就是极大似然估计的思想。

1.由极大似然估计推导出最小二乘法

    由中心极限定理知,线性回归模型中误差项是独立同分布的,且服从均值为0,方差为某定值的高斯分布。

所以有:



则似然函数即为所有样本出现的概率乘积,即


对似然函数取对数:



要对上式取最大值,就是对上式减号后的那项取最小值,即我们得到最小二乘法的公式:


三. 求解参数Θ




     

    使上式等于零,求得驻点,所以最后得到参数θ为


    当上式括号中的项不可逆时,可以采用逻辑回归中的梯度下降法,或采用如下形式:


四.Python代码实现

from numpy import *def loadData(filename):    dataMat=[]    dataY=[]    fr=open(filename)    for line in fr.readlines():        lineArr=line.strip().split('\t')        dataMat.append([1.0,float(lineArr[0])])        dataY.append([float(lineArr[1])])    return dataMat,dataYdef regression(dataSet,dataY):    theta=(dataSet.T*dataSet).I*dataSet.T*dataY    return thetadataSet,dataY=loadData('E:\\python\\machine_learning\\test3.txt') dataSet=mat(dataSet)dataY=mat(dataY)theta=regression(dataSet,dataY)print(theta)


原创粉丝点击