文档章节

关于使用哪种分类算法的总结

天蚕宝衣
 天蚕宝衣
发布于 2017/08/05 08:49
字数 1172
阅读 17
收藏 0
点赞 0
评论 0

尝试将quora上的这个回答翻译了下。第一次翻译,不好之处请见谅。

What are the advantages of different classification algorithms?

以下是我这些年总结的指南

训练有多大?

如果你的训练集很小,高偏差/低方差的分类器(如朴素贝叶斯)比低偏差/高方差的分类器(如K近邻或Logistic回归)更有优势,因为后者容易过拟合。但是随着训练集的增大,高偏差的分类器并不能训练出非常准确的模型,所以低偏差/高方差的分类器会胜出(它们有更小的渐近误差)。

你也可以从生成模型与鉴别模型的区别来考虑它们。

某些分类器的优势

朴素贝叶斯(Naive Bayes, NB)
超级简单,就像做一些数数的工作。如果条件独立假设成立的话,NB将比鉴别模型(如Logistic回归)收敛的更快,所以你只需要少量的训练数据。即使条件独立假设不成立,NB在实际中仍然表现出惊人的好。如果你想做类似半监督学习,或者是既要模型简单又要性能好,NB值得尝试。

Logistic回归(Logistic Regression, LR)
LR有很多方法来对模型正则化。比起NB的条件独立性假设,LR不需要考虑样本是否是相关的。与决策树与支持向量机(SVM)不同,NB有很好的概率解释,且很容易利用新的训练数据来更新模型(使用在线梯度下降法)。如果你想要一些概率信息(如,为了更容易的调整分类阈值,得到分类的不确定性,得到置信区间),或者希望将来有更多数据时能方便的更新改进模型,LR是值得使用的。

决策树(Decision Tree, DT)
DT容易理解与解释(对某些人而言——不确定我是否也在他们其中)。DT是非参数的,所以你不需要担心野点(或离群点)和数据是否线性可分的问题(例如,DT可以轻松的处理这种情况:属于A类的样本的特征x取值往往非常小或者非常大,而属于B类的样本的特征x取值在中间范围)。DT的主要缺点是容易过拟合,这也正是随机森林(Random Forest, RF)(或者Boosted树)等集成学习算法被提出来的原因。此外,RF在很多分类问题中经常表现得最好(我个人相信一般比SVM稍好),且速度快可扩展,也不像SVM那样需要调整大量的参数,所以最近RF是一个非常流行的算法。

支持向量机(Support Vector Machine, SVM)
很高的分类正确率,对过拟合有很好的理论保证,选取合适的核函数,面对特征线性不可分的问题也可以表现得很好。SVM在维数通常很高的文本分类中非常的流行。由于较大的内存需求和繁琐的调参,我认为RF已经开始威胁其地位了。

回到LR与DT的问题(我更倾向是LR与RF的问题),做个简单的总结:两种方法都很快且可扩展。在正确率方面,RF比LR更优。但是LR可以在线更新且提供有用的概率信息。鉴于你在Square(不确定推断科学家是什么,应该不是有趣的化身),可能从事欺诈检测:如果你想快速的调整阈值来改变假阳性率与假阴性率,分类结果中包含概率信息将很有帮助。无论你选择什么算法,如果你的各类样本数量是不均衡的(在欺诈检测中经常发生),你需要重新采样各类数据或者调整你的误差度量方法来使各类更均衡。

但是,更好的数据往往比更好的算法更重要,提取好的特征也需要很大的功夫。如果你的数据集非常大,那么分类算法的选择可能对最后的分类性能影响并不大(所以可以根据运行速度或者易用性来选择)。

如果你很在意分类的正确率,那么你得尝试多种分类器,根据交叉验证的结果来挑选性能最好的。或者,学习下Netflix Prize和Middle Earth, 使用某种集成的方法来组合多个分类器。

© 著作权归作者所有

共有 人打赏支持
天蚕宝衣
粉丝 18
博文 236
码字总数 178069
作品 0
天津
分类算法之邻近算法:KNN(理论篇)

起步 今天介绍另一种分类算法,k邻近算法( ),即 KNN 算法。 概述 Cover 和 Hart 在 1968 年提出了最初的邻近算法,用于解决分类( )的问题。关于这个算法在维基百科中也有介绍:https://zh.w...

weapon ⋅ 2017/12/06 ⋅ 0

KNN的一些总结

什么是KNN算法呢?顾名思义,就是K-Nearest neighbors Algorithms的简称。我们可能都知道最近邻算法,它就是KNN算法在k=1时的特例,也就是寻找最近的邻居。我们从名字可以知道我们要寻找邻居...

ctsm ⋅ 2014/01/19 ⋅ 1

探索推荐引擎内部的秘密,第 3 部分: 深入推荐引擎相关算法 - 聚类(四)

狄利克雷聚类算法 前面介绍的三种聚类算法都是基于划分的,下面我们简要介绍一个基于概率分布模型的聚类算法,狄利克雷聚类(Dirichlet Processes Clustering)。 首先我们先简要介绍一下基于...

东方神剑 ⋅ 2014/11/13 ⋅ 0

Sklearn常用集成算法实践

前言 用Sklearn常用的Ensemble算法对当当热销书评论进行分类实践。 关于集成算法概念可以看这篇文章 总结Bootstraping、Bagging和Boosting 先看一下这篇文章朴素贝叶斯分类算法实践,本文主要...

_Apache ⋅ 2017/12/28 ⋅ 0

AdaBoost & AdaRank

AdaBoost 实习了三个多月,把ML的算法都忘得差不多了,最近写论文用到了AdaBoost和AdaRank,这里重新复习总结了下,主要参考了:http://blog.csdn.net/haidao2009/article/details/7514787 。...

敏事慎言 ⋅ 2015/02/21 ⋅ 3

算法干货----决策树算法中的熵与信息增益

什么是决策树?为什么要用决策树?       决策树是一种二分树,或是多分数。对于大量数据的细分工作有很大帮助。在日常生活中,决策树的算法可谓是每天都在用。小到用户分类,大到辅助决...

bingyang87628 ⋅ 2016/10/09 ⋅ 0

机器学习算法比较

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普...

莫问viva ⋅ 2016/08/31 ⋅ 0

常见机器学习算法比较(转)

机器学习算法太多了,分类、回归、聚类、推荐、图像识别领域等等,要想找到一个合适算法真的不容易,所以在实际应用中,我们一般都是采用启发式学习方式来实验。通常最开始我们都会选择大家普...

超人学院 ⋅ 2016/07/11 ⋅ 1

关于机器学习,你需要知道的三件事!

机器学习是一种数据分析技术,让计算机执行人和动物与生俱来的活动:从经验中学习。机器学习算法使用计算方法直接从数据中“学习”信息,而不依赖于预定方程模型。当可用于学习的样本数量增加...

【方向】 ⋅ 03/01 ⋅ 0

超全数据挖掘面试笔试题(附答案)

一、单选题(共80题) ( D )的目的缩小数据的取值范围,使其更适合于数据挖掘算法的需要,并且能够得到和原始数据相同的分析结果。 A.数据清洗 B.数据集成 C.数据变换 D.数据归约 某超市研究...

qwop446 ⋅ 2017/09/18 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

Confluence 6 从其他备份中恢复数据

一般来说,Confluence 数据库可以从 Administration Console 或者 Confluence Setup Wizard 中进行恢复。 如果你在恢复压缩的 XML 备份的时候遇到了问题,你还是可以对整个站点进行恢复的,如...

honeymose ⋅ 5分钟前 ⋅ 0

myeclipse10 快速搭建spring boot开发环境(入门)

1.创建一个maven的web项目 注意上面标红的部分记得选上 2.创建的maven目录结构,有缺失的目录可以自己建立目录补充 补充后 这时候一个maven的web项目创建完成 3.配置pom.xml配置文件 <proje...

小海bug ⋅ 17分钟前 ⋅ 0

nginx.conf

=========================================================================== nginx.conf =========================================================================== user nobody; #......

A__17 ⋅ 20分钟前 ⋅ 0

645. Set Mismatch - LeetCode

Question 645. Set Mismatch Solution 思路: 遍历每个数字,然后将其应该出现的位置上的数字变为其相反数,这样如果我们再变为其相反数之前已经成负数了,说明该数字是重复数,将其将入结果r...

yysue ⋅ 34分钟前 ⋅ 0

Python这么强?红包杀手、消息撤回也可以无视,手机App辅助!

论述 标题也许有点不好理解,其实就是一款利用Python实现的可以监控微信APP内的红包与消息撤回的助手。不得不说,这确实是一款大家钟意的神器。 消息撤回是一件很让人恶心的事,毕竟人都是有...

Python燕大侠 ⋅ 50分钟前 ⋅ 0

压缩打包介绍、gzip压缩工具、bzip2压缩工具、xz压缩工具

压缩打包介绍 压缩的好处不仅能节省磁盘空间而且在传输的时候节省传输时间和网络带宽 windows系统下文件带有 .rar .zip .7z 后缀的就是压缩文件 linux系统下则是 .zip, .gz, .bz2, .xz, ...

黄昏残影 ⋅ 54分钟前 ⋅ 0

观察者模式

1.利用java原生类进行操作 package observer;import java.util.Observable;import java.util.Observer;/** * @author shadow * @Date 2016年8月12日下午7:29:31 * @Fun 观察目标 **/......

Cobbage ⋅ 57分钟前 ⋅ 0

Ubuntu打印服务器配置

参考:https://blog.csdn.net/gsls200808/article/details/50950586 https://blog.csdn.net/jiay2/article/details/80252369 https://wiki.gentoo.org/wiki/HPLIP 由于媳妇儿要大量打印资料,......

大熊猫 ⋅ 今天 ⋅ 0

面试的角度诠释Java工程师(二)

原文出处: locality 续言: 相信每一位简书的作者,都会有我这样的思考:怎么写好一篇文章?或者怎么写好一篇技术类的文章?我就先说说我的感悟吧,写文章其实和写程序是一样的。为什么我会...

颖伙虫 ⋅ 今天 ⋅ 0

github中SSH的Key

https://help.github.com/articles/connecting-to-github-with-ssh/ https://help.github.com/articles/testing-your-ssh-connection/ https://help.github.com/articles/adding-a-new-ssh-k......

whoisliang ⋅ 今天 ⋅ 0

没有更多内容

加载失败,请刷新页面

加载更多

下一页

返回顶部
顶部