小白机器学习中的数学

高斯噪声:最小二乘线性估计的新视角

从平面线性拟合谈起
我们知道,线性回归是最简单的一种数据拟合,说的直白点,我们举平面上的例子来看,平面上有若干个样本点,我们的目标就是去画一条直线去拟合这些样本点。如果你对拟合这两个字还不是吃得很透,我们下面慢慢来介绍。

从高斯噪声的角度看最小二乘

高斯噪声是如何和最小二乘估计联系起来的?也就是换句话说,我们如何从概率的视角去审视最小二乘估计?下面我们来重点介绍这个话题。

我们思考一个问题,通过线性拟合,我们能否让直线精确无误的通过每一个样本点,使得拟合出来的直线的误差为 0?

这种理想的情况在现实当中显然是不可能的,因为样本数据本身是带有噪声的,带有随机性的,这个直观点说,我们看上面那幅图,所有的样本点都围绕着直线上下,在直线附近上下夹杂着这种随机的噪声。那么我们可以这么理解:拟合出来的直线代表了样本数据的确定性,而拟合值和真实值之间的误差,也可以称之为是噪声,则代表了随机性

那么好,这个随机性的噪声我们是不是就可以用符合某个分布的随机变量来描述,没错,这就是我们一开始讲的高斯噪声。

到此处已经豁然开朗,最终我们不就到达了最小二乘法的定义式了吗?二者是不谋而合。因此,从概率的角度来说,最小二乘估计其中隐含了样本噪声服从 0 均值高斯分布的假设。

**

线性回归代码实践

**
最终,我们来快速看一下 Python 当中做线性回归的实现方法,我们借助 sklearn 工具包,实现起来是相当容易的:

from sklearn import datasets
from sklearn import linear_model
from sklearn.metrics import r2_score
from sklearn.datasets import load_boston
boston = load_boston()
from sklearn.model_selection import train_test_split

#获取波士顿房价数据集(506*13)
boston = datasets.load_boston()

#选取一半的数据做训练数据,一半做测试数据
X_train,X_test,y_train,y_test = \
    train_test_split(boston.data,boston.target,test_size=0.5,random_state=33)

#使用最小二乘线性回归进行拟合,导入相应的模块
lr = linear_model.LinearRegression()
lr.fit(X_train, y_train)   #进行线性拟合
y_pred = lr.predict(X_test)#得到预测值集合y_pred

w = lr.coef_               #获得该回该方程的回归系数与截距
w0 = lr.intercept_
print("估计系数w={}:".format(w))
print("估计截距w0={}:".format(w0))
#利用评价指标 r2_score,来评价模型的拟合优度,越接近 1 拟合情况越好
print("拟合优度r2_score={}".format(r2_score(y_test, y_pred)))

运行结果:

估计系数 w=[-1.13886467e-01  5.57751443e-02  3.19967368e-02  4.83656552e+00
 -1.73802992e+01  3.81631385e+00  8.77697010e-03 -1.48553776e+00
  3.16012600e-01 -1.14998706e-02 -8.54089583e-01  8.31673898e-03
 -6.00625497e-01]:
估计截距w0=34.525556152532474:
拟合优度r2_score=0.7206754178645804

结合注释,我们会发现利用 sklearn 的工具做最小二乘法的线性拟合还是相当容易的,最终如我们所愿,样本数据有 13 维特征。

介绍了机器数学知识,假设函数 是 上具有二阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。 假设函数 是 上具有二阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。 假设函数 是 上具有二阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。 假设函数 是 上具有二阶连续偏导数的函数,考虑无约束优化问题: 表示目标函数的极小点。解无约束优化问题一般常用迭代算法,常用的迭代算法有梯度下降法,牛顿法和拟牛顿法。迭代公式为: 其称为搜索方向,称为步长,为第k次迭代后x的值。不同的迭代算法的区别主要在搜索方向的确定上,而如何确定步长是另一个问题,这里不打算介绍。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值