一.线性回归—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. 04:sqlalchemy操作数据库 不错
  2. 进击的java(2)
  3. python代码需要背吗-python代码运行需要编译吗
  4. 在Dll中创建对话框并调用
  5. 在ue4制作中容易出现哪些问题_青年鸡在育成期容易出现的问题有哪些呢
  6. eclipse 的help没有Eclipse Marketplace
  7. 转-用qemu-nbd实现mount虚拟硬盘到Host上的功能
  8. [人工智能教程] 人工智能暑期课实践项目建议
  9. Java二进制小数表示_《Java编程的逻辑》笔记9--小数的二进制表示
  10. 百度广告场景大数据治理应用实践
  11. 云服务器之间进行文件转移,windows服务器之间文件如何转移
  12. java运用kmeans算法进行聚类
  13. photoshop修改启动图教程
  14. 编程之美 - 孟岩点评
  15. CSS+DIV三种布局方式
  16. IDEA快捷键CTRL+ALT+L格式化失效
  17. BW顾问进阶:BW服务器访问文件数据源,处理链调度抽取方案
  18. Plug-in org.eclipse.wst.jsdt.ui was unable to load class org.eclipse.wst.jsdt.internal.ui.javaeditor
  19. 精品网址导航主题整站源码 wordpress模板 自适应手机端
  20. 漫画 | 自古深情留不住,总是套路得人心!

热门文章

  1. 安装向导无法创建文件夹
  2. Pyyaml-yaml.load反序列化漏洞
  3. gpu显示off_GPU常见故障及排查方法
  4. 材料科学与工程毕业论文题目【313个】
  5. 大数据专业应该怎么学习
  6. 编程题——Fibonacci数列
  7. 服务器操作系统密码忘记,服务器操作系统密码忘记了
  8. 算法_二叉树_二叉树的最大深度
  9. linux 通过ssh上传文件
  10. 让2010成为我的新纪元