专栏首页CSDN技术头条如何选择机器学习算法

如何选择机器学习算法

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

训练集有多大?

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

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

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

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

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

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

然而。。。

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

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

Via:博客jmpoxf

本文分享自微信公众号 - CSDN技术头条(CSDN_Tech)

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2015-04-30

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • Python; 机器学习之项目实践

    机器学习是一项经验技能,经验越多越好。在项目建立的过程中,实践是掌握机器学习的最佳手段。在实践过程中,通过实际操作加深对分类和回归问题的每一个步骤的理解,达到学...

    CSDN技术头条
  • Linux 4.6促进了容器的安全性,添加对OrangeFS的支持

    如预期一样,Linux的核心任务Linux Torvalds周日发布了Linux Kernel 4.6。新版本支持一个新型的分布式文件系统OrangeFS,采用...

    CSDN技术头条
  • 携程:机器学习在酒店服务领域的实践

    在携程技术中心推出的线上公开课程[携程技术微分享]上,携程酒店研发BI经理潘鹏举介绍了如何借助大数据和算法,通过机器学习去克服酒店服务行业挑战。目前的应用主要包...

    CSDN技术头条
  • 独家 | 一文读懂集成学习(附学习资源)

    本文是数据派研究部“集成学习月”的第一篇文章,本月将陆续发布关于集中学习的话题内容,月末将有答题互动活动来赢奖,欢迎随时留言讨论相关话题。 集成算法(Ensem...

    数据派THU
  • 如果Boosting 你懂、那 Adaboost你懂么?

    作者:崔家华 编辑:王抒伟 转载请注明作者和出处: https://zhuanlan.zhihu.com/ml-jack 机器学习知乎专栏: h...

    机器学习算法工程师
  • Kaggle竞赛必杀利器之融合模型

    前面几次课分别给大家介绍了逻辑回归、决策树、随机森林和SVM几种常用的分类模型,不知道大家还有没有印象?本节课将给大家介绍Kaggle竞赛大杀器--融合模型!

    用户7569543
  • 【陆勤践行】机器学习分类器选择

    你知道如何为你的分类问题选择合适的机器学习算法吗?当然,如果你真正关心准确率,那么最佳方法是测试各种不同的算法(同时还要确保对每个算法测试不同参数),然后通过交...

    陆勤_数据人网
  • 机器学习入门(四) — 分类模型1 分类-分析情感2 从主题预测情感:智能餐厅评价系统3 分类器应用4 线性分类器5 决策边界6 训练和评估分类器7 什么是好的精度

    JavaEdge
  • Adaboost入门教程——最通俗易懂的原理介绍

    Adaboost算法基本原理就是将多个弱分类器(弱分类器一般选用单层决策树)进行合理的结合,使其成为一个强分类器。

    机器学习AI算法工程
  • 机器学习两大利器:Boosting 与 AdaBoost

    最近, 技术在 Kaggle 竞赛以及其它预测分析任务中大行其道。本文将尽可能详细地介绍有关 Boosting 和 的相关概念。

    小小詹同学

扫码关注云+社区

领取腾讯云代金券