# 机器学习算法一览

2.机器学习算法简述

2.1 从机器学习问题角度分类

2.2 从算法的功能角度分类

2.2.1 回归算法(Regression Algorithms)

Ordinary Least Squares Regression (OLSR)

Linear Regression

Logistic Regression

Stepwise Regression

Locally Estimated Scatterplot Smoothing (LOESS)

2.2.2 基于实例的算法(Instance-based Algorithms)

k-Nearest Neighbour (kNN)

Learning Vector Quantization (LVQ)

Self-Organizing Map (SOM)

Locally Weighted Learning (LWL)

2.2.3 决策树类算法(Decision Tree Algorithms)

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)

M5

Conditional Decision Trees

2.2.4 贝叶斯类算法(Bayesian Algorithms)

Naive Bayes

Gaussian Naive Bayes

Multinomial Naive Bayes

Averaged One-Dependence Estimators (AODE)

Bayesian Belief Network (BBN)

Bayesian Network (BN)

2.2.5 聚类算法(Clustering Algorithms)

k-Means

Hierarchical Clustering

Expectation Maximisation (EM)

2.2.6 关联规则算法(Association Rule Learning Algorithms)

Apriori algorithm

Eclat algorithm

2.2.7 人工神经网络类算法(Artificial Neural Network Algorithms)

Perceptron

Back-Propagation

2.2.8 深度学习(Deep Learning Algorithms)

Deep Boltzmann Machine (DBM)

Deep Belief Networks (DBN)

Convolutional Neural Network (CNN)

Stacked Auto-Encoders

2.2.9 降维算法(Dimensionality Reduction Algorithms)

Principal Component Analysis (PCA)

Principal Component Regression (PCR)

Partial Least Squares Regression (PLSR)

Sammon Mapping

Multidimensional Scaling (MDS)

Linear Discriminant Analysis (LDA)

Mixture Discriminant Analysis (MDA)

Flexible Discriminant Analysis (FDA)

2.2.10 模型融合算法(Ensemble Algorithms)

Random Forest

Boosting

Bootstrapped Aggregation (Bagging)

Stacked Generalization (blending)

2.3 机器学习算法使用图谱

scikit-learn作为一个丰富的python机器学习库，实现了绝大多数机器学习的算法，有相当多的人在使用，于是我这里很无耻地把machine learning cheat sheet for sklearn搬过来了，原文可以看这里。哈哈，既然讲机器学习，我们就用机器学习的语言来解释一下，这是针对实际应用场景的各种条件限制，对scikit-learn里完成的算法构建的一颗决策树，每一组条件都是对应一条路径，能找到相对较为合适的一些解决方法，具体如下：

3. 机器学习问题解决思路

3.1 数据与可视化

3.2 机器学习算法选择

3.2.1 过拟合的定位与解决

(2)神经网络中减少神经网络的层数和每层的结点数 (c)SVM中增加RBF-kernel的bandwidth等方式来降低模型的复杂度。

l2正则化，它对于最后的特征权重的影响是，尽量打散权重到每个特征维度上，不让权重集中在某些维度上，出现权重特别高的特征。

3.2.2 欠拟合定位与解决

3.3 关于大数据样本集和高维特征空间

3.3.1 大数据情形下的模型选择与学习曲线

StandardScaler每次只使用一部分(mini-batch)做训练，在这种情况下，我们使用交叉验证(cross-validation)并不是很合适，我们会使用相对应的progressive validation：简单解释一下，estimator每次只会拿下一个待训练batch在本次做评估，然后训练完之后，再在这个batch上做一次评估，看看是否有优化。

3.3.2 大数据量下的可视化

PCA降维

3.4 损失函数的选择

hinge loss(SVM中使用到的)的健壮性相对较高(对于异常点/噪声不敏感)。但是它没有那么好的概率解释。

log损失函数(log-loss)的结果能非常好地表征概率分布。因此在很多场景，尤其是多分类场景下，如果我们需要知道结果属于每个类别的置信度，那这个损失函数很适合。缺点是它的健壮性没有那么强，相对hinge loss会对噪声敏感一些。

4. 总结

end

1288 篇文章121 人订阅

0 条评论

3604

3707

9912

4279

1961

1051

1913

4019

37610

854