这篇文章,我们将了解最流行的机器学习算法。
用两种方法来对机器学习算法进行分组。
- 按照学习风格进行分组
- 按照算法的功能相似性进行分组
两种方法都可行,但本文更关注第二种方法。
通过阅读本文,你将对目前流行的关于监督学习的机器学习算法以及它们之间的关系会有更好的理解。
按照学习风格分组的机器学习算法
让我们看看三种不同学习风格的机器学习算法。
1.监督学习(Supervised Learning)
输入数据含有标签,例如:是否是垃圾邮件、某天的股票价格。
用带标签的数据来训练模型,然后利用模型来预测未见过的数据的标签。
一般用来处理分类和回归问题。
e.g:
- 线性回归(Linear Regression)
- 逻辑回归(Logistics Regression)
- 支持向量机(Support Vector Machine)
- 决策树(Decision Tree)
- 朴素贝叶斯(naive bayes)
2.非监督学习(Unsupervised Learning)
输入数据不带标签,模型通过推导输入数据的结构来提取数据的一般规则。
一般用来处理聚类、降维、关联规则学习。
e.g:
- Apriori Algorithm
- K-Means
3.半监督学习(Semi-Supervised Learning)
输入数据部分有标签,部分没有标签。
通过学习输入数据的一般规则来更好的预测标签。
一般用来处理分类和回归问题。
目前比较火的是半监督学习,它可以对数量很大但是只有少量数据带有标签的数据集进行预测,例如图像分类问题。
按照算法功能的相似性进行分组
这是最常用的分组方法。
虽然本文没有列出所有的算法,但是具有一定的代表性。
回归算法(Regression Algorithm)
回归算法为变量之间的关系建模。
回归算法是统计机器学习的主流方法。
e.g:
- Ordinary Least Squares Regression (OLSR)
- Linear Regression
- Logistic Regression
- Stepwise Regression
- Multivariate Adaptive Regression Splines (MARS)
- Locally Estimated Scatterplot Smoothing (LOESS)
基于实例算法(Instance-based Algorithm)
基于实例算法不对模型进行训练,只是存储训练数据。利用相似性度量(例如KNN中的距离函数)来对比新数据和训练数据,从而找出最匹配的模式和进行预测。
因为这样,基于实例算法又叫基于记忆算法。
e.g:
- k-Nearest Neighbor (kNN)
- Learning Vector Quantization (LVQ)
- Self-Organizing Map (SOM)
- Locally Weighted Learning (LWL)
正则化算法(Regularization Algorithm)
其他算法(一般是回归算法)的扩展算法。
e.g:
- Ridge Regression
- Least Absolute Shrinkage and Selection Operator (LASSO)
- Elastic Net
- Least-Angle Regression (LARS)
决策树算法(Decision Tree Algorithm)
决策树的理论基础是:信息、熵、信息增益
决策树具有速度快和准确率高的优点,是很受欢迎的机器学习算法,一般用于分类和回归问题。
e.g:
- Classification and Regression Tree (CART)
- Iterative Dichotomiser 3 (ID3)
- C4.5 and C5.0 (different versions of a powerful approach)
- Chi-squared Automatic Interaction Detection (CHAID)
- Decision Stump
- M5
- Conditional Decision Trees
贝叶斯算法(Bayesian Algorithm)
贝叶斯算法是基于贝叶斯定理,一般用于分类和回归问题。
e.g:
- Naive Bayes
- Gaussian Naive Bayes
- Multinomial Naive Bayes
- Averaged One-Dependence Estimators (AODE)
- Bayesian Belief Network (BBN)
- Bayesian Network (BN)
聚类算法(Clustering Algorithm)
聚类,就是利用数据固有的结构对数据进行分组聚类,使各组数据具有最大的共性。
e.g:
- k-Means
- k-Medians
- Expectation Maximisation (EM)
- Hierarchical Clustering
关联规则学习算法(Association Rule Learning Algorithms)
提取最能描述变量间关系的规则。
e.g:
- Apriori algorithm
- Eclat algorithm
人工神经网络算法(Artificial Neural Network Algorithm)
人工神经网络算法是受启发于生物神经网络的结构。
e.g:
- Perceptron
- Back-Propagation
- Hopfield Network
- Radial Basis Function Network (RBFN)
深度学习算法(Deep Learning Algorithm)
深度学习算法是人工神经网络算法的升级版,具有更复杂的神经网络,多数用于半监督学习。
e.g:
- Deep Boltzmann Machine (DBM)
- Deep Belief Networks (DBN)
- Convolutional Neural Network (CNN)
- Stacked Auto-Encoders
降维算法(Dimensionality Reduction Algorithm)
在监督学习算法中,常用于简化数据和可视化数据,适用于分类和回归问题。
e.g:
- Principal Component Analysis (PCA)
- Principal Component Regression (PCR)
- Partial Least Squares Regression (PLSR)
- Sammon Mapping
- Multidimensional Scaling (MDS)
- Projection Pursuit
- Linear Discriminant Analysis (LDA)
- Mixture Discriminant Analysis (MDA)
- Quadratic Discriminant Analysis (QDA)
- Flexible Discriminant Analysis (FDA)
集成算法(Ensemble Algorithm)
集成方法是由多个独立训练的弱学习器组成,通过某种方式(例如:多数投票法、平均法等)将各个弱学习器的预测结果结合成总体的预测。
e.g:
- Boosting
- Bootstrapped Aggregation (Bagging)
- AdaBoost
- Stacked Generalization (blending)
- Gradient Boosting Machines (GBM)
- Gradient Boosted Regression Trees (GBRT)
- Random Forest(适合用随机调参)
其他算法
支持向量机(Support Vector Machine)(间隔最大化)
各个领域的机器学习算法
- Computational intelligence (evolutionary algorithms, etc.)
- Computer Vision (CV)
- Natural Language Processing (NLP)
- Recommender Systems
- Reinforcement Learning
- Graphical Models
引用:https://machinelearningmastery.com/a-tour-of-machine-learning-algorithms/