机器学习分类算法应该如何选择?

转载 2015年11月17日 22:27:52

http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/



如何针对某个分类问题决定使用何种机器学习算法? 当然,如果你真心在乎准确率,最好的途径就是测试一大堆各式各样的算法(同时确保在每个算法上也测试不同的参数),最后选择在交叉验证中表现最好的。倘若你只是想针对你的问题寻找一个“足够好”的算法,或者一个起步点,这里给出了一些我觉得这些年用着还不错的常规指南。


训练集有多大?


如果是小训练集,高偏差/低方差的分类器(比如朴素贝叶斯)要比低偏差/高方差的分类器(比如k最近邻)具有优势,因为后者容易过拟合。然而随着训练集的增大,低偏差/高方差的分类器将开始具有优势(它们拥有更低的渐近误差),因为高偏差分类器对于提供准确模型不那么给力。


你也可以把这一点看作生成模型和判别模型的差别。


一些常用算法的优缺点


朴素贝叶斯:  巨尼玛简单,你只要做些算术就好了。倘若条件独立性假设确实满足,朴素贝叶斯分类器将会比判别模型,譬如逻辑回归收敛得更快,因此你只需要更少的训练数据。就算该假设不成立,朴素贝叶斯分类器在实践中仍然有着不俗的表现。如果你需要的是快速简单并且表现出色,这将是个不错的选择。其主要缺点是它学习不了特征间的交互关系(比方说,它学习不了你虽然喜欢甄子丹和姜文的电影,却讨厌他们共同出演的电影《关云长》的情况)。


逻辑回归:  有很多正则化模型的方法,而且你不必像在用朴素贝叶斯那样担心你的特征是否相关。与决策树与支持向量机相比,你还会得到一个不错的概率解释,你甚至可以轻松地利用新数据来更新模型(使用在线梯度下降算法)。如果你需要一个概率架构(比如简单地调节分类阈值,指明不确定性,或者是要得得置信区间),或者你 以后 想将更多的训练数据 快速 整合到模型中去,使用它吧。


决策树:  易于解释说明(对于某些人来说 —— 我不确定我是否在这其中)。它可以毫无压力地处理特征间的交互关系并且是非参数化的,因此你不必担心异常值或者数据是否线性可分(举个例子,决策树能轻松处理好类别A在某个 特征维度x的末端 ,类别B在中间,然后类别A又出现在特征维度x前端的情况 )。它的一个缺点就是不支持在线学习,于是在新样本到来后,决策树需要全部重建。另一个缺点是容易过拟合,但这也就是诸如随机森林(或提升树)之类的集成方法的切入点。另外,随机森林经常是很多分类问题的赢家(通常比支持向量机好上那么一点,我认为),它快速并且可调,同时你无须担心要像支持向量机那样调一大堆参数,所以最近它貌似相当受欢迎。


支持向量机:  高准确率,为避免过拟合提供了很好的理论保证,而且就算数据在原特征空间线性不可分,只要给个合适的核函数,它就能运行得很好。在动辄超高维的文本分类问题中特别受欢迎。可惜内存消耗大,难以解释,运行和调参也有些烦人,所以我认为随机森林要开始取而代之了。


然而。。。


尽管如此,回想一下,好的数据却要优于好的算法,设计优良特征是大有裨益的。假如你有一个超大数据集,那么无论你使用哪种算法可能对分类性能都没太大影响(此时就根据速度和易用性来进行抉择)。


再重申一次我上面说过的话,倘若你真心在乎准确率,你一定得尝试多种多样的分类器,并且通过交叉验证选择最优。要么就从Netflix Prize(和Middle Earth)取点经,用集成方法把它们合而用之,妥妥的。

机器学习分类算法应该如何选择?

http://blog.echen.me/2011/04/27/choosing-a-machine-learning-classifier/
  • pb09013037
  • pb09013037
  • 2014年11月24日 16:10
  • 5588

初学者如何选择合适的机器学习算法

原文链接 本文主要的目标读者是机器学习爱好者或数据科学的初学者,以及对学习和应用机器学习算法解决实际问题抱有浓厚兴趣的读者。面对大量的机器学习算法,初学者通常会问自己一个典型的问题:「我该使用...
  • timeviewer
  • timeviewer
  • 2017年06月05日 12:01
  • 399

机器学习基础 第三章 分类算法

1 线性分类器-感知器1.1 感知器有如图1.1所示的两类数据希望找到,如果想把他们分开,最简单的方法就是用图中的绿线将它们分开。显然绿线的方程为t=ω0+ω1x+ω1y−−−−−(1.1−1)t =...
  • zc02051126
  • zc02051126
  • 2017年01月25日 13:36
  • 489

谈谈分类算法的选择

在我们运用机器学习解决实际问题时,我们可能用得最多的套路就是找特征,选模型,扔进去训练。比如当我们面对{0,1}分类问题时,我们可能很自然的就想到了逻辑回归来解决,这个看似自然的做法背后又有什么秘密呢...
  • w28971023
  • w28971023
  • 2012年11月24日 13:06
  • 4347

机器学习中的分类算法

机器学习,模式识别中很重要的一环,就是分类,因为计算机其实无法深层次地理解文字图片目标的意思,当然现在卷积神经网络正在希望计算机能够看懂东西,但是现在我们先来看一些一些简单的分类算法。...
  • u014088052
  • u014088052
  • 2016年03月09日 11:32
  • 8071

机器学习-分类算法总结

目前看到的比较全面的分类算法,总结的还不错.  2.4.1 主要分类方法介绍解决分类问题的方法很多[40-42] ,单一的分类方法主要包括:决策树、贝叶斯、人工神经网络、K-近邻、支持向量机和基于关联...
  • u010064842
  • u010064842
  • 2013年10月06日 16:44
  • 2197

机器学习(二)--- 分类算法详解

感觉狼厂有些把机器学习和数据挖掘神话了,机器学习、数据挖掘的能力其实是有边界的。机器学习、数据挖掘永远是给大公司的业务锦上添花的东西,它可以帮助公司赚更多的钱,却不能帮助公司在与其他公司的竞争中取得领...
  • china1000
  • china1000
  • 2015年09月20日 15:47
  • 12303

机器学习的分类与主要算法对比

机器学习的分类与主要算法对比重要引用:Andrew Ng Courera Machine Learning;从机器学习谈起;关于机器学习的讨论;机器学习常见算法分类汇总;LeNet Homepage;...
  • sinat_27554409
  • sinat_27554409
  • 2017年05月31日 23:22
  • 4386

机器学习中常见分类器的应用场景

正好14年的时候有人做过一个实验[1],比较在不同数据集上(121个),不同的分类器(179个)的实际效果。 论文题为:Do we Need Hundreds of Classifiers to S...
  • u014465639
  • u014465639
  • 2017年06月02日 15:22
  • 1342

机器学习:分类算法

分类算法:k-近邻(kNN) 原理 存在一个样本数据集合,也称作训练样本集,并且样本集中每个数据都存在标签,即我们知道样本集中每一数据与所属分类的对应关系。输入没有标签的新数据后,将新数据...
  • exuejwa
  • exuejwa
  • 2017年02月08日 18:33
  • 705
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:机器学习分类算法应该如何选择?
举报原因:
原因补充:

(最多只允许输入30个字)