首页 > 其他 > 详细

《机器学习(周志华)》笔记--线性模型(1)--凸函数、损失函数、线性模型的基本形式、线性回归、w* 的代码实现

时间:2020-01-30 18:44:29      阅读:117      评论:0      收藏:0      [点我收藏+]

一、预备知识

1、凸函数

  凸函数:对于一元函数f(x),如果对于任意t?[0,1]均满足  f(tx1+(1−t)x2) ≤ tf(x1)+(1−t)f(x2) 。

  凸函数特征:

    (1)凸函数的割线在函数曲线的上方。

    (2)凸函数具有唯一的极小值,该极小值就是最小值。也就意味着我们求得的模型是全局最优的,不会陷入局部最优值。

                 技术分享图片     技术分享图片

         图 1.1.1                                                                                               图 1.1.2

  判断是否为凸函数方法:

  (1)对于一元函数  f(x),我们可以通过其二阶导数  f′′(x)  的符号来判断。如果函数的二阶导数总是非负,即  f′′(x)≥0,则 f(x)是凸函数;例如:f(x)=x2f′′(x) = 2。

  (2)对于多元函数  f(X),我们可以通过其 Hessian矩阵(由多元函数的二阶导数组成的方阵)正定性来判断。如果Hessian矩阵是半正定矩阵,则是f(X)凸函数。例如:f(x,y)=x2+y2

   Hessian矩阵:

                                        技术分享图片

 2、损失函数

  损失函数用来衡量模型拟合程度的好坏,也就是说当模型拟合误差越大的时候,函数值应该比较大,反之应该比较小。因此,我们的目标就是要使损失函数的值最小,这时学习算法就转化为了一个优化问题。

  线性回归的损失函数:均方误差函数

  逻辑回归的损失函数:对数损失函数

  可以证明,这些都是凸函数,找到了损失函数的极值点,就找到了最优解。极值点对应的就是导数为零的点。

 3、导数

   求损失函数需要运用到导数知识。下面列出一些机器学习中常用的求导公式:

                  技术分享图片                     技术分享图片                  技术分享图片

 

二、线性模型的基本形式

  给定由 个属性描述的示例  x={xx; ... x} , 线性模型试图学得一个通过属性的线性组合来进行预测的函数:

      f(x) = w1x+ w2x… + wdx+ b

  一般用向量形式进行表示:

      f(x) = wTx + b

  其中 w={ ww; ... ; w}和 学得之后,模型就得以确定。w 称为权值向量,b 称为偏置,如果只有一个属性,例如,由体重预测身高,f(x) = wx + b,w为斜率,b为截距。

  线性模型形式简单,易于建模,具有很好的解释性。例如:y=0.2x色泽+0.5x根蒂+0.3x敲声+1

  

三、线性回归

 1、简单线性回归

  简单线性回归中,一个变量跟另一个变量的变化而变化。

  那么,到底什么是线性回归呢?如青少年的身高与体重,他们存在一种近似的线性关系:身高/cm = 体重/kg +105 。假如我们将青少年的身高和体重值作为坐标,不同人的身高体重就会在平面上构成不同的坐标点,然后用一条直线,尽可能的去拟合这些点,这就是简单的线性回归。

  简单的线性回归模型如下:

    y = wb

  其中 x表示特征值(如:体重值),w表示权重b表示偏置y表示标签(如:身高值)。

2、多元线性回归

  简单线性回归中,一个变量跟另一个变量的变化而变化,但是生活中,还有很多变量,可能由多个变量的变化决定着它的变化,比如房价,影响它的因素可能有:房屋面积、地理位置等等。如果我们要给它们建立出近似的线性关系,这就是多元线性回归。

  多元线性回归模型如下

      y=w1?x?w2?x2+...wn?xn?
  其中 xi表示第 i个特征值wi表示第 i个特征对应的权重b表示偏置y表示标签

 3、线性回归一般形式

   给定数据集 D = { (x1,y1) , (x2,y2) , ... ,(xm,ym) }, x= { xixi; ... xid },y是连续的量(实数),线性回归试图学得一个线性模型以尽可能准确预测实值输出标记。即

                                  技术分享图片

  其中    技术分享图片 ,为增广向量形式。

                         技术分享图片

  其中 ?=(b;w) ,数据集 表示为一个 m*(d+1) 增广矩阵 X

  损失函数:均方误差,用于衡量真实值与预测值之间的差异,公式如下:

                 技术分享图片

                   技术分享图片

    令   技术分享图片   θ求导得到:

             技术分享图片

  当XTX满秩:   技术分享图片

  其中,X为样本数据构成的× (d+1) 的矩阵,ym维标签列向量,上式即维线性回归的正规方程解。然而,现实任务中 XT是不满秩的,这时就会有多个 w*。

  说明:给定一个包含m个样本的数据集D,xi为第i个样本,每个样本包含d个属性,是一个d维的列向量,yi为第i个样本的标签,在回归任务中,yi是连续的实数。当权值向量w以及偏置确定后,模型就可以确定,这时我们将样本数据xi代入到模型中,就可以可到一个预测值y_hat,可以写成向量形式,其中是增广向量形式,在向量的最左端增加了一个常量1,变成了一个d+1维的行向量,这里1可以看成偏置b的系数,m个样本代入到模型中,可以得到m个预测值,将这些预测值用向量的形式表示为,每一行代表一个样本。w【0】对应的是偏置。

  回归的目标是使得预测值与真实值之间的差异尽量小,这里使用均方误差来衡量二者之间的差异,记作loss,称为损失函数或代价函数。y所有样本的真实值构成的列向量,y_hat为所有样本的预测值构成列向量。我们的目标转化为求loss最小时权值向量w,导数等于0的点对应极值点。

4、loss最小时权值向量w——w* 的代码实现

          XTX满秩时,  技术分享图片

  1、将样本数据转换为增广矩阵形式:

      import nump as np

      ones=np.ones((X.shape[0],1))

      np.hstack((ones,X))

  2、矩阵转置:

      XT=X.T

  3、矩阵相乘:

      XTX=np.dot(XT,X)

  4、矩阵的逆:

      np.linalg.inv(XTX)

 

 

 

《机器学习(周志华)》笔记--线性模型(1)--凸函数、损失函数、线性模型的基本形式、线性回归、w* 的代码实现

原文:https://www.cnblogs.com/lsm-boke/p/12242352.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!