ML 05、分类、标注与回归
机器学习算法 原理、实现与实践 —— 分类、标注与回归
1. 分类问题
分类问题是监督学习的一个核心问题。在监督学习中,当输出变量$Y$取有限个离散值时,预测问题便成为分类问题。
监督学习从数据中学习一个分类决策函数或分类模型,称为分类器(classifier)。分类器对新的输入进行输出的预测,这个过程称为分类。
分类问题包括学习与分类两个过程。在学习的过程中,根据已知的训练样本数据集利用有效的学习方法学习一个分类器;在分类中,利用学习的分类器对新的输入实例进行分类。
对于训练数据集$(x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)$,学习系统将学习一个分类器$P(Y|X)$或$Y=f(X)$;分类系统通过学到的分类器$P(Y|X)$或$Y=f(X)$对于新的输入实例$x_{N+1}$进行分类,即预测其输出的类标记$y_{N+1}$。
评价分类器性能的指标一般是分类的准确率,其定义是:对于给定的测试数据集,分类器正确分类的样本数与总样本数之比。
对于二分类问题常用的评价指标是精确率(precision)与召回率(recall)。通常以关注的类为正类,其他类为负类,分类器在测试数据集上的预测或正确或不正确,4种情况出现的总数分别记作:
- TP —— 将正类预测为正类的数量;
- FN —— 将正类预测为负类的数量;
- FP —— 将负类预测为正类的数量;
- TN —— 将负类预测为负类的数量;
精确率定义为:
$$P = \frac{TP}{TP+FP}$$
召回率定义为:
$$R = \frac{TP}{TP+FN}$$
此外,还有一个$F_1$值,是精确率和召回率的调用均值,即
$$\frac{2}{F_1} = \frac{1}{P}+\frac{1}{R}$$
$$F_1 = \frac{2TP}{2TP+FP+FN}$$
精确率真和召回率都高时,$F_1$也会高。
许多的机器学习方法可以用来解决分类问题,包括$k$近邻法、感知机、朴素贝叶斯法、决策树、逻辑斯谛回归模型、SVM、adaBoost、贝叶斯网络、神经网络等。
比如一个文本内容分类的例子。文本分类是根据文本的特征将其划分到已有的类中。输入是文本的特征向量,输出是文本的类别。通常把文本中的单词定义为特征,每个单词对应一个特征。单词的特征可以是二值的:如果单词在文本中出现则取值1,否则是0;也可以是多值的,表示单词在文本中出现的频率。形象地,如果“股票”“银行”“货币”这些词出现很多,这个文本可能属于经济类,如果“网球”“比赛”“运动员”这些词频繁出现,这个文本可能属于体育类。
2. 标注问题
标注问题也是一个监督学习问题。可以认为标记问题是分类问题的一个推广。
标注问题的输入是一个观测序列,输出的是一个标记序列或状态序列。也就是说,分类问题的输出是一个值,而标注问题输出是一个向量,向量的每个值属于一种标记类型。
标注问题也可以分为两步:学习和标注两个过程。首先给定一个训练数据集
$$T = (x_1,y_1),(x_2,y_2),\dots,(x_N,y_N)$$
这里,$x_i = (x_i^{(1)},x_i^{(2)},\dots,x_i^{(n)})^T,i = 1,2,\dots,N$是输入观测序列,$y_i = (y_i^{(1)},y_i^{(2)},\dots,y_i^{(n)})^T$是相应的输出标记序列,$n$是序列的长度,对于不同样本可以有不同的值。学习系统基于训练数据集构建一个模型,表示为条件概率分布:
$$P(Y^{(1)},Y^{(2)},\dots,Y^{(n)}|X^{(1)},X^{(2)},\dots,X^{(n)})$$
这里,每一个$X^{(i)}(i=1,2,\dots,N)$取值为所有可能的观测,每一个$Y^{(i)}(i=1,2,\dots,N)$取值为所有可能的标记,一般$n \ll N$。标注系统按照学习得到的条件概率分布模型,对新的输入观测序列找到相应的输出标记序列。具体地,对一个观测序列$x_{N+1} = (x_{N+1}^{(1)},x_{N+1}^{(2)},\dots,x_{N+1}^{(n)})^T$找到使条件概率$P(y_{N+1}^{(1)},y_{N+1}^{(2)},\dots,y_{n+1}^{(n)}|x_{N+1}^{(1)},x_{N+1}^{(2)},\dots,x_{N+1}^{(n)})$最大的标记序列$y_{N+1} = (y_{N+1}^{(1)},y_{N+1}^{(2)},\dots,y_{N+1}^{(n)})^T$。
评价标注模型的指标与评价分类的模型指标一样,常用的有标注准确率、精确率和召回率等。
标注常用的机器学习方法有:隐性马尔可夫模型、条件随机场。
自然语言处理中的词性标注(part of speech tagging)就是一个典型的标注问题:给定一个由单词组成的句子,对这个句子中的每一个单词进行词性标注,即对一个单词序列预测其对应的词性标记序列。
3. 回归问题
回归问题也属于监督学习中的一类。回归用于预测输入变量与输出变量之间的关系,特别是当输入变量的值发生变化时,输出变量的值随之发生的变化。
回归模型正是表示从输入变量到输出变量之间映射的函数。回归问题的学习等价于函数拟合:选择一条函数曲线,使其很好地拟合已知数据且很好地预测未知数据。
回归问题按照输入变量的个数,可以分为一元回归和多元回归;按照输入变量与输出变量之间关系的类型,可以分为线性回归和非线性回归。
回归学习最常用的损失函数是平方损失,在此情况下,回归问题可以由著名的最小二乘法求解。
一个回归学习用于股票预测的例子:假设知道一个公司在过去不同时间点的市场上的股票价格(或一段时间的平均价格),以及在各个时间点之间可能影响该公司股份的信息(比如,公司前一周的营业额)。目标是从过去的数据学习一个模型,使它可以基于当前的信息预测该公司下一个时间点的股票价格。具体地,将影响股价的信息视为自变量(输入特征),而将股价视为因变量(输出的值)。将过去的数据作为训练数据,就可以学习一个回归模型,并对未来股份进行预测。实际我们知道想做出一个满意的股价预测模型是很难的,因为影响股份的因素非常多,我们未必能获得那些有用的信息。
ML 05、分类、标注与回归的更多相关文章
- ML(4)——逻辑回归
Logistic Regression虽然名字里带“回归”,但是它实际上是一种分类方法,“逻辑”是Logistic的音译,和真正的逻辑没有任何关系. 模型 线性模型 由于逻辑回归是一种分类方法,所以我 ...
- 大叔学ML第五:逻辑回归
目录 基本形式 代价函数 用梯度下降法求\(\vec\theta\) 扩展 基本形式 逻辑回归是最常用的分类模型,在线性回归基础之上扩展而来,是一种广义线性回归.下面举例说明什么是逻辑回归:假设我们有 ...
- seaborn(2)---画分类图/分布图/回归图/矩阵图
二.分类图 1. 分类散点图 (1)散点图striplot(kind='strip') 方法1: seaborn.stripplot(x=None, y=None, hue=None, data=No ...
- LR多分类推广 - Softmax回归*
LR是一个传统的二分类模型,它也可以用于多分类任务,其基本思想是:将多分类任务拆分成若干个二分类任务,然后对每个二分类任务训练一个模型,最后将多个模型的结果进行集成以获得最终的分类结果.一般来说,可以 ...
- CS229笔记:分类与逻辑回归
逻辑回归 对于一个二分类(binary classification)问题,\(y \in \left\{0, 1\right\}\),如果直接用线性回归去预测,结果显然是非常不准确的,所以我们采用一 ...
- 【HowTo ML】分类问题->神经网络入门
非线性分类器(Non-linear hypotheses) 为什么使用非线性分类器 我们举几个栗子: 假如我们有一个数据空间如左上角坐标系所看到的,那么我们要的模型须要如右边公式所看到的的预測函数. ...
- 分类,logistic回归
1. 使用回归进行分类 机器学习中分类是指输入一个样本点,输出这个样本点所属的类别,预测的是一个离散值,如类别(1,2). 而回归问题是输入一个样本点,预测一个值,这个值是连续值,可以介于\([1,2 ...
- 分类和逻辑回归(Classification and logistic regression)
分类问题和线性回归问题问题很像,只是在分类问题中,我们预测的y值包含在一个小的离散数据集里.首先,认识一下二元分类(binary classification),在二元分类中,y的取值只能是0和1.例 ...
- 斯坦福CS229机器学习课程笔记 part2:分类和逻辑回归 Classificatiion and logistic regression
Logistic Regression 逻辑回归 1.模型 逻辑回归解决的是分类问题,并且是二元分类问题(binary classification),y只有0,1两个取值.对于分类问题使用线性回归不 ...
随机推荐
- eq相等 ne、neq不相等, gt大于, lt小于 gte、ge大于等于 lte、le 小于等于 not非 mod求模 等
eq相等 ne.neq不相等, gt大于, lt小于 gte.ge大于等于 lte.le 小于等于 not非 mod求模 is [not] div by是否能被某数整除 i ...
- oracle经典书籍推荐 转
很多网友询问如何选择入门书籍,学Oracle有什么好书,这里给出一些常见书籍的介 绍.首先声明,本文只涉及国外作品,因为国内的作品好的极少,大多是拼凑之作. 提到入门学习,我又得搬Tom(Thomas ...
- emmet-vim
最近啊,我投奔了网页的开发,看了一本<head first HTML and CSS>的书,感觉非常不错,然后又配置了一些vim里面用到的插件,现在我把学习到的东西记录下来! 首先,我不会 ...
- [Effective JavaScript 笔记]第49条:数组迭代要优先使用for循环而不是for...in循环
示例 下面代码中mean的输出值是多少? var scores=[98,74,85,77,93,100,89]; var total=0; for(var score in scores){ tota ...
- node.js+websocket实现简易聊天室
(文章是从我的个人主页上粘贴过来的,大家也可以访问我的主页 www.iwangzheng.com) websocket提供了一种全双工客户端服务器的异步通信方法,这种通信方法使用ws或者wss协议,可 ...
- [ruby on rails] 跟我学之(1)环境搭建
环境: ubuntu 12.04 (64bit) 代理: 自己最好弄一个代理. 环境配置指令如下: sudo apt-get update sudo apt-get install curl \cur ...
- 如何用ssh挂载远程目录
如何用ssh挂载远程目录 标签: sshserver服务器linux网络 2011-06-24 10:05 2979人阅读 评论(0) 收藏 举报 版权声明:本文为博主原创文章,未经博主允许不得转载. ...
- object-c 基本数据类型
1.基本数据类型 int float double char 布尔类型 枚举类型 2.对象类型和id类型 就是类类型或协议所声明的指针类型. id类型可以表示任何类型,一般只表示 ...
- schedule CCCallfunc CCCallfuncN CCCallfuncND
schedule(schedule_selector(HelloWorld::step), 1.0f); void HelloWorld::step(float dt) { CCLog("d ...
- 浅谈mysql集群
一.什么是MySQL集群 MySQL集群是一个无共享的(shared-nothing).分布式节点架构的存储方案,其目的是提供容错性和高性能. 数据更新使用读已提交隔离级别(read-committe ...