分类算法(中)
离散化问题
决策树中我们不希望看到的是数字型属性,对于分支来说不好处理。
连续型的属性:血压、身高、工资。这些值都是在一个区间内可以取到的。
离散化就是针对于连续这个属性来解决问题的
离散化:简单的方法就是将连续的数据进行分段,也就是区间的划分。
我们去面对一个有关于年龄的分类问题,我们没有必要每一个年龄下的取值类别。假如我们调查的是一个理财产品中:年轻人、中年人、老年人分别购买力是什么样子的。==我们不需要去计算每一个用户年龄的类别,而是需要将年龄分段,==比如我们将小于35岁的叫做年轻人、35岁到55岁之间的叫中年人,55岁以上的叫老年人。(这样就是一个离散化的过程)
过拟合问题
导致过拟合问题的原因就是我们过分的去训练训练集。
主要现象:训练样本准确度很高、但是检验样本准确度很低。随着对训练集训练次数的提升,对于检验样本的正确率越来越低。
举个例子
对于三层决策数中,有五次检验就会有两次的失败。
其实在训练完第二层之后没有必要再进行第三层的训练。但是这样的结果是根据实验得出的。
树的深度越深,模型越复杂,
如何防止过拟合
我们通常会采用剪枝的方法去进行优化,不必去为了满足训练集中少量样本的正确性而提高网络(以上树)的复杂程度。
正确的剪枝需要实验数据。
如图在绿线的拐点处我们就应该停止对训练集的训练。
分类效果评价
集成学习
当我们用一颗决策树不保险得时候,可以去做多颗树,让树去投票这个就是集成思想。
对于机器学习,我们可以用多个弱学习算法(学习能力比较差的算法)组合一下。
袋装法
我们对A个样本进行多次抽样,可以一次抽取百分之七十的样本,这样我们就会拥有多棵树。将测试样本带入到这些树中之后投票。多棵树投票最多的类就是我们测试样本选择的类。
提升法
训练过程中给每一个样本一个权重,随着学习有的样本被正确的分开,没有被正确分开的样本增加权重,下一次着重进行训练,这样可以加快训练速度。
随机森林
抽样随机、属性也是随机的。
GBDT梯度提升树算法
决策树分为分类树和回归树,分类树中不能进行加减运算,但是回归树中可以。如果我们将回归树离散化,也就是分开区间,这样回归树就变成了一个分类树。
GBDT是一个回归树。
如果我们一个决策树预测身高为170cm但是实际身高为180,我们可以将这个差值继续输入到下一个模型中去继续预测。
梯度下降
一个模型上去不断增加模型达到优化直到符合输出标准。