机器学习的分类及其常用算法

用户头像数学算法大哥
2023-04-02 发布

机器学习是一种让计算机自动从给定的数据中学习和推理的技术。它可以让计算机具有学习能力,从而自动进行特定任务,比如对某事物进行分类,或者预测未来趋势等等。

在量化交易中,可以利用机器学习来分析市场数据,构建适当的模型,然后根据模型产生交易信号。机器学习的另一个用处是发现可能的交易机会,无论是从基本面分析还是从技术面分析出发。它可以帮助量化交易者分析行情,帮助他们作出更明智的交易决策。

此外,机器学习还可以帮助量化交易者构建优化的交易策略,识别不同市场和参数之间的关系,并训练数据以预测市场趋势。它可以帮助交易者提高交易的效率和精度,从而将利润最大化。

本文将带你深入地探索机器学习领域最受欢迎的算法,以及它们的原理、特点和应用场景,以期能更加系统地掌握机器学习。当然,本文概述的算法不一定完全,而且各算法之间的分类也并不是唯一的。当你看完本篇文章后,下次看到对应的算法后,就可以想起这种算法的长处和用处了。

在本文中,我将提供两种分类机器学习算法的方法。一是根据学习方式分类,二是根据类似的形式或功能分类。这两种方法都很有用,不过,本文将侧重后者,也就是根据类似的形式或功能分类。在阅读完本文以后,你将会对监督学习中最受欢迎的机器学习算法,以及它们彼此之间的关系有一个比较深刻的了解。

在阅读完本文以后,你将会对最受欢迎的机器学习算法,以及它们彼此之间的关系有一个比较深刻的了解。

事先说明一点,本文没有涵盖机器学习特殊子领域的算法,比如计算智能(进化算法等)、计算机视觉(CV)、自然语言处理(NLP)、推荐系统、强化学习和图模型。以下的思维导图帮助大家更好的理解。

一、从功能和形式分类

研究人员常常通过功能相似对算法进行分类。例如,基于树的方法和基于神经网络的方法。这种方法也是我个人认为最有用的分类方法。不过,这种方法也并非完美,比如学习矢量量化(LVQ),就既可以被归为神经网络方法,也可以被归为基于实例的方法。此外,像回归和聚类,就既可以形容算法,也可以指代问题。

为了避免重复,本文将只在最适合的地方列举一次。下面的算法和分类都不齐备,但有助于你了解整个领域的大概。

1. 回归算法

回归分析是一种预测模型技术,用于研究自变量和因变量之间的关系,可应用于时间序列预测和变量关系发现。此外,回归分析还是机器学习领域中常用的统计学方法。“回归”既可以指算法也可以指问题,因此在指代的时候容易混淆。实际上,回归就是一个过程而已。常用的回归算法包括:

  • 普通最小二乘回归(OLSR)
  • 逻辑回归
  • 线性回归
  • 逐步回归
  • 局部估计平滑散点图(LOESS)
  • 多元自适应回归样条法(MARS)

2. 基于实例的学习算法

基于实例的学习是通过使用训练样本或实例进行建模,这些样本或实例被认为是建模的必要条件。这种模型通常创建样本库,将新数据与库中的数据进行比较,以找到最佳匹配并进行预测。换句话说,这类算法在做预测时,一般会使用相似度准则,比对待预测的样本和原始样本之间的相似度,再做出预测。常用的基于实例的学习算法包括:

  • k-邻近算法(kNN)
  • 矢量量化算法(LVQ)
  • 局部加权学习算法(LWL)
  • 自组织映射算法(SOM)

3. 正则化算法

正则化算法的理念是,当参数较小时,模型更为简单。该算法对模型的复杂度进行了惩罚处理,并偏好于更加简单、更容易泛化的模型。因此,正则化算法是这种方法的扩展。我把正则化算法单独列出来,原因就是我听说它们十分受欢迎、功能强大,而且能够对其他方法进行简单的修饰。常用的正则化算法包括:

  • 最小角回归算法(LARS)
  • 岭回归
  • LASSO 算法
  • Elastic Net

4. 决策树算法

决策树算法的目的是根据数据属性的实际值创建一个能够预测样本目标值的模型。在训练期间,树形结构将不断分支,最终做出最终决策。换句话说,模型在预测阶段会选择一条路径进行决策。决策树常被用于分类和回归。决策树一般速度快,结果准,因此也属于最受欢迎的机器学习算法之一。常用的决策树算法包括:

  • 单层决策树
  • M5 算法
  • 条件决策树
  • 分类和回归树(CART)
  • ID3 算法
  • C4.5 算法和 C5.0 算法(它们是一种算法的两种不同版本)
  • CHAID 算法

5. 贝叶斯算法

贝叶斯算法通常指那些明确运用贝叶斯定理解决分类、回归等问题的方法。常见的贝叶斯算法有:

  • AODE 算法
  • 贝叶斯信念网络(BBN)
  • 贝叶斯网络(BN)
  • 朴素贝叶斯算法
  • 高斯朴素贝叶斯算法
  • 多项式朴素贝叶斯算法

6. 聚类算法

聚类跟回归一样,既可以用来形容一类问题,也可以指代一组方法。聚类方法通常涉及质心或层次等建模方式,所有的方法都与数据固有的结构有关,目标是将数据按照它们之间共性最大的组织方式分成几组。换句话说,算法将输入样本聚成围绕一些中心的数据团,通过这样的方式发现数据分布结构中的规律。常用的聚类算法包括:

  • EM 算法
  • 分层聚类算法
  • K-均值
  • K-中位数

7. 关联规则学习

关联规则学习在数据不同变量之间观察到了一些关联,算法要做的就是找出最能描述这些关系的规则,也就是获取一个事件和其他事件之间依赖或关联的知识。常用的关联规则算法有:

  • Apriori算法
  • Eclat 算法

8. 人工神经网络

人工神经网络是受到生物神经网络结构和功能启发的模型,并且常用于解决回归和分类问题等模式匹配。但实际上,它包含着成百上千种算法和面临各种问题变化的子集。注意这里我将深度学习从人工神经网络算法中分离了出去,因为深度学习实在太受欢迎。人工神经网络指的是更加经典的感知方法。常用的人工神经网络包括:

  • 感知机
  • Hopfield网络
  • 径向基函数网络(RBFN)
  • 反向传播算法(BP 神经网络)

9. 深度学习算法

人工神经网络经过升级变得更加高效,形成了深度学习算法。利用计算力不再是一个重要问题,而且深度学习算法应用广泛,特别是在语音和图像识别方面。深度学习算法会搭建规模更大、结构更复杂的神经网络,正如上文所说,很多深度学习方法都涉及半监督学习问题,这种问题的数据一般量极大,而且只有很少部分带有标签。常用的深度学习算法包括:

  • 深度玻尔兹曼机(DBM)
  • 卷积神经网络(CNN)
  • 栈式自编码算法(Stacked Auto-Encoder)
  • 深度信念网络(DBN)

    10. 降维算法

    与聚类类似,降维算法的目标也是发现数据的内在结构,但其采用无监督学习方法,能够用更少的信息(如低维数据)来总结和描述数据。降维算法可以监督学习的方式,被用于多维数据的可视化或对数据进行简化处理。很多降维算法经过修改后,也被用于分类和回归的问题。常用的降维算法包括:

  • 主成分分析法(PCA)
  • 主成分回归(PCR)
  • 灵活判别分析法(Flexible Discriminant Analysis,FDA)
  • 多维尺度分析法(MDS)
  • 投影寻踪法(PP)
  • 偏最小二乘回归(PLSR)
  • 萨蒙映射
  • 混合判别分析法(MDA)
  • 二次判别分析法(QDA)
  • 线性判别分析法(LDA)

11. 模型融合算法

模型融合算法的作用是将多个独立训练的简单弱机器学习算法结合在一起,将它们的预测结果整合成一个单一的预测结果。通常这个整合后的预测会比单独的预测要好一些。构建模型融合算法的主要精力一般用于决定将哪些弱机器学习算法以什么样的方式结合在一起。模型融合算法是一类非常强大的算法,因此也很受欢迎。常用的模型融合增强方法包括:

  • 堆叠泛化(混合)
  • GBM 算法
  • GBRT 算法
  • Boosting
  • Bagging
  • AdaBoost
  • 随机森林

12. 其他算法

还有很多算法都没有涉及。本文还没有提到的机器学习算法包括:

  • 特征选择算法
  • Algorithm accuracy evaluation
  • Performance measures

二、从学习方式分类

算法对一个问题建模的方式很多,可以基于经历、环境,或者任何我们称之为输入数据的东西。机器学习和人工智能的教科书通常会让你首先考虑算法能够采用什么方式学习。实际上,算法能够采取的学习方式或者说学习模型只有几种,下面我会一一说明。

1. 监督学习

输入数据被称为训练数据,并且每一个都带有标签,比如“广告/非广告”,或者当时的股票价格。通过训练过程建模,模型需要做出预测,如果预测出错会被修正。直到模型输出准确的结果,训练过程会一直持续。常用于解决的问题有分类和回归。常用的算法包括逻辑回归和BP神经网络。

2. 无监督学习

输入数据没有标签,输出没有标准答案,就是一系列的样本。无监督学习通过推断输入数据中的结构建模。这可能是提取一般规律,可以是通过数学处理系统地减少冗余,或者根据相似性组织数据。常用于解决的问题有聚类、降维和关联规则的学习。常用的算法包括 Apriori 算法和 K 均值算法。

3. 半监督学习

半监督学习的输入数据包含带标签和不带标签的样本。半监督学习的情形是,有一个预期中的预测,但模型必须通过学习结构整理数据从而做出预测。常用于解决的问题是分类和回归。常用的算法是所有对无标签数据建模进行预测的算法(即无监督学习)的延伸。

以上是主流的两种机器学习的分类方式,事实证明,对机器学习算法进行分类是很有必要的事情,因为这迫使你思考输入数据的作用以及模型准备过程,从而选择一个最适用于你手头问题的算法。阅读完这篇文章后,下次当你看到机器学习的算法时,就可以快速的想出他的用处和优缺点。

评论