首页 > 代码库 > 机器学习树的算法总结

机器学习树的算法总结

1.决策树

骤如下:

(1):假设T为训练样本集。

(2):从属性集合Attributes中选择一个最能区别T中样本的属性。

(3):创建一个树节点,它的值为所选择的属性。创建此节点的子节点,每个子链代表所选属性的一个唯一值(唯一区间),使用子链的值进一步将样本细分为子类。

对于每一个分支继续重复(2)(3)的过程,直到满足以下两个条件之一:

(a):所有属性已经被这条路径包括。

(b):与这个节点关联的所有训练样本都具有相同的目标属性(熵为0)。

 

 

 

 

2.随机森林

1.假设我们设定训练集中的样本个数为N,然后通过有重置的重复多次抽样来获得这N个样本,这样的抽样结果将作为我们生成决策树的训练集;

2.如果有M个输入变量,每个节点都将随机选择m(m<M)个特定的变量,然后运用这m个变量来确定最佳的分裂点。在决策树的生成过程中,m的值是保持不变的;

3.每棵决策树都最大可能地进行生长而不进行剪枝;

4.通过对所有的决策树进行加总来预测新的数据(在分类时采用多数投票,在回归时采用平均)。

 

 

 

3.Adaboost

Adaboost的简单版本训练过程如下:

1. 训练第一个分类器,样本的权值D为相同的均值。通过一个弱分类器,得到这5个样本(请对应书中的例子来看,依旧是machine learning in action)的分类预测标签。与给出的样本真实标签对比,就可能出现误差(即错误)。如果某个样本预测错误,则它对应的错误值为该样本的权重,如果分类正确,则错误值为0. 最后累加5个样本的错误率之和,记为ε。

2. 通过ε来计算该弱分类器的权重α,公式如下:

技术分享3.  通过α来计算训练下一个弱分类器样本的权重D,如果对应样本分类正确,则减小该样本的权重,公式为:技术分享如果样本分类错误,则增加该样本的权重,公式为:

技术分享

4. 循环步骤1,2,3来继续训练多个分类器,只是其D值不同而已。

 

AdaBoost算法的步骤为:更新训练数据权值->在此权值上训练弱分类器(策略为最小化分类误差率)->计算分类误差率(误分类样本的权值之和)->计算分类器系数(要用到上一步的分类误差率)->更新训练权值->构建基本分类器的线性组合,一直循环,直到基本分类器的线性组合没有误分类点。

 

AdaBoost的做法:

  • 提高那些被前一轮弱分类器错误分类样本的权值,而降低那些被正确分类样本的权值。

加权多数表决的方法,加大分类误差率小的弱分类器的权值,使其在表决中起较大作用,减小分类误差率大的弱分类器的权值,使其在表决中起较小的作用

 

 

 

 

4.GBDT

 

 

 

 

5.xgboost

 

机器学习树的算法总结