【机器学习基础】将回归模型用于分类问题
来源:互联网 发布:数码兽数据库 编辑:程序博客网 时间:2024/05/01 13:47
线性模型回顾
我们回顾一下之前的三种线性模型,它们的共同点是都要对输入的数据x做一个加权的分数s。
下图表示了这三种不同的线性模型的表示方式、误差函数和求解最小的Ein的方法。
这里可以看出,PLA算法这种线性分类模型,在求解Ein的时候是很困难的,相对而言,线性回归和logistic回归都有各自求解Ein的方法,那么我们能不能用这两种回归的计算方法来帮助求解线性分类问题的Ein呢?
误差函数的比较
接下来,我们将这三个方法的误差函数进行一下变形,把y和s凑在一起,方便我们后面的分析。这里ys表示分类的正确性分数(correctness score),这个值是正的说明是同号的,并且这个值越大越好。
我们可以将误差函数画出来,将cross-entropy的误差函数乘以一个常数,我们可以得到他们之间的关系,故均方误差和交叉熵误差都可以做线性分类的误差函数的上限。
我们可以得到这三个误差函数的大小关系,这就表示我们可以用线性回归和logistic回归来求解线性分类的参数,这两种方法的优点是方便对误差函数求解优化问题,缺点是它们在特定的区域都存在过于松垮的上限。
多元分类
一对多法(One-Versus-ALL,OVA)
如果对于多元分类的问题,我们该如何用二元分类的方法进行扩展呢?
如下图所示的例子,我们可以选一个类别,比如正方形作为正例,其他的数据都作为负例,这样我们可以将该类和其他类有效的分开。这样我们就可以将区域进行有效的划分,如图,可以划分成9个区域,但是我们同时发现,在画叉的区域并不是划分为一个类别,有可能属于两个类别。中间的区域还会被所有分类器都判定为负例。
为了解决这个问题,我们可以尝试用logistic回归的方法,不是明确将数据实例硬性分开,而是给出一个软性的类别,即给出该区域实例所属类别的概率,这样某个实例具体的所属类别是其最大概率的类别。
下面给出这种一对多的方法的具体步骤:
这个方法的优点是快速有效,缺点是当类别数目很大时,所有的假设都会将数据归为负例,使得效果不理想。
一对一法(One-Versus-One,OVO)
还有一种用于多元分类的方法是一对一法。
我们可以选取一个类别与其它任意一个类别进行分类(故名一对一法),比如4个类别的情形,会产生6个线性分类器。
那么,当要预测某个数据实例的所属类别时,可以得到这6个分类器预测的类别,将这些类别进行投票,将投票数最多的类别作为最终输出的类别。
这个方法的优点是有效率,不同于一对多法(OVA),一对一法训练时是将任意两个类别的数据构建分类的,而一对多法是将所有数据用来构建一个分类器的。
缺点是要计算O(K^2)这么多的w,这就需要更多的存储空间、更长的预测时间和训练。
参考资料
机器学习基石课程,林轩田,台湾大学
转载请注明作者Jason Ding及其出处
Github主页(http://jasonding1354.github.io/)
CSDN博客(http://blog.csdn.net/jasonding1354)
简书主页(http://www.jianshu.com/users/2bd9b48f6ea8/latest_articles)
- 【机器学习基础】将回归模型用于分类问题
- 【机器学习基础】将回归模型用于分类问题
- 机器学习基础(二十一)—— 分类与回归、生成模型与判别模型
- 机器学习基础:分类vs回归
- 机器学习-回归及分类问题总结
- 【机器学习算法模型】分类算法——logistic回归
- 机器学习——线性模型之回归与分类
- scikit-learn 回归基础 分类:机器学习Sklearn
- 机器学习-逻辑回归-分类
- 机器学习中的回归(regression)与分类(classification)问题
- 机器学习基础(二)多元线性回归模型
- 机器学习基础(三)Logistic回归模型
- 机器学习----逻辑回归模型及求解过程[基础篇]
- 机器学习-广义回归模型
- 机器学习之回归模型
- 机器学习----回归问题
- 【机器学习】SVM学习(六):将SVM用于多类分类
- 机器学习经典算法详解及Python实现--CART分类决策树、回归树和模型树
- mysql相似于oracle的to_char() to_date()方法
- 堆的调试
- 忽略了导热硅脂等于祸害电脑
- C#数据类型
- JAVASE基础-day15(集合之List集合)
- 【机器学习基础】将回归模型用于分类问题
- Atom 在 linux 下安装有几率侧边栏默认显示在右侧,移动到左侧的设置方法
- [引用区别] c++中引用与java中引用区别 (转)
- Win7 32位 VS2012 不明原因的崩溃
- java实现1到n所有质数
- Scrapy+Mongodb爬取数据
- docker安装
- Tomcat配置优化经验
- 数据库的读写分离