用户您好!请先登录!

机器学习模型的选择与取舍

机器学习模型的选择与取舍

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

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

机器学习模型概要

开始使用机器学习来解决问题时,可以尝试许多机器学习模型,并从中选择最有效的一个。这些经验是从经历、直觉和同事中学到的,它们会让事情变得更容易。以下是一些有意思的内容。

让我们来根据问题的本质来决定使用哪种机器学习模型。

一、分类问题

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

请记清楚你将对输入进行分类的类别数目,由于有些分类器不支持多类预测,它们仅能支持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
行走的code
行走的code

要发表评论,您必须先登录