后续将尽可能完善并按照此目录结构写博客进行算法解析并附代码实现。
机器学习算法目录:
一、模型选择与评价:
1,误差:误差由偏差(bias)、方差(variance)和噪声(noise)组成;
2,多分类学习:一对一、一对其余、多对多(参考:西瓜书p63);单标签二分类(logistic、SVM等),单标签多分类(softmax、纠错码机制等),多标签算法(转换策略:binaryrelevance、classifier chains、calibratedlabel ranking;算法适应:ML-KNN、ML-DT)。
3,交叉验证,网格搜索:
4,模型评价相关指标:
5,模型持久化(modelpersistence):
6,验证曲线(validationcurves):
二、机器学习部分:
1,线性回归:
最小二乘(一次线性回归、多项式回归);LASSO回归(L1正则化)、Ridge回归(L2正则化)、elasNet(L1和L2正则化)、local weight regression与KNN都是为位置数据量身定制的,在局部进行训练。
2,逻辑回归:交叉熵损失函数、softmax的loss函数、
要点:逻辑回归是对线性回归的改进用于解决分类问题;一定条件下,逻辑回归模型与朴素贝叶斯分类器是等价的;多分类问题可以多次使用二分类或者Softmax回归求解;逻辑回归输出的是实例输入每个类别的似然概率,似然概率最大的类别就是分类结果。
3,决策树:ID3(信息增益)、C4.5(信息增益比)、CART(Gini系数),前两个是多叉树(主要用于分类树),第三个是二叉树;CART算法可用于分类树,也可用于回归树。
要点:决策树的学习过程包括特征选择、决策树生成、决策树剪枝三个步骤;决策树的剪枝策略包括预剪枝和后剪枝;特征选择的指标包括信息增益、信息增益比和基尼系数。
4,支持向量机(SVM):线性可分向量机、线性不可分向量机;
要点:支持向量机学习的是凸二次规划问题,可以使用SMO算法快速求解;
5,KNN:KD-Tree算法可以不计算全部样本点的距离、
要点:KNN是分类算法,监督算法,而K-means是聚类算法,非监督算法;
6,聚类分析:K-means(二分K-means算法、K-means ,K-means||算法合理选择k个初始点、canopy算法选择超参数k)、层次聚类(可分为自底向上(AGNES凝聚)和自顶向下(DINAN分裂))、DBSCAN、MDCA(MaximumDensity Clustering Application)算法、谱聚类(spectral clustering)、局部密度聚类;
要点:类内差异应尽可能小,类间差距应尽可能大;根据形成聚类的方式不同,聚类算法可以分为层次聚类、原型聚类、分类聚类、密度聚类等;聚类的一个重要应用是用户的分组与归类;层次聚类降低了对初始中心点的依赖,层次聚类适用于大数据的优化方法有BIRCH算法(平衡迭代聚类树,CF-tree,B 树);CURE算法(KD-tree)。
7,贝叶斯算法:朴素贝叶斯、(高斯朴素贝叶斯、伯努利朴素贝叶斯、多项式朴素贝叶斯)区别仅在于p(x|y)的计算公式不同、贝叶斯网络(特征之间不独立,存在相关关系,是有向无环图:p(a,b,c)=p(c|a,b)*p(b|a)*p(a)。)、MLE与MAP(Maximuma posteriori estimation)的区别,两者均是有监督算法、
要点:朴素贝叶斯可以使期望风险最小化;朴素贝叶斯分类的是所有属性之间的依赖关系在不同类别上的分布;利用后验概率选择最佳分类;朴素贝叶斯假定所有属性相互独立,基于这一假设将类条件概率转化为属性条件概率的乘积。
8, EM算法(无监督算法)分三步、GMM(高斯混合聚类)
要点:EM算法(概率模型依赖于无法观测的隐藏变量无法单纯用MLE或者MAP;EM算法与K-means算法相似);
9,隐马尔可夫模型(HMM):条件随机场、GM-HMM、概率计算问题(前向-后向算法)、学习问题(Bawm-Welch算法)、预测问题(Viterbi算法)。
要点:特征工程时用的多,单独模型时用得少,与lstm极相似,最终的概率会收敛到均衡状态。
10,概率图模型(参考邱老师的PPT)
11,降维学习:主成分分析(PCA),线性判别分析(LDA)、特征选择;特征降维可分为有监督(LDA)和无监督(LSA、NMF);主题模型(LDA、LSA)
要点:主成分分析利用正交变换将可能存在相关性的原始属性转换成一组现行无关的新属性,并通过选择重要的新属性实现降维;主成分分析的解满足最大方差和最小均方误差两类约束条件,因而具有最大可分性和最近重构性;特征选择的关键问题是对特征子集评价,主要的特征选择算法包括包裹法、过滤法和潜入法。
12,集成学习(已整理为:机器学习5-8):随机森林(Extra tree、Totally Random Trees Embedding、Isolation forest)、Adboost、GBDT、XGBoost、LightGBM。
要点:集成学习包括序列化方法和并行化方法两类;序列化方法:采用Boosting机制,通过重复使用概率分布不同的训练数据实现集成,可降低泛化误差中的偏差;并行化方法:采用Bagging机制,通过在训练数据中多次自动抽取不同的采样子集实现集成,既降低泛化误差中的方差;多样性:要求集成学习中不同的个体学习器之间具有足够的差异性;
三、神经网络部分:
1,Neural network基础(batch normalization,dropout,ReLU,数据增强,feature map)与感知机:常用的激活函数(swith函数等)、前馈神经网络与反馈神经网络、如何逃离鞍点(高维数据中大部分情况是鞍点)、自动微分(AD)与反向传播(BP)的比较、
要点:ResNet解决了梯度消失问题;参考:https://www.jianshu.com/p/040f59a7e23b
2,卷积神经网络(CNN):
要点:卷积核可以看做一个特征提取器(通过m个卷积核进行特征提取,然后综合这m个特征提取结果);下采样(池化,汇聚层,maxpooling);两个3维可以达到一层5维的卷积
3,循环神经网络(RNN):LSTM(无法并行计算)、GRU、递归神经网络(RNN)、TDNN(time delay neural network)、长时依赖问题与非线性依赖、
4,生成对抗网络(GAN):
5,限制玻尔兹曼机(Restricted Boltzmann Machine):
四、强化学习:
1,马尔科夫决策过程(MarkovDecision Processes):
2,Q-Learning:
3,Sarsa:
五、迁移学习:多模态学习
六、按监督,非监督分类:
1),监督学习:
1.1,回归(Regression):generalized linear regression、gaussianprocesses、isotonic regression。
1.2,分类(classification):SVM、Linear and Quadratic discriminationanalysis、Decision Tree、K nearestneighbors、Naïve Bayes、Neuralnetworks、Ensemble methods、kernelApproximation、Adaboost。
2),非监督学习:
2.1,聚类(clustering):K-Means、Gaussian mixture models、spectial clustering、manifold learning、hierarchical clustering、affinity propagation、DBSCAN、Birch。
2.2,降维(Dimensionalityreduction): principle component analysis、linear discriminant analysis、locallylinear embedding、laplacian eigenmaps、isomap、spectral embedding、feature agglomeration。
3),半监督学习(Semi-SupervisedLearning,SSL):协同学习(co-training)、graph-based SSL、
要点:文本分类中,人工给全部文本加标签(label),时间成本太大,因此,通常用一部分有标签的样本(人工加label)和其它大量的无label的样本进行模型分析。
七、其他主题:
1,NLP相关:词袋法与TF-IDF、Latent semantic analysis(潜在语义分析)、Probabilistic latent semantic analysis(PLSA )、N-gram特征提取、NLP的encode与decode过程。
2,双向RNN:解决间隔较远单词之间梯度下降问题,例如:ABC(经过f(x)后)翻译成XY,CBA(经过f(x)后)翻译成XY,而A更可能翻译成X的情况,若单向RNN,梯度下降导致A无法影响输出。
2,Hierarchical softmax:
3,ANN(Artificial Neural Network)、DNN(深度神经网络)、FCN(fully connect network)、FNN(feedforwardneural network)
4,TensorFlow采用静态计算图(无法处理图网络),Pytorch采用动态计算图: