一.线性回归—LR

线性回归是一种监督学习下的线性模型,线性回归试图从给定数据集中学习一个线性模型来较好的预测输出(可视为:新来一个不属于D的数据,我们只知道他的x,要求预测y,D如下表示)。

首先我们还是给定数据集的严格表示(我们这里直接讲多维的线性回归):

即是线性模型,那么我们容易给出目标函数:

用向量的方式来表示目标函数,其中目标函数产生的结果即是我们的输出:

为了便于后文分析,我们将d归并到w中:

现在,输入,目标函数,输出都有了。我们要想要好的预测y,那么我们首先应该在D上f(x)要能够表现的比较满意,即当D中任意一个(xi,yi),将xi带入f(x),最后得出的f(xi)≈yi,当然某些情况除外,比如离群点,这些点可能本身受噪声影响太大,或者本身就是个错误的数据。要衡量f(xi)是否约等于yi,我们可以定义f(xi)与yi之间的均方误差,这种误差非常直观,它实际上也可以看成是欧几里得空间的距离计算。

上述分析是从直观上的结果,我们必须要用代数的方式来表示f(xi)与yi之间的进阶程度;这实际上是对1.1的一个优化问题。即寻找一组(w,b)使得1.1式的值足够小,使用矩阵对1.1式进行表达:

根据线性方程组有解的条件,由于x,y是任意的,因此我们无法判断方程是否有解。分以下情况讨论:

(1)y=wTx满足有解条件,即R(wTx)=R(wTx|y)。此时可以直接解除w。

(2)y=wTx无解,但肯定存在最小二乘解:

此时最终学到的模型为:

二.Logistic回归

对于这个logistic回归,先说两点容易误解的地方:一是他是一种线性模型,针对权向量w的线性模型;二是虽然他的名字带有回归,但他是如假包换的分类算法。Logistic回归实际是在线性回归的基础上引入一个函数将原先的回归转化为分类。

考虑二分类任务:

有了数据集及类别标记,那么我们可以将上文中线性模型的结果与类别label通过某种映射统一起来:

即预测值f(x)>0,label=1;f(x)<0,label=0;这个函数是我们常见的阶跃函数(0.5视为过渡值,这是与单位阶跃函数的唯一区别)。

这个函数可以对我们的计算结果进行分类,但是这个函数非凸非连续,数学性质较差。因此我们可以考虑定义一个与阶跃函数类似,但是既凸又连续的函数。这个函数自然就是我们的sigmoid函数,其定义形式如下:

Sigmoid函数与单位阶跃函数的曲线如图2.1所示:

图2.1

对公式2.1进行推演:

观察公式2.2的对数内部的分数我们容易发现,y与1-y具有很好的性质,即类别上的互补。换句话说,当wTx+b的结果出来之后,我们容易算出右边的对数值只要评定该对数值与0的大小,我们即可进行分类。甚而至于,我们可以将右边对数值视为概率的比值,即wTx+b的结果更倾向于我们将x分入到哪一类。这里开始等价于我们引入了统计机器学习的知识。

我们可将y视为类后验概率密度P(y=1|x),1-y则视为类后验概率密度P(y=0|x)。2.2式可继续推演:

可以解得:

联合概率密度为:

不要忘记,跟线性模型一样,logistic回归在做分类问题,那么一样的需要对数据训练,得到我们最优(或者较优)的模型。也就是我们需要求出w、b这俩参数。我们可以用最大似然法来对w、b的参数进行估计。在这里举个栗子来说明下最大似然法为什么可以对w、b进行参数估计。

栗子:某个男人不幸患了肺癌,现在我毫无征兆的让你判断这个男人是否抽烟,只有是和否没其他答案?我相信只要是个正常人,都会判断这个男人是抽烟的。这其实就是频率学派的最大似然原理。因为我们只有判断这个男人抽烟才能使“该男人患肺癌”这一事件发生的可能性更大。

同样的道理,对公式2.3也是一样的道理。当训练集被采集出来打上label之后,从我们的角度来讲,我们只有使2.3(即x属于其真实label的概率)越高,我们才能达到更好的泛化能力,即通过2.3最大来求w、b。假如2.3很小,即原样本标记就出错了,那么我们也就没有建模的必要了。

对公式2.3取对数就得到似然函数:

采用梯度下降算法可以求解出w、b。梯度下降算法将有专题讲解。

机器学习 - 线性模型相关推荐

  1. 【数学基础】算法工程师必备的机器学习--线性模型(下)

    作者:华校专 作者信息: 华校专,曾任阿里巴巴资深算法工程师.智易科技首席算法研究员,现任腾讯高级研究员,<Python 大战机器学习>的作者. 编者按: 算法工程师必备系列更新啦!继上次 ...

  2. 【数学基础】算法工程师必备的机器学习--线性模型(上)

    作者:华校专 作者信息: 华校专,曾任阿里巴巴资深算法工程师.智易科技首席算法研究员,现任腾讯高级研究员,<Python 大战机器学习>的作者. 编者按: 算法工程师必备系列更新啦!继上次 ...

  3. Python机器学习——线性模型

    最近断断续续地在接触一些python的东西.按照我的习惯,首先从应用层面搞起,尽快入门,后续再细化一 些技术细节.找了一些资料,基本语法和数据结构搞定之后,目光便转到了scikit-learn这个包. ...

  4. 周志华机器学习--线性模型

    系列文章目录 第一章 绪论 第二章 模型评估与选择 第三章 线性模型 第四章 决策树 第五章 支持向量机 第六章 神经网络 第七章 贝叶斯分类器 第八章 集成学习和聚类 文章目录 系列文章目录 一.线 ...

  5. 机器学习-线性模型及广义线性模型

    线性模型(linear model) 线性模型试图学得一个通过属性的线性组合来进行预测的函数,即: ...  (其中;...;为输入属性,;...;和b为模型参数) 向量表示为:   (其中为输入属性 ...

  6. 机器学习——线性模型之Softmax回归

    问:Softmax回归模型是一种典型处理多分类任务的非线性分类模型 答:错误.Softmax回归是线性分类模型.实际上是逻辑回归的拓展,它将逻辑回归的二分类推广到了多分类,用逻辑回归的方法解决多分类问 ...

  7. 机器学习——线性模型学习

    线性回归 线性回归 多元线性回归 对数线性回归 对数几率回归 线性判别分析(LDA) 多分类任务中的LDA 多分类学习 OvR.OvO MvM 线性回归 主要目标确定 如何确定w和b呢?关键在于如何衡 ...

  8. 搜集的一些机器学习和数据挖掘的实践项目

    实战项目方向: 23个机器学习最佳实战项目 里面针对不同的阶段都有提供建议 (1)卷积神经网络:Emojify –使用Python创建自己的表情符号 (2)机器学习线性模型:使用机器学习进行贷款预测 ...

  9. 邱锡鹏教授--神经网络和深度学习(一)

    邱锡鹏教授--神经网络和深度学习(一) 机器学习 线性模型 long time no see-今天开始会把之前或平时的学习笔记记录到这里,有误请大家帮我指正一下,开始冲了!对应的资源我会上传到这里,大 ...

最新文章

  1. 增强型固态硬盘支持人工智能工作负载
  2. 学习,一定是脱“贫”致富的捷径
  3. two+few+arguments+php,PHP5.5 ~ PHP7.2 新特性整理
  4. cpu和memory性能监控
  5. WPF程序模彷Windows7的桌面任务栏
  6. HTML5之美一 --- 转载
  7. Win11显卡fps很低怎么办?Win11显卡fps很低的解决方法
  8. kittito_rosbag入坑教程
  9. [转]java String的经典问题(new String(), String)
  10. [转帖]Mootools源码分析-23 -- Selectors-2
  11. 实例变量,局部变量,全局变量,静态全局变量。
  12. PNG-的IDAT解析
  13. html div虚线背景,聊聊css绘制虚线
  14. FTP Server端的使用
  15. git常用命令(持续更新)
  16. 程序员的键盘使用指南
  17. 酷睿i5 1240p什么水平 i5 1240p参数 i51240p是标压还是低压
  18. 互联网日报 | 2月26日 星期五 | B站月均活跃用户突破2亿;返利网借壳上市获批;理想汽车首次实现季度盈利...
  19. 电脑字体突然变细了:macOS Mojave 在非Retina屏幕下字体太细了怎么办
  20. IT职业教育(3)IT教育的商道

热门文章

  1. Openharmony应用NAPI详解--进阶篇2
  2. 超市收银软件测试自学,超市收银系统测试计划.doc
  3. 【Java】java9的of方法
  4. 一点资讯signature分析
  5. Oracle分区表及分区索引的创建
  6. 「2」线性代数(期末复习)
  7. FL Studio教程之Fruity Blood Overdrive插件
  8. SQLMAP进阶:参数讲解
  9. Ubuntu、stm32下的C程序各变量的分配地址分析
  10. Linux 磁盘分区挂载