machine learning 机器学习入门(二)

本文是在看了andrew ng的斯坦福公开课后写的笔记,有兴趣的网友可以戳这里吴恩达斯坦福公开课

从概率角度解释线性回归

上篇博客说到了线性回归的成本函数以及其拟合方案,但我们为什么要这样来定义成本函数呢?

我们先假设目标变量和自变量满足以下关系

其中\varepsilon ^{i}表示误差项,因为我们在建模时选择的特征种类是有限的,所以有的隐含的特征我们是会忽略的,这种情况不可避免,毕竟我们不可能一开始知道所有的影响因素,所以对\varepsilon ^{i}的假设是合理的。

现在我们已经知道了误差项的存在,但我们不知道它是以什么方式的存在的,从泛型的角度考虑,所有自然界中未考虑到的因素的叠加一般为独立同分布且近似于高斯分布(也称正态分布),所以我们可以假设\varepsilon ^{(i)} ∼ N (0, \sigma ^{2}),表示该误差项满足均值为0,方差为\sigma ^{2},即:

代入替换\varepsilon ^{(i)},所以可得到以下关系:

p(y^{(i)}|x^{(i)};\theta) 表示的是这是一个对于给定 x^{(i)} 的 y^{(i)} 的分布,用 θ 进行了参数化,y^{(i)} | x^{(i)}; θ ∼ N (θT x^{(i)}, σ2)。

给定一个 X 为设计矩阵(design matrix),包含了全部x^{(i)},然后再给定 θ,那么y^{(i)}的分布是什么?数据的概率以p (Y|X; θ) 的形式给出。在θ取某个固定值的情况下,这个等式通常可以看做是一个Y的函数(也可以看成是 X 的函数)。当我们要把它当做 θ 的函数的时候,就称它为 似然函数(likelihood function):

从概率的角度来说,似然函数就是给定参数θ后,模型估计出来的y值的准确概率。

对于该式子可以化为写为下面的形式:

一般来说,似然函数表示为各个y^{(i)}的条件概率的乘积,m代表样本的总数,似然函数这个概念在机器学习中是个较为重要的概念。有兴趣的可以去看看概率论里面的说明。

已经知道似然函数后,我们要去选择关于参数θ的最佳猜测,也就是要使我们的似然函数L(θ)达到最大值,即得到最概率中的最大似然。为了数学运算方便,我们对似然函数取对数。

所以对上面的式子求最大值也就相当于对结果中的求最小值

可以发现,其实这就是我们之前的成本函数,所以这就是我们采用这个形式的成本函数的理由

过拟合和欠拟合

看出来这个数据的趋势并不是一条严格的直线那么这次不用直线,而增加一个二次项,用 y=\theta_{0}+\theta_{1}x+\theta_{2}x^{2} 来拟合。(看中间的图) 很明显,我们对特征补充得越多,效果就越好。不过,增加太多特征也会造成危险的:最右边的图就是使用了五次多项式来进行拟合。看图就能发现,虽然这个拟合曲线完美地通过了所有当前数据集中的数据,但我们明显不能认为这个曲线是一个合适的预测工具,比如针对不同的居住面积 x 来预测房屋价格 y。先不说这些特殊名词的正规定义,咱们就简单说,最左边的图像就是一个欠拟合(under fitting)的例子,比如明显能看出拟合的模型漏掉了数据集中的结构信息;而最右边的图像就是一个过拟合(over fitting)的例子。(在本课程的后续部分中,当我们讨论到关于学习理论的时候,会给出这些概念的标准定义,也会给出拟合程度对于一个猜测的好坏检验的意义。)

局部加权线性回归(LWR)

一般来说有有两类算法,如下图

之前说的都是参数学习算法的实例,而对于非参数学习算法,我们以局部加权线性回归举例

对于一些模型,可能本身规律并不是一条直线,可能是一条类似于二次函数这样的曲线,并不是一个线性的关系,所以这个时候按照之前的算法我们只能自己预估模型,用二次或者三次的模型函数去套,所以具有很大的误差。对于这种情况,我们采用局部加权回归线性回归进行模型搭建

在原始版本的线性回归算法中,要对一个查询点 x 进行预测,比如要衡量 h(x),要经过下面的步骤:

1. 使用参数 θ 进行拟合,让数据集中的值与拟合算出的值的差值平方(y^{(i)}-\theta^{T}x^{i})^{2} 最小(最小二乘法的思想);

2. 输出 θT x 。

而在加权回归线性回归中

1. 使用参数 θ 进行拟合,让加权距离w^{(i)}(y^{(i)}-\theta^{T}x^{i})^{2}最小;

2. 输出 \theta^{T}x。 

这里的w^{(i)}表示非负的权值项

划重点:由上式子可以看出,随着x离当前数据点x^{(i)}越来越远,w^{(i)}负效应的就越大,总体来看,w^{(i)}造成的抑制作用就更大,简而言之,这里的加权项就是在当前数据点的周围求出最贴近当前点附近的一个变化趋势,也就是做切线,随着一次次这样的做切线的操作,最终就能将所有数据点的变化趋势拟合出来。而这里的\tau的作用就是控制权值下降的速率。

但这个模型也有一些缺点,首先是容易过拟合,其次这个模型代价很高。

so cool!

发布了23 篇原创文章 · 获赞 21 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/qq_38440882/article/details/83018760
今日推荐