Day3 《机器学习》第三章学习笔记
这一章也是本书基本理论的一章,我对这章后面有些公式看的比较模糊,这一会章涉及线性代数和概率论基础知识,讲了几种经典的线性模型,回归,分类(二分类和多分类)任务。
3.1 基本形式
给定由d个属性描述的示例 x =(x1;x2;… ;xd),其中xi是x在第i个属性上的取值,线性模型(linear model)试图学得一个通过属性的线性组合来进行预测的函数,即:
f(x) = w1x1 + w2x2 + … + wdxd + b
一般用向量形式写成:
f(x) = wTx + b
其中x =(x1;x2;… ;xd),w和d学得之后,模型就得以确定。
线性模型,形式简单、易于建模,蕴含着机器学习中一些重要的基本思想,许多功能更为强大的非线性模型(nonlinear model)可在线性模型的基础上通过引入层级结构或高维映射而得,此外,由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性(comprehensibility)。例如在西瓜问题中学得“f好瓜(x) = 0.2*x色泽 + 0.5*x根蒂 + 0.3*x敲声 + 1”。
3.2 线性回归
给定数据集 D = {(x1, y1), (x2, y2), … , (xm, ym)},其中xi = (xi1;xi2;… ;xid),yi ∈ R。“线性回归(linear regression)”试图学得一个线性模型尽可能地预测实值输出标记。
线性回归试图学得
我们要去确定w和b,在2.3节介绍过,均方误差(2.2)是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即:
w*, b* 表示w和b的解。
均方误差,有非常好的几何意义,对应了常用的欧几里得距离或简称“欧氏距离(Euclidean method)”,在线性回归中,最小二乘法就是试图找到一条直线,使所有样本到直线上的欧式距离之和最小。
求解w和b使最小化的过程,叫做线性回归模型的最小二乘“参数估计(parameter estimate)”,然后E(w, b)分别对w和b求导,得到:
然后令上面两个式子为零,求得w和b最优解的闭式(closed-form)解:
其中 为x的均值。
更一般的,数据集D,样本由d个属性描述,此时我们试图学得:
这称为“多元线性回归(multivariate linear regression)”(这部分涉及公式教繁,线性代数知识具体推导书上)
我们希望线性模型的预测值逼近真实标记y时,就得到了线性回归模型,为便于观察,写作:
我们要让输出标记y在指数尺度上变化,可做变化:
这就是“对数线性回归(log-linear regression)”,它实际上是在试图让逼近y,下图很明了:
更一般的,考虑单调可微函数g(*),令:
这样得到的模型称为“广义线性模型(generalized linear model)”,其中函数g(*),称为“联系函数(link function)”。显然,对数线性回归是广义线性模型在g(*) = ln(*)时的特例。
3.3 对数线性回归
考虑二分类任务,其输出标记y∈{0, 1},而线性回归模型产生的预测值 是实值,于是,我们需将实值转换为0/1值,最理想是“单位阶跃函数(unit-step function)”
即若预测值z大于零就判为正例,小于零就判为反例,预测值为临界值零则可任意判别,如下图:
对数几率函数(logistic function)是这样一个常用的替代函数:
将对数几率函数作为g-(*)带入,得:
整理一下:
若将y视为样本x作为正例的可能性,则1-y是其反例可能性,两者比值:
称为“几率(odds)”,反映了样本x作为正例的相对可能性,然后对几率取对数得“对数几率(log odds,也称logit)”:
由此看出,实际上面在用线性回归模型的预测结果去逼近真实标记的对数几率,因此,其对应的模型称为“对数几率回归(logistic regression,也称logit regression)”。要注意的是,虽然它的名字是“回归”,但实际上确实一种分类学习方法。
3.4 线性判别分析
线性判别分析(Linear Discriminant Analysis,简称LDA)是一种经典的线性学习方法,在二分类问题上最早由[Fisher, 1936]提出,所以也叫做“Fisher判别分析”。
LDA的思想非常朴素:给定训练样例集,设法将样例投影到一条直线上,使得同类样例的投影点尽可能接近、异类样例的投影点尽可能远离,下面这个图就一目了然:
后续推导过程在书上。
3.5 多分类学习
现实中常见遇到多分类任务。有些二分类学习方法可直接推广到多分类。但多数情况下,要基于一些基本策略,利用二分类学习器来解决多分类问题。
不失一般性,考虑N个类别C1, C2, … , CN,多分类学习的基本思路是“拆解法”,即将多分类任务拆分为若干个二分类任务求解。最经典的拆分策略有三种:“一对一(One vs. One,简称OvO)”、“一对余(One vs. Rest,简称OvR)”和“多对多(Many vs. Many,简称MvM)”。
3.6 类别不平衡问题
(阅读后续章节,待续)
Day3 《机器学习》第三章学习笔记的更多相关文章
- 《Linux命令行与shell脚本编程大全》 第三章 学习笔记
第三章:基本的bash shell命令 bash程序使用命令行参数来修改所启动shell的类型 参数 描述 -c string 从string中读取命令并处理他们 -r 启动限制性shell,限制用户 ...
- 《Linux内核设计与实现》第三章学习笔记
第三章 进程管理 姓名:王玮怡 学号:20135116 一.进程 1.进程的含义 进程是处于执行期的程序以及相关资源的总称,程序本身并不是进程,实际上就是正在执行的代码的实时结果.Linux内核通 ...
- linux第三章学习笔记
第三章 进程管理 进程是Unix操作系统抽象概念中最基本的一种. 进程管理是所有操作系统的心脏所在. 一.进程 1. 进程是处于执行期的程序.除了可执行程序代码,还包括打开的文件.挂起的信号.内核内部 ...
- 20135202闫佳歆--week6 课本第三章学习笔记
第三章 进程管理 一.进程 1.进程 进程就是处于执行期的程序. 进程就是正在执行的程序代码的实时结果. 进程是处于执行期的程序以及相关的资源的总称. 进程包括代码段和其他资源. 2.线程 执行线程, ...
- Day2 《机器学习》第二章学习笔记
这一章应该算是比价了理论的一章,我有些概率论基础,不过起初有些地方还是没看多大懂.其中有些公式的定义和模型误差的推导应该还是很眼熟的,就是之前在概率论课上提过的,不过有些模糊了,当时课上学得比较浅. ...
- Day1 《机器学习》第一章学习笔记
<机器学习>这本书算是很好的一本了解机器学习知识的一本入门书籍吧,是南京大学周志华老师所著的鸿篇大作,很早就听闻周老师大名了,算是国内机器学习领域少数的大牛了吧,刚好研究生做这个方向相关的 ...
- 《javascript高级程序设计》第三章学习笔记
Undefined类型 该类型只有一个值,即undefined. 对未初始化的变量和未定义的变量,用typeof检测,都会返回'undefined' Null类型 该类型只有一个值,null.并且从逻 ...
- Mudo C++网络库第三章学习笔记
多线程服务器的适用场合与常用编程模型 进程间通信与线程同步; 以最简单规范的方式开发功能正确.线程安全的多线程程序; 多线程服务器是指运行在linux操作系统上的独占式网络应用程序; 不考虑分布式存储 ...
- 《Linux内核设计与实现》 第三章学习笔记
一.进程 1.进程就是处于执行期的程序(目标码存放在某种存储介质上).但进程并不仅仅局限于一段可执行程序代码,通常进程还要包含其他资源.执行线程,简称线程(thread),是在进程中活动的对象. 2. ...
随机推荐
- EBS 系统标准职责定义MAP
ERP的相关职责 Responsibility Name(职责) Application(应用) Responsibility Key(关键字) Data Group(数据组) M ...
- Vim编译器的常用使用方法与技巧
vim操作 插入模式 命令行模式 末行模式 命令行模式 -> 插入模式 i ---> 在当前光标的前一个插入 I ---> 在行首插入 ...
- Android NFC技术(三)——初次开发Android NFC你须知道NdefMessage和NdefRecord
Android NFC技术(三)--初次开发Android NFC你须知道NdefMessage和NdefRecord 这最近也是有好多天没写博客了,除了到处张罗着搬家之外,依旧还是许许多多的琐事阻碍 ...
- gradle构建android项目详解
1.用Gradle构建 1.1 工程结构 如图所示,这是一个不能更普通的Android的Gradle工程了. 根目录下面的settings.gradle当中主要是用来include子模块的,比如我们这 ...
- objective-c中线程编程一例
/* print with threads : print every file's first n char contents under the path that pass to this pr ...
- SharePoint 添加BCD菜单
前言:在SharePoint中,我们常见的操作就是添加我们的自定义BCD菜单,下面,简单介绍下添加自定义BCD菜单的操作.主要介绍两种熟悉的方法,一种通过xml方式,另一种是通过js的方式. 环境:S ...
- SDWebimage的原理和使用机制
对于ASIHttp请求和AFNetworking请求都有关于图片缓存机制的使用,但是相对于专注运用在图片使用的SDWebimage来说,又有不一样的使用效果,最主要的体现在缓存数据的转换. SDWeb ...
- asp.net 下的中文分词检索工具 - jieba.net
jieba是python下的一个检索库, 有人将这个库移植到了asp.net 平台下, 完全可以替代lucene.net以及盘古分词的搭配 之所以写这个, 其实是因为昨天面试时, 被问到网站的关键字检 ...
- async & await 异步编程的一点巧方法
await 关键字不会创建新的线程,而是由Task任务或是FCL中的xxxAsync等方法创建的线程,而且这里创建的线程都是基于线程池创建的工作线程,属于后台线程. await关键字会阻塞/暂停调用它 ...
- 如何通过jQuery获取一个没有定高度的元素---------的自适应高度(offsetHeight的正确使用方法)
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...