常用的机器学习算法学习

来源:互联网 发布:java开发的wms系统 编辑:程序博客网 时间:2024/05/16 09:11

1、GBDT(Gradient Boosting Decision Tree)

GBDT可以用于预测也可以用于分类:

对于预测,可以参考简单易懂的博客:http://blog.csdn.net/w28971023/article/details/8240756

对于多分类,可以参考博客:http://blog.csdn.net/starzhou/article/details/51648219

GBDT也可以作为一种数据降维方法来使用,一个决策树共生成J个节点,那么每个节点其实能代表一类数据,

用这个节点的one hot编码表示对应的样本,就可以起到数据降维度的目的。

(或者多个决策树N*J个节点共同作为降维后的数据)


2、FM(主要用于处理数据稀疏的情况),针对两两特征,增加一个系数W用于提取特征间的关系,

而后用一个小矩阵V,乘以V转置来代替W矩阵。


3、决策树与回归树:

决策树是判断yes或no,每一步选择特征时用的是(熵增益)或者(Gini系数)的方法

回归树则用于拟合,结果需要给出一个特定的数值,每一步选择特征时用的是(方差和最小)的方法


4、岭回归与Lasso回归(前者是2范数,后者是1范数)

岭回归能直接通过SGD下降求解,或者直接求解,Lasso回归用类似OMP的算法求解(为了得到稀疏解)


5、xgboost算法

与gbdt类似,也是一个梯度相关的提升算法,与gbdt不同的是,gbdt是用损失函数的一阶导(梯度)

再拟合新的决策树,损失函数用的是类内方差和的最小值。xgboost则用泰勒展开的前两项,至二阶导,

一阶二阶导的值根据前一个决策树可以得到一个常数值。这里采用的决策算法为:选择一个分类选择,

使得损失函数降低的量最大。

可以参考这个博客理解:http://x-algo.cn/index.php/2016/07/24/xgboost-principle/


6、Extremely randomized tree(Extra-Tree),极端随机数,与随机森林类似,都是很多棵树,区别在于,

Extra-Tree在选择最佳分类特征时,并不是选定一个最佳的,而是在前几个最佳特征中随机选择一个,

并且其每一棵树的训练数据均为所有数据。随机森林选择最佳分类时,直接选择最好的那个,并且

每一棵树的训练数据都是从原始数据中随机抽样的。


7、聚类分析算法:高斯混合模型GMM,算法推导有些难度,需要认真研究研究。

高斯混合模型是属于EM算法的范畴,通过求解似然函数的极大值,得到一个递推过程。


8、隐马尔可夫模型:隐马尔可夫模型由三类参数来表征,即初始状态概率向量、状态转移概率矩阵、

状态到观测值的生成矩阵。

隐马尔可夫模型主要有两类问题:

(1)三类参数都已知,需要求某一个状态序列的概率。最简单的方法为穷尽搜索,这种算法复杂度极高、

算法复杂度较低的算法有前向算法与后向算法,二者思想为类似动态规划的思想。在得到前向算法与

后向算法的中间过程值后,可以得到状态序列中某一个位置为特定状态的概率值,这个概率值会在第二类

问题中用到。

(2)三类参数都未知,现在只知道状态序列,需要求解三类隐含参数。这里算法仍然采用EM算法的思想。

首先给三类参数假定一个值,然后通过求解似然函数的极大值,得到下一次迭代中三类参数的值。

原创粉丝点击