类别不平衡(class-imbalance)

当不同类别的训练样本数目差别很大,则会对学习过程造成困扰。如有998个反例,但正例只有2个。

从线性分类器的角度讨论,用\(y=w^Tx+b\)对新样本\(x\)进行分类时,事实上是在用预测出的\(y\)值与一个阈值进行比较。如通过在\(y>0.5\)时判别为正例,否则为反例。几率\(\frac{y}{1-y}\)则反映了正例可能性与反例可能性之比值。阈值设为0.5表明分类器认为真实正、反例可能性相同。即
\[if\ \frac{y}{1-y}>1\ then\ is\ position\]
当训练集中正、反例数目不同时,令\(m^{+}\)表示正例数目,\(m^-\)表示反例数目。假设训练集是真实样本总体的无偏采样,分类器决策规则为:
\[if\ \frac{y}{1-y}>\frac{m^+}{m^-}\ then\ is\ position\]
需对其预测值进行再缩放(rescaling):
\[\frac{y'}{1-y'}=\frac{y}{1-y}\times \frac{m^-}{m^+}\]
___

Softmax回归模型

是logistic回归模型在多分类问题伤的推广。

适用场景:MNIST手写数字分类。

对于给定的测试输入\(x\),用假设函数针对每一个类别\(j\)估算出概率值\(p(y=j|x)\),即估计\(x\)的每一种分类结果出现的概率。因此,假设函数为:
\[h_\theta(x^{(i)})=\begin{bmatrix}
p(y^{(i)}=1|x^{(i)};\theta)\\
p(y^{(i)}=2|x^{(i)};\theta)\\
\vdots \\
p(y^{(i)}=k|x^{(i)};\theta)
\end{bmatrix}=\frac{1}{\sum_{j=1}^k}\begin{bmatrix}
e^{\theta_1^Tx^{(i)}}\\
e^{\theta_2^Tx^{(i)}}\\
\vdots\\
e^{\theta_k^Tx^{(i)}}
\end{bmatrix}\]

在Softmax回归中,将\(x\)分类为类别\(j\)的概率为:
\[p(y^{(i)}=j|x^{(i)};\theta)=\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}\]

其代价函数为:
\[J(\theta)=-\frac{1}{m}[\sum_{i=1}^m\sum_{j=0}^kI\{y^{(i)}=j\}log\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}]\]
其中,\(I\{\cdot\}\)是示性函数。

对于\(J(\theta)\)的最小化问题,使用迭代的优化算法(梯度下降法、L-BFGS)。经求导,其梯度为:
\[\triangledown _{\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^m[x^{(i)}(I\{y^{(i)}=j\}-p(y^{(i)}=j|x^{(i)};\theta))]\]
其中,\(\triangledown _{\theta_j}J(\theta)\)本身是一个向量,它的第\(l\)个元素\(\frac{\partial J(\theta)}{\partial \theta_{jl}}\)是\(J(\theta)\)对\(\theta_j\)的第\(l\)个分量的偏导数。

每一次迭代,需进行如下的更新:
\[\theta_j:=\theta_j-\alpha \bigtriangledown _{\theta_j}J(\theta),\ \ \ j=1,\cdots,k\]
___

引入权重衰减(weight decay)项

衰减项会惩罚过大的参数值,代价函数为:
\[J(\theta)=-\frac{1}{m}[\sum_{i=1}^m\sum_{j=0}^kI\{y^{(i)}=j\}log\frac{e^{\theta_j^Tx^{(i)}}}{\sum_{l=1}^ke^{\theta_l^Tx^{(i)}}}]+\frac{\lambda}{2}\sum_{i=1}^k\sum_{j=0}^n\theta_{ij}^2\]
其中,\(\lambda>0\),此时代价函数变成严格的凸函数。使用优化算法,得到新函数\(J(\theta)\)的导数:
\[\triangledown _{\theta_j}J(\theta)=-\frac{1}{m}\sum_{i=1}^m[x^{(i)}(I\{y^{(i)}=j\}-p(y^{(i)}=j|x^{(i)};\theta))]+\lambda \theta_j\]
通过最小化\(J(\theta)\),就能实现一个可用Softmax回归模型。


Softmax回归 VS. k个二元分类器

如开发一个音乐分类的应用,需对\(k\)种类型的音乐进行识别。根据类别之间是否互斥来进行选择。

  • 如四个类别的音乐分别为:古典音乐、乡村音乐、摇滚乐、爵士乐。

此时,每个训练样本只会被打上一个标签,应使用类别数\(k=4\)的Softmax回归。

  • 如四个类别的音乐分别为:人声音乐、舞曲、影视原声、流行歌曲。

此时,类别之间不是互斥的。使用4个二分类的logistic回归分类更为合适。

类别不平衡问题和Softmax回归的更多相关文章

  1. 机器学习之线性回归---logistic回归---softmax回归

    在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...

  2. 《转》Logistic回归 多分类问题的推广算法--Softmax回归

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

  3. 从Softmax回归到Logistic回归

    Softmax回归是Logistic回归在多分类问题上的推广,是有监督的. 回归的假设函数(hypothesis function)为,我们将训练模型参数,使其能够最小化代价函数: 在Softmax回 ...

  4. Softmax回归 softMax回归与logistic回归的关系

    简介 在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签  可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分 ...

  5. Softmax回归——logistic回归模型在多分类问题上的推广

    Softmax回归 Contents [hide] 1 简介 2 代价函数 3 Softmax回归模型参数化的特点 4 权重衰减 5 Softmax回归与Logistic 回归的关系 6 Softma ...

  6. 逻辑回归,多分类推广算法softmax回归中

    转自http://ufldl.stanford.edu/wiki/index.php/Softmax%E5%9B%9E%E5%BD%92 简介 在本节中,我们介绍Softmax回归模型,该模型是log ...

  7. 机器学习——softmax回归

    softmax回归 前面介绍了线性回归模型适用于输出为连续值的情景.在另一类情景中,模型输出可以是一个像图像类别这样的离散值.对于这样的离散值预测问题,我们可以使用诸如 softmax 回归在内的分类 ...

  8. Logistic回归(逻辑回归)和softmax回归

    一.Logistic回归 Logistic回归(Logistic Regression,简称LR)是一种常用的处理二类分类问题的模型. 在二类分类问题中,把因变量y可能属于的两个类分别称为负类和正类, ...

  9. Softmax回归(Softmax Regression)

    转载请注明出处:http://www.cnblogs.com/BYRans/ 多分类问题 在一个多分类问题中,因变量y有k个取值,即.例如在邮件分类问题中,我们要把邮件分为垃圾邮件.个人邮件.工作邮件 ...

随机推荐

  1. JDK源码分析(10)之 Hashtable 相关

    本文的目的并不是让你对Hashtable更加了解,然后灵活运用:因为Hashtable的一个历史遗留的类,目前并不建议使用,所以本文主要和HashMap对比,感受同样功能的不同实现,知道什么是好的代码 ...

  2. SpringCloud(2) 服务注册和发现Eureka Server

    一.简介 EureKa在Spring Cloud全家桶中担任着服务的注册与发现的落地实现.Netflix在设计EureKa时遵循着AP原则,它基于REST的服务,用于定位服务,以实现云端中间层服务发现 ...

  3. React-native搭建移动端ios开发环境实践笔记

    开发环境的搭建,按照 https://reactnative.cn/docs/getting-started/ 里面的步骤一步一步来,这里记录下需要注意的几点:1.初始化react-native项目的 ...

  4. Java开发笔记(七)强制类型转换的风险

    编码过程中,不但能将数字赋值给某个变量,还能将一个变量赋值给另一个变量.比如下面代码把整型变量changjiang赋值给整型变量longRiver: // 长江的长度为6397千米 int chang ...

  5. Java开发笔记(十七)各得其所的多路分支

    前面提到条件语句的标准格式为“if (条件) { /* 条件成立时的操作代码 */ } else { /* 条件不成立时的操作代码 */ }”,乍看之下仿佛只有两个分支,一个是条件成立时的分支,另一个 ...

  6. (5)Maven快速入门_5maven聚合与继承_scope依赖范围

    多个maven项目实现统一管理, maven 插件jar继承自父的maven项目.对maven中jar的版本进行管理. 1.创建一个项目来管理多个maven项目 new ----maven Proje ...

  7. mybatis基础(中)

    数据模型分析思路 每张表记录的数据内容 分模块对每张表记录对内容进行熟悉,相当于学习系统需求(功能)的过程 每张表重要的字段设置 非空字段.外键字段 数据库级别表与表之间的关系 外键关系 表与表之间的 ...

  8. react 函数子组件(Function ad Child Component)

    今天学习了react中的函数子组件的概念,然后在工作中得到了实际应用,很开心,那么好记性不如烂笔头,开始喽~ 函数子组件(FaCC )与高阶组件做的事情很相似, 都是对原来的组件进行了加强,类似装饰者 ...

  9. laravel框架使用中错误及解决办法总结

    1.Laravel访问出错错误信息:`Warning: require(/vendor/autoload.php):failed to open stream: No such file or dir ...

  10. 如何在vue单页应用中使用百度地图

    作为一名开发人员,每次接到开发任务,我们首先应该先分析需求,然后再思考技术方案和解决方案.三思而后行,这是一个好的习惯. 需求:本项目是采用vue组件化开发的单页应用项目,现需要在项目中引入百度的地图 ...