机器学习算法入门:从贝叶斯到深度学习及各自优缺点
目录
1. 正则化算法(Regularization Algorithms)
2. 集成算法(Ensemble Algorithms)
3. 决策树算法(Decision Tree Algorithm)
4. 回归(Regression)
5. 人工神经网络(Artificial Neural Network)
6. 深度学习(Deep Learning)
7. 支持向量机(Support Vector Machine)
8. 降维算法(Dimensionality Reduction Algorithms)
9. 聚类算法(Clustering Algorithms)
10. 基于实例的算法(Instance-based Algorithms)
11. 贝叶斯算法(Bayesian Algorithms)
12. 关联规则学习算法(Association Rule Learning Algorithms)
13. 图模型(Graphical Models)
01 正则化算法(Regularization Algorithms)
集成方法是由多个较弱的模型集成模型组,其中的模型可以单独进行训练,并且它们的预测能以某种方式结合起来去做出一个总体预测。
该算法主要的问题是要找出哪些较弱的模型可以结合起来,以及结合的方法。这是一个非常强大的技术集,因此广受欢迎。
1. Boosting
2. Bootstrapped Aggregation(Bagging)
3. AdaBoost
4. 层叠泛化(Stacked Generalization)(blending)
5. 梯度推进机(Gradient Boosting Machines,GBM)
6. 梯度提升回归树(Gradient Boosted Regression Trees,GBRT)
7. 随机森林(Random Forest)
优点:
当先最先进的预测几乎都使用了算法集成,它比使用单个模型预测出来的结果要精确的多。
缺点:
需要大量的维护工作。
03 决策树算法(Decision Tree Algorithm)
回归是用于估计两种变量之间关系的统计过程。当用于分析因变量和一个 多个自变量之间的关系时,该算法能提供很多建模和分析多个变量的技巧。
具体一点说,回归分析可以帮助我们理解当任意一个自变量变化,另一个自变量不变时,因变量变化的典型值。最常见的是,回归分析能在给定自变量的条件下估计出因变量的条件期望。
回归算法是统计学中的主要算法,它已被纳入统计机器学习。
例子:
1. 普通最小二乘回归(Ordinary Least Squares Regression,OLSR)
2. 线性回归(Linear Regression)
3. 逻辑回归(Logistic Regression)
4. 逐步回归(Stepwise Regression)
5. 多元自适应回归样条(Multivariate Adaptive Regression Splines,MARS)
6. 本地散点平滑估计(Locally Estimated Scatterplot Smoothing,LOESS)
优点:
1. 直接、快速
2. 知名度高
缺点:
1. 要求严格的假设
2. 需要处理异常值
05 人工神经网络
深度学习是人工神经网络的最新分支,它受益于当代硬件的快速发展。
众多研究者目前的方向主要集中于构建更大、更复杂的神经网络,目前有许多方法正在聚焦半监督学习问题,其中用于训练的大数据集只包含很少的标记。
例子:
1. 深玻耳兹曼机(Deep Boltzmann Machine,DBM)
2. Deep Belief Networks(DBN)
3. 卷积神经网络(CNN)
4. Stacked Auto-Encoders
优点/缺点:见神经网络
07 支持向量机(Support Vector Machines)
和集簇方法类似,降维追求并利用数据的内在结构,目的在于使用较少的信息总结或描述数据。
这一算法可用于可视化高维数据或简化接下来可用于监督学习中的数据。许多这样的方法可针对分类和回归的使用进行调整。
例子:
1. 主成分分析(Principal Component Analysis (PCA))
2. 主成分回归(Principal Component Regression (PCR))
3. 偏最小二乘回归(Partial Least Squares Regression (PLSR))
4. Sammon 映射(Sammon Mapping)
5. 多维尺度变换(Multidimensional Scaling (MDS))
6. 投影寻踪(Projection Pursuit)
7. 线性判别分析(Linear Discriminant Analysis (LDA))
8. 混合判别分析(Mixture Discriminant Analysis (MDA))
9. 二次判别分析(Quadratic Discriminant Analysis (QDA))
10. 灵活判别分析(Flexible Discriminant Analysis (FDA))
优点:
1. 可处理大规模数据集
2. 无需在数据上进行假设
缺点:
1. 难以搞定非线性数据
2. 难以理解结果的意义
09 聚类算法(Clustering Algorithms)
基于实例的算法(有时也称为基于记忆的学习)是这样学 习算法,不是明确归纳,而是将新的问题例子与训练过程中见过的例子进行对比,这些见过的例子就在存储器中。
之所以叫基于实例的算法是因为它直接从训练实例中建构出假设。这意味这,假设的复杂度能随着数据的增长而变化:最糟的情况是,假设是一个训练项目列表,分类一个单独新实例计算复杂度为 O(n)。
例子:
1. K 最近邻(k-Nearest Neighbor (kNN))
2. 学习向量量化(Learning Vector Quantization (LVQ))
3. 自组织映射(Self-Organizing Map (SOM))
4. 局部加权学习(Locally Weighted Learning (LWL))
优点:
算法简单、结果易于解读。
缺点:
1. 内存使用非常高
2. 计算成本高
3. 不可能用于高维特征空间
11 贝叶斯算法(Bayesian Algorithms)
关联规则学习方法能够提取出对数据中的变量之间的关系的最佳解释。比如说一家超市的销售数据中存在规则 {洋葱,土豆}= {汉堡},那说明当一位客户同时购买了洋葱和土豆的时候,他很有可能还会购买汉堡肉。
例子:
1. Apriori 算法(Apriori algorithm)
2. Eclat 算法(Eclat algorithm)
3. FP-growth
13 图模型(Graphical Models)