一文读懂机器学习模型的选择与取舍

2019 年 8 月 25 日 DBAplus社群


通过学习机器学习课程或阅读相关文章,你不一定就能知道应该如何选择机器学习模型。它们只是让你对这些模型的工作原理有一个直观的了解,但可能会让你在为自己的问题选择合适模型时感到无所适从。


▲ 机器学习模型概要


我最开始使用机器学习来解决问题时,会尝试许多机器学习模型,并从中选择最有效的一个。而我现在依然这么做,不过会遵循一些关于如何选择机器学习模型的最佳实践经验。这些经验是从经历、直觉和同事中学到的,它们会让事情变得更容易。以下是我收集的内容。


我会根据你问题的本质来告诉你要使用哪种机器学习模型,还会尽量解释一些概念。


一、分类问题


首先,假设你有一个“预测给定输入类别”的分类问题。


请记清楚你将对输入进行分类的类别数目,由于有些分类器不支持多类预测,它们仅能支持2类预测。


1、速度慢,但是准确


  • 非线性支持向量机(SVM) 有关使用SVM的更多信息,请查看分类问题结尾部分的注意事项;

  • 随机森林(Random Forest);

  • 神经网络(需要大量数据点);

  • 梯度提升决策树(Gradient Boosting Tree,类似于随机森林,但容易过度拟合)。


2、速度快


  • 可解释的模型:决策树和逻辑回归;

  • 不可解释的模型:线性支持向量机(SVM)和朴素贝叶斯(Naive Bayes)。


注意:对支持向量机(SVM)内核的选择(来自吴恩达的课程)


  • 当特征数量大于观测数量时,使用线性内核;

  • 当观测数量大于特征数量时,使用高斯核心;

  • 如果观测数量大于50k,使用高斯内核时速度可能会成为问题;因此这时可以考虑使用线性内核。


二、回归问题


如果你的问题是“给定房子的大小、房间的数量等特征,让你预测房子的价格”,那么这是一个预测连续取值的回归问题。


1、精确,但是速度慢


  • 随机森林(Random Forest);

  • 神经网络(需要大量数据点);

  • 梯度提升决策树(类似于随机森林,但容易过度拟合)。


2、速度快


  • 决策树;

  • 线性回归。


三、聚类分析问题


如果你的问题是“根据数据的特征将它们分成k组,使得同一组里的对象具有某种程度的相似性”,那么这是一种聚类分析问题。


1、层次聚类分析


层次聚类分析(Hierarchy Clustering Analysis,HCA)是一种旨在构建聚类层次结构的聚类分析方法。层次聚类分析通常分为两种策略:


  • 凝聚:这是一种“自下而上”的方法。每个观测点从自己的集群开始凝聚,当一个集群向上移动时,成对的集群将进行合并。;

  • 分裂:这是一种“自上而下”的方法。所有观测点都在一个群集中开始分裂,当一个集群向下移动时,递归地执行分割。


2、非层次聚类分析


  • DBSCAN(不需要指定k的值,即集群的数量);

  • k-means;

  • 混合高斯模型。


如果你对分类数据进行聚类分析,请使用k-modes。


四、维度降低方法


使用主成分分析(PCA)方法


PCA可以理解为将n维椭球拟合到数据中,其中椭球的每个轴代表一个主要成分。如果椭圆体的某个轴很小,那么沿该轴的方差也很小。从数据集的表示中省略该轴及其相应的主成分,我们只会丢失相当少量的信息。


如果你想进行主题建模(后面将解释),你可以使用奇异值分解(SVD)或隐含狄利克雷分析(Latent Dirichlet Analysis,LDA)方法,并在进行概率主题建模时使用LDA。


主题建模是一种统计模型,用于发现文档集合中出现的抽象“主题”。主题建模是一种常用的文本挖掘工具,用于发现文本体隐藏的语义结构。


希望对你来说现在事情变得容易些了,我会根据你从反馈和实验中得到的信息更新这篇文章。


最后,这是两个非常好的概要,供你参考。



>>>>

参考资料


  • https://towardsdatascience.com/which-machine-learning-model-to-use-db5fdf37f3dd


作者:Maher  译者:吴鑫全  校对:杨鹏岳

来源:图灵TOPIA(ID:turingtopia

dbaplus社群欢迎广大技术人员投稿,投稿邮箱:editor@dbaplus.cn



在万物皆智能的未来

一起提前探索技术的升级与革新

Gdevops广州站准备好了,你呢?


↓↓扫码可了解更多详情及报名↓↓

2019 Gdevops全球敏捷运维峰会-广州站

登录查看更多
13

相关内容

【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
188+阅读 · 2020年6月29日
【2020新书】监督机器学习,156页pdf,剑桥大学出版社
专知会员服务
150+阅读 · 2020年6月27日
专知会员服务
77+阅读 · 2020年6月20日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
193+阅读 · 2020年2月24日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
346+阅读 · 2020年2月15日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
快速掌握机器学习,这 3 种算法你必须知道
开源中国
8+阅读 · 2017年11月9日
机器学习必备手册
机器学习研究会
17+阅读 · 2017年10月24日
解决机器学习问题有通法!看这一篇就够了!
大数据文摘
4+阅读 · 2017年9月18日
机器学习(16)之支持向量机原理(二)软间隔最大化
机器学习算法与Python学习
6+阅读 · 2017年9月8日
Arxiv
14+阅读 · 2020年2月6日
Arxiv
42+阅读 · 2019年12月20日
Arxiv
20+阅读 · 2019年11月24日
Arxiv
18+阅读 · 2019年1月16日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Federated Learning for Mobile Keyboard Prediction
Arxiv
4+阅读 · 2018年11月8日
Arxiv
4+阅读 · 2017年7月25日
VIP会员
相关VIP内容
【实用书】学习用Python编写代码进行数据分析,103页pdf
专知会员服务
188+阅读 · 2020年6月29日
【2020新书】监督机器学习,156页pdf,剑桥大学出版社
专知会员服务
150+阅读 · 2020年6月27日
专知会员服务
77+阅读 · 2020年6月20日
【实用书】Python机器学习Scikit-Learn应用指南,247页pdf
专知会员服务
255+阅读 · 2020年6月10日
Sklearn 与 TensorFlow 机器学习实用指南,385页pdf
专知会员服务
126+阅读 · 2020年3月15日
《可解释的机器学习-interpretable-ml》238页pdf
专知会员服务
193+阅读 · 2020年2月24日
【经典书】精通机器学习特征工程,中文版,178页pdf
专知会员服务
346+阅读 · 2020年2月15日
【新书】Python中的经典计算机科学问题,224页pdf
专知会员服务
143+阅读 · 2019年12月28日
相关资讯
相关论文
Arxiv
14+阅读 · 2020年2月6日
Arxiv
42+阅读 · 2019年12月20日
Arxiv
20+阅读 · 2019年11月24日
Arxiv
18+阅读 · 2019年1月16日
Adaptive Neural Trees
Arxiv
4+阅读 · 2018年12月10日
Federated Learning for Mobile Keyboard Prediction
Arxiv
4+阅读 · 2018年11月8日
Arxiv
4+阅读 · 2017年7月25日
Top
微信扫码咨询专知VIP会员