机器学习之线性模型

        机器学习其实就是通过大量数据得到一个数学公式,我们给电脑输入数据,电脑根据得到的公式算出结果。本着先从简单内容开始的原则,我先学习了线性模型,结果线性模型其实挺难,主要是大部分的内容都是公式,涉及到很多高数,线性代数和概率论的知识点。接下来开始正式的介绍。

       首先,我们假设有d个属性描述的示例,X=(x_{1},x_{2},...,x_{d})。那么我们的目的就是要得到一个预测函数:

                                         f(x)=w^{T}X+b       其中w^{T}表示的长度为d的向量。

1. 线性回归

单属性--对应d=1

   给定数据集 D={(x_{1},y_{1}),(x_{2},y_{2}),...,(x_{m},y_{m})},即数据集包括m条数据。我们根据该数据集求出f(x)=w*x+b

既然要求出f(x),那么我们需要一种判断方式,能够判断w和b是最优的。这里我们采用均方差最小时所对应的w和b。这里的均方差反应的是根据我们所得公式算出的结果y与真实的结果之间的误差,这个当然是越小越好。

                   (w^{*},b^{*})=argmin\sum _{i=1}^{m}(f(x_{i})-y_{i})^{2}

 我们令E(w,b)=\sum _{i=1}^{m}(y_{i}-wx_{i}-b)^{2},那么我们要求的是该函数的最小值。二元函数求最小值求偏导(高等数学)即可。

 得出偏导结果:

\frac{\partial E}{\partial w}=2(w\sum _{i=1}^{m}x_{i}^{2}-\sum _{i=1}^{m}(y_{i}-b)x^{T})       \frac{\partial E}{\partial b}=2(wb-\sum _{i=1}^{m}(y_{i}-wx_{i}))

\frac{\partial E}{\partial w}=0=\frac{\partial E}{\partial b},就是二元一次方程组。

得出结果 :

w=\frac{\sum _{i=1}^{m}y_{i}(x_{i}-\bar{x})}{\sum _{i=1}^{m}x_{i}^{2}-\frac{1}{m}(\sum _{i=1}^{m}x_{i})^{2}}              b=\frac{1}{m}\sum _{i=1}^{m}(y_{i}-wx_{i})

多属性--对应d>1

给定数据集D,样本由d个属性描述,共m个样本。

  则我们要求的函数为:                    f(X_{i})=w^{T}X_{i}+b

\hat{w}=(w;b)=(w_{1},w_{2},...,w_{d},b)^{T}

X=\bigl(\begin{smallmatrix} & \\ X_{1}^{T},1 & \\ X_{2}^{T},1 & \\ X_{3}^{T},1 & \\ X_{m}^{T},1 \end{smallmatrix}\bigr)

Y=(y_{1},y_{2},y_{3},...,y_{m})^{T}  表示数据集中y真实的值。

为什么要这么设呢?因为了方便表示f(X_{i})

Y^{'}=X*\hat{w}=\bigl(\begin{smallmatrix} \\ w^{T}x_{1}+b \\ w^{T}x_{2}+b \\ ... \\ w^{T}x_{m}+b \end{smallmatrix}\bigr)=\bigl(\begin{smallmatrix} \\ y^{'}_{1} \\ y_{2^{'}} \\ ... \\ y_{m}^{'} \end{smallmatrix}\bigr)       表示根据函数得出的y的预测值。

 

那么我们要求的就是:

\hat{w}^{*}=argmin(Y-Y^{'})^{T}*(Y-Y^{'})    这个表达式求得是Y-Y^{'}向量的模长。

E=(Y-Y')^{T}*(Y-Y')=(Y-X\hat{w})^{T}*(Y-X\hat{w})

\frac{\partial E}{\partial w}=2X^{T}(X\hat{w}-Y)=0

X^{T}X为满秩矩阵(该矩阵可逆),那么\hat{w}^{*}=(X^{T}X)^{-1}X^{T}Y

X^{T}X不为满秩矩阵(大多数情况),那么对应的解就不唯一,选取哪一个解呢?引入正则化项!!!

 

补充:线性回归并不是仅限于上述表达,可以进行变形。

形如:Y=g(w^{T}X+b) 其中g函数为单调可微函数,称为广义线性模型。

 

2. 对数几率回归

对数几率回归要解决的问题是分类问题(0,1问题)。

简单表述:

y=\begin{cases} 0& \text{ if } z<0 \\ 0.5& \text{ if } z=0 \\ 1& \text{ if } z>0 \\ \end{cases}

这样的函数就能够进行分类问题,但是我们在计算中需要得到一个连续的函数。于是我们近似法。

y=\frac{1}{1+e^{-z}},这样的指数函数,当z大于或小于0时,y会越来越接近0或1。

那当然我们要求的函数肯定不是这个函数,而是与第一节类型相似的函数。

y=\frac{1}{1+e^{-(w^{T}X+b)}}. 进行变形

ln\frac{y}{1-y}=w^{T}X+b,y可以看作X为正例(y=1)的概率,(1-y)可以看作X为负例(y=0)的概率。

怎么理解呢?比如根据X预测y=0.7,那么她到底是正例还是负例呢?我们判断它有70%的概率属于正例。

\frac{y}{1-y}  就是“几率”,加上ln就是“对数几率回归”

ln\frac{y}{1-y}=ln\frac{p(y=1|x)}{p(y=0|x)}=w^{T}X+b                                       

\frac{p(y=1|x)}{p(y=0|x)}=e^{w^{T}X+b}     

又因为 p(y=1|x)+p(y=0|x)=1

解得:

p(y=1|x)=\frac{e^{w^{T}+b}}{1+e^{w^{T}+b}}                  p(y=0|x)=\frac{1}{1+e^{w^{T}+b}}

通过概率论的“极大似然法”来估计参数w和b。

l(w,b)=\sum_{i=1}^{m}ln p(y^{'}_{i}=y_{i}|X_{i};w,b)=y_{i}*\sum_{i=1}^{m}ln p(y^{'}_{i}=y_{i}|X_{i};w,b)+(1-y_{i})*\sum_{i=1}^{m}ln p(y^{'}_{i}=y_{i}|X_{i};w,b)

我们最终的要求是求得w和b使得每个样本属于其真实结果的概率和越大越好。

为了方便,我们令\beta =(w;b)

\beta ^{*}=argmin l(\beta)

这是关于\beta的高阶可导连续凸函数,根据凸优化理论,经典的数值优化算法如梯度下降法,牛顿法可求得最优解。

。。。。。。

 

3. 线性判别分析-LDA

LDA的思想非常简单:给定训练集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近,异类样例投影点尽可能远。

给定数据集D={(x_{i},y_{i})}^{m}_{i=1}   y_{i}=1 or. 0  X_{i},u_{i},\sum. _{i} 分别。。。。。

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值