神经网络 负梯度方向 反向传播 局部最小就是全局最小
svm支持向量机 /核函数 降维/对偶 利于核函数/软间隔 正则化 去掉噪声,提升鲁棒性
决策树 信息增益,熵 /剪枝/随机森林 随机选取n个数据得到m棵cart树进行bagging
贝叶斯 通过训练集得到先验以及条件分布,在对测试集进行后验概率的计算
Gibbs采样 马尔可夫平稳过程达到收敛的后验
MCMC算法 给定一个概率分布p(x),我们如何在计算机中生成它的样本
1、蒙特卡洛数值积分2、均匀分布,Box-Muller 变换3、Monte Carlo principle4、接受-拒绝抽样(Acceptance-Rejection sampling)5、重要性抽样(Importance sampling)6、马尔科夫链,马尔科夫稳态7、MCMC——Metropolis-Hasting算法
8、MCMC——Gibbs Sampling算法
PCA 最大方差理论 /最小平方误差 https://blog.csdn.net/u013719780/article/details/78352262
投影后的方差最大,则使w变成最大特征向量
算法输入:数据集Xmxn
* 按列计算数据集X的均值Xmean,然后令Xnew=X−Xmean;
* 求解矩阵Xnew的协方差矩阵,并将其记为Cov;
* 计算协方差矩阵COv的特征值和相应的特征向量;
* 将特征值按照从大到小的排序,选择其中最大的k个,然后将其对应的k个特征向量分别作为列向量组成特征向量矩阵Wnxk;
* 计算XnewW,即将数据集Xnew投影到选取的特征向量上,这样就得到了我们需要的已经降维的数据集XnewW。
KNN
1)计算测试数据与各个训练数据之间的距离;
2)按照距离的递增关系进行排序;
3)选取距离最小的K个点;
4)确定前K个点所在类别的出现频率;
5)返回前K个点中出现频率最高的类别作为测试数据的预测分类
LR,PLA
PLA的基本原理就是逐点修正,首先在超平面上随意取一条分类面,统计分类错误的点;然后随机对某个错误点就行修正,即变换直线的位置,使该错误点得以修正;接着再随机选择一个错误点进行纠正,分类面不断变化,直到所有的点都完全分类正确了,就得到了最佳的分类面。
lr算法 batch 梯度,随机梯度
KMeans方法 https://www.cnblogs.com/pinard/p/6164214.html
创建k个点作为起始质心,可以随机选择(位于数据边界内)
当任意一个点的簇分配结果发生改变时
对数据集中每一个点
对每个质心
计算质心与数据点之间的距离
将数据点分配到距其最近的簇
对每一个簇,计算簇中所有点的均值并将均值作为质心
EM算法 已知参数对隐变量求期望,已知期望对参数求极大似然,局部收敛最优 有两枚硬币,并且只知道抛出以后的分布,但是不知道到底是使用哪个硬币抛出来的(使用哪个硬币就是隐变量)
HMM算法 当前状态之和上一个状态有关系,所有的观测之间是互相独立的,某个观测之和生成它的状态有关系
隐含状态,观测数据,转移矩阵,发射概率,/先从前到后求出每种状态的概率,然后从后往前得到最大的概率的一条路径,得到状态序列(viterbi)
每次路径都保存从0到此时的状态,最后只返回一个path即可
CRF算法 http://www.unclewang.info/learn/machine-learning/753/
https://blog.csdn.net/weixin_42398658/article/details/85222113
CRF很随性,隐藏状态可以依赖于观测状态,只依赖于当前的观测状态肯定可以,不过你可以自己定一些比如依赖前一个或者后一个的观测状态,而隐藏状态也可以像HMM只依赖于前一个隐藏状态,不过你可以自己定依赖于前两个隐藏状态;对于观测状态来说,我现在可以构建多种特征函数直接对多个观测状态进行组合以后特征化,而不是只有一个观测对应的各种隐藏概率。
概率计算:前向后向
参数学习:拟牛顿法、梯度下降等等
序列预测:viterbi
模型特征向量F,权值向量,观测序列