机器学习常见算法分类汇总
目录
学习方式
1.1 监督式学习
输入数据被称为”训练数据”,每组训练数据有一个明确的标识或结果。例:防垃圾邮件系统(“垃圾邮件” vs “非垃圾邮件”)、手写数字识别(“1”、“2”、“3” 等)。学习过程将预测结果与”训练数据”的实际结果进行比较,不断调整预测模型。常见应用:分类问题和回归问题。代表算法:逻辑回归(Logistic Regression)、反向传递神经网络(Back Propagation Neural Network)。
1.2 非监督式学习
数据并不被特别标识,学习模型为了推断出数据的一些内在结构。常见应用:关联规则学习、聚类。代表算法:Apriori算法、k-Means算法。
1.3 半监督式学习
输入数据部分被标识,部分没有被标识。学习模型可用来进行预测,但首先需要学习数据的内在结构。应用场景:分类和回归。代表算法:图论推理算法(Graph Inference)、拉普拉斯支持向量机(Laplacian SVM)。
1.4 强化学习
输入数据作为对模型的反馈,直接反馈到模型,模型必须对此立刻作出调整。常见应用:动态系统、机器人控制。代表算法:Q-Learning、时间差学习(Temporal difference learning)。
企业应用现状:监督式学习和非监督式学习最常用;半监督式学习在图像识别等领域(大量非标识数据+少量标识数据)热度高;强化学习主要应用于机器人控制和系统控制。
算法分类
2.1 回归算法
通过误差衡量来探索变量之间的关系。常见算法:最小二乘法(Ordinary Least Square)、逻辑回归(Logistic Regression)、逐步式回归(Stepwise Regression)、多元自适应回归样条(MARS)、本地散点平滑估计(LOESS)。
2.2 基于实例的算法
用来对决策问题建立模型,先选取样本数据,然后根据近似性把新数据与样本数据进行比较,寻找最佳匹配。也称为”赢家通吃”学习或”基于记忆的学习”。代表算法:k-Nearest Neighbor (KNN)、学习矢量量化(LVQ)、自组织映射算法(SOM)。
2.3 正则化方法
其他算法(通常是回归算法)的延伸,根据算法复杂度进行调整。对简单模型予以奖励,对复杂算法予以惩罚。代表算法:Ridge Regression、LASSO、弹性网络(Elastic Net)。
2.4 决策树学习
根据数据属性采用树状结构建立决策模型。用来解决分类和回归问题。代表算法:分类及回归树(CART)、ID3、C4.5、CHAID、Decision Stump、随机森林(Random Forest)、MARS、梯度推进机(GBM)。
2.5 贝叶斯方法
基于贝叶斯定理的一类算法,主要用来解决分类和回归问题。代表算法:朴素贝叶斯、平均单依赖估计(AODE)、贝叶斯信念网络(BBN)。
2.6 基于核的算法
把输入数据映射到高阶向量空间,使分类或回归问题更容易解决。代表算法:支持向量机(SVM)、径向基函数(RBF)、线性判别分析(LDA)。
2.7 聚类算法
通常按中心点或分层方式对输入数据进行归并。试图找到数据的内在结构,按最大共同点进行分类。代表算法:k-Means、期望最大化算法(EM)。
2.8 关联规则学习
寻找最能够解释数据变量之间关系的规则,找出大量多元数据集中有用的关联规则。代表算法:Apriori、Eclat。
2.9 遗传算法(genetic algorithm)
模拟生物繁殖的突变、交换和达尔文的自然选择。把问题可能的解编码为向量(个体),利用目标函数对群体中的个体进行评价,根据适应度对个体进行选择、交换、变异等遗传操作。适用于非常复杂和困难的环境(大量噪声、事物不断更新、目标不能精确定义)。代表人物:J.H. Holland。
2.10 人工神经网络
模拟生物神经网络的模式匹配算法。用来解决分类和回归问题。是机器学习的庞大分支,有几百种不同算法。代表算法:感知器神经网络、反向传递(BP)、Hopfield网络、自组织映射(SOM)。
2.11 深度学习
对人工神经网络的发展。试图建立大得多、复杂得多的神经网络。很多深度学习算法是半监督式学习算法,用来处理存在少量未标识数据的大数据集。代表算法:受限波尔兹曼机(RBM)、Deep Belief Networks(DBN)、卷积网络(CNN)、堆栈式自动编码器(Stacked Autoencoders)。
2.12 降低维度算法
分析数据的内在结构,用较少的信息来归纳或解释数据。可用于高维数据的可视化或简化数据以便监督式学习使用。代表算法:主成份分析(PCA)、偏最小二乘回归(PLS)、Sammon映射、多维尺度(MDS)、投影追踪(Projection Pursuit)。
2.13 集成算法
用一些相对较弱的学习模型独立地对同样样本进行训练,然后把结果整合起来进行整体预测。这是一类非常强大且流行的算法。代表算法:Boosting、Bagging、AdaBoost、堆叠泛化(Blending)、梯度推进机(GBM)、随机森林(Random Forest)、GBDT。
说明:本文为机器学习常见算法的总结笔记。如想具体理解每一个算法的实现方法,还需针对逐个算法进行学习和推敲。