一. 决策树
  
  决策树(Decision Tree)及其变种是另一类将输入空间分成不同的区域,每个区域有独立参数的算法。决策树分类算法是一种基于实例的归纳学习方法,它能从给定的无序的训练样本中,提炼出树型的分类模型。树中的每个非叶子节点记录了使用哪个特征来进行类别的判断,每个叶子节点则代表了最后判断的类别。根节点到每个叶子节点均形成一条分类的路径规则。而对新的样本进行测试时,只需要从根节点开始,在每个分支节点进行测试,沿着相应的分支递归地进入子树再测试,一直到达叶子节点,该叶子节点所代表的类别即是当前测试样本的预测类别。
  
  如下图 "年龄"为决策树的根节点,"年龄"为"长相"的父节点,"长相"为"年龄"的子节点,"见"与"不见"为叶子节点,再该树中同时也为标签,“长相”"年龄"等特征称为该树的属性。
  
  决策树的学习采用的是自顶向下的学习。
  
  建立决策树的基本思想为:以信息熵为度量构造以可熵值下降最快的树,到叶子节点处熵值为0。
  
  建立决策树的关键:即在当前状态下选择哪个属性(最优属性)作为分类依据。
  
  根据不同目标函数,建立决策树主要有三种算法。
  
  a) ID3 b)C4.5 c)CART
  
  a) ID3
  
  ID3算法是决策树的一种,它是基于奥卡姆剃刀原理的,即用尽量用较少的东西做更多的事。ID3算法,即Iterative Dichotomiser 3,迭代二叉树3代,是Ross Quinlan发明的一种决策树算法,这个算法的基础就是上面提到的奥卡姆剃刀原理,越是小型的决策树越优于大的决策树。即**遍历所有特征,选择信息增益最大的特征作为当前的分裂特征。
  
  特征A对训练数据集D的信息增益公式表达为g(D,A)=H(D)-H(D|A)。
  
  b) C4.5
  
  C4.5是Ross Quinlan在1993年在ID3的基础上改进而提出的。.ID3采用的信息增益度量存在一个缺点,它一般会优先选择有较多属性值的Feature,因为属性值多的Feature会有相对较大的信息增益(信息增益反映的给定一个条件以后不确定性减少的程度,必然是分得越细的数据集确定性更高,也就是条件熵越小,信息增益越大).为了避免这个不足C4.5中是用**信息增益率(gain ratio)**来作为选择分支的准则。信息增益率通过引入一个被称作分裂信息(Split information)的项来惩罚取值较多的Feature。所以C4.5在处理未知数据上相比较于ID3具有更好的泛化能力。
  
  信息增益率公式表达为:
  
  选择具有最大增益率的属性作为分裂属性。
  
  c) CART
  
  Gini系数
  
  Gini系数可以用于评估属性与标签之间的差异。该系数主要在CART中使用。Gini系数度量数据划分或训练元组集D的不纯度,其公式可表示为:
  
  二.随机森林
  
  1.Boostraping策略
  
  源自英文"pull up by your own boostraps",意思是依靠自己的资源,称为自助法,即依靠自身力量不借助外力让自己变得更好。它是一种有放回的抽样方法。
  
  2.Begging(boostrap aggregation)策略
  
  a) 从样本集中重采样(有重复的)选出n个样本
  
  b) 在所有属性上,对这n个样本建立分类器(ID3,C4.5,CART,SVM,Logistic回归等)
  
  c) 重复以上两步m次,即获得m个分类器
  
  d) 将数据放在这m个分类器上,最后根据这m个分类器的投票结果,决定数据属于哪一类
  
  3.随机森林
  
  随机森林在begging基础上做了修改。
  
  a)从样本集中用Boostrap采样选出n个样本;
  
  b)从所有属性中随机选择k个属性,选择最佳分割属性最为节点建立CART决策树;
  
  c)重复以上两步m次,即建立了m棵CART决策树;
  
  d)这m个CART形成随机森林,通过投票表决结果,决定数据属于哪一类
  
  注:随机森林的随机性体现在去样本的随机性和属性的随机性两方面。
  
  三.Adaboost
  
  Adaboost,是应为"Adaptive Boosting"(自适应增强)的缩写,是一种机器学习方法,有Yoav Freund和Robert Schapire提出。
  
  AdaBoost方法的自适应在于:前一个分类器分错
  
  的样本会被用来训练下一个分类器。AdaBoost方
  
  法对于噪声数据和异常数据很敏感。但在一些问题中,AdaBoost方法相对于大多数其它学习算法而言,不会很容易出现过拟合现象。
  
  Adaboost(对于m=1,2,…M)方法如下:
  
  设训练数据集T={(x1,y1), (x2,y2)…(xN,yN)}
  
  初始化训练数据的权值分布
  
  使用具有权值分布Dm的训练数据集学习,
  
  得到基本分类器
  
  计算Gm(x)在训练数据集上的分类误差率
  
  计算Gm(x)的系数
  
  更新训练数据集的权值分布
  
  这里,Zm是规范化因子
  
  它的目的仅仅是使Dm+1成为一个概率分布
  
  构建基本分类器的线性组合
  
  得到最终分类器
  
  Adaboost算法举例
  
  给定下列训练样本,试用Adaboost算法学习一个强分类器。
  
  解
  
  1.初始化训练数据的权值分布(m=1)
  
  由
  
  得
  
  2.在权值分布为D1的训练数据上,阈值v取2.5
  
  时误差率最低,故基本分类器为:
  
  3.计算G1(x)在训练数据集上的误差率
  
  e1=P(G1(xi)≠yi) =0.3
  
  4.计算G1的系数:
  
  5.f1(x)=0.4236*G1(x)
  
  分类器sign(f1(x))在训练数据集上有3个误分
  
  类点。
  
  6.更新训练数据的权值分布(m=2):

- (void)useBlockOperationAddExecutionBlock {

// 1.创建 NSBlockOperation 对象
NSBlockOperation *op www.michenggw.com= [NSBlockOperation blockOperationWithBlock:^{
for (int i =www.mhylpt.com 0; i < 2; i++) {
[NSThread sleepForTimeInterval:2]; // 模拟耗时操作
NSLog(@"1---%@", [NSThread currentThread]); // 打印当前线程
}
}];

// 2.添加额外的操作
[op addExecutionBlock:^{
for (int i = 0; i <www.gcyL157.com 2; i++) {
[NSThread sleepForTimeInterval:2]; // 模拟耗时操作
NSLog(@"2---%@", [NSThread currentThread]); // 打印当前线程
  
  由
  
  得D2=(0.0715, 0.0715, 0.0715, 0.0715, 0.0715,
  
  0.0715,0.1666, 0.1666, 0.1666, 0.0715)
  
  7.在权值分布为D2的训练数据上,阈值v取8.5
  
  时误差率最低,故基本分类器为:
  
  8.G2(x)在训练数据集上的误差率
  
  e2=P(G2(xi)≠yi) www.feifanyule.cn=0.2143(0.0715*3)
  
  9.计算G2的系数:
  
  10.f2(x)=0.4236G1(x) + 0.6496G2(x)
  
  分类器sign(f2(x))在训练数据集上有3个误分类点
  
  11.更新训练数据的权值分布(m=3.):
  
  由
  
  得D3=(0.0455, 0.0455, 0.0455, 0.1667, 0.1667,
  
  0.01667,0.1060, 0.1060, 0.1060, 0.0455)
  
  12.在权值分布为D3的训练数据上,阈值v取5.5
  
  时误差率最低,故基本分类器为:
  
  13.G3(x)在训练数据集上的误差率
  
  e3=P(G3(xi)≠yi) =www.haom178.com/ 0.1820(0.0455*4)
  
  14.计算G3的系数:
  
  15.f3(x)=0.4236G1(x) + 0.6496G2(x)+0.7514G3(x)
  
  分类器sign(f3(x))在训练数据集上有0个误分类点
  
  16.故选择sign(f3(x))分类器。
  
 

决策树与随机森林Adaboost算法的更多相关文章

  1. R语言︱决策树族——随机森林算法

    每每以为攀得众山小,可.每每又切实来到起点,大牛们,缓缓脚步来俺笔记葩分享一下吧,please~ --------------------------- 笔者寄语:有一篇<有监督学习选择深度学习 ...

  2. Bagging与随机森林(RF)算法原理总结

    Bagging与随机森林算法原理总结 在集成学习原理小结中,我们学习到了两个流派,一个是Boosting,它的特点是各个弱学习器之间存在依赖和关系,另一个是Bagging,它的特点是各个弱学习器之间没 ...

  3. web安全之机器学习入门——3.2 决策树与随机森林

    目录 简介 决策树简单用法 决策树检测P0P3爆破 决策树检测FTP爆破 随机森林检测FTP爆破 简介 决策树和随机森林算法是最常见的分类算法: 决策树,判断的逻辑很多时候和人的思维非常接近. 随机森 ...

  4. [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest)

    [ML学习笔记] 决策树与随机森林(Decision Tree&Random Forest) 决策树 决策树算法以树状结构表示数据分类的结果.每个决策点实现一个具有离散输出的测试函数,记为分支 ...

  5. 逻辑斯蒂回归VS决策树VS随机森林

    LR 与SVM 不同 1.logistic regression适合需要得到一个分类概率的场景,SVM则没有分类概率 2.LR其实同样可以使用kernel,但是LR没有support vector在计 ...

  6. 决策树、随机森林与k-means聚类算法

    决策树的构建满足信息熵增益最大化原则 决策树的优点: 可解释性高 能处理非线性的数据 不需要数据归一化 可以用于特征工程 对数据分布没有偏好 广泛使用 容易软件实现 可以转化为规则 决策树的弱点 启发 ...

  7. 什么是机器学习的分类算法?【K-近邻算法(KNN)、交叉验证、朴素贝叶斯算法、决策树、随机森林】

    1.K-近邻算法(KNN) 1.1 定义 (KNN,K-NearestNeighbor) 如果一个样本在特征空间中的k个最相似(即特征空间中最邻近)的样本中的大多数属于某一个类别,则该样本也属于这个类 ...

  8. 【Python数据挖掘】决策树、随机森林、Bootsing、

    决策树的定义 决策树(decision tree)是一个树结构(可以是二叉树或非二叉树).其每个非叶节点表示一个特征属性上的测试,每个分支代表这个特征属性在某个值域上的输出,而每个叶节点存放一个类别. ...

  9. Machine Learning笔记整理 ------ (五)决策树、随机森林

    1. 决策树 一般的,一棵决策树包含一个根结点.若干内部结点和若干叶子结点,叶子节点对应决策结果,其他每个结点对应一个属性测试,每个结点包含的样本集合根据属性测试结果被划分到子结点中,而根结点包含样本 ...

随机推荐

  1. leetcode笔记(二)94. Binary Tree Inorder Traversal

    题目描述 (原题目链接) Given a binary tree, return the inorder traversal of its nodes' values. For example:Giv ...

  2. 【学时总结】 ◆学时·IV◆ 数位DP

    [学时·IV] 数位DP ■基本策略■ 说白了就是超时和不超时的区别 :) 有一些特别的题与数位有关,但是用一般的枚举算法会超时.这时候就有人提出了--我们可以用动态规划!通过数字前一位和后一位之间的 ...

  3. 记一次微信小程序在安卓的白屏问题

    在做小程序的时候,做到了一个限时商品售卖,用到了倒计时,因为这个原因导致了安卓手机上使用小程序时,将小程序放入后台运行一段时间后,再次进入小程序后出现了页面白屏或者点击事件失效的情况,这里记录下 1. ...

  4. 4.1 基本类型和引用类型的值【JavaScript高级程序设计第三版】

    ECMAScript 变量可能包含两种不同数据类型的值:基本类型值和引用类型值.基本类型值指的是简单的数据段,而引用类型值指那些可能由多个值构成的对象. 在将一个值赋给变量时,解析器必须确定这个值是基 ...

  5. scrapy笔记2

    cookies的使用: 使用 scrapy.http.cookie.CookieJar 类的extract_cookies方法,CookieJar._cookies就是我们需要的cookies,是一个 ...

  6. POJ:2429-GCD & LCM Inverse(素数判断神题)(Millar-Rabin素性判断和Pollard-rho因子分解)

    原题链接:http://poj.org/problem?id=2429 GCD & LCM Inverse Time Limit: 2000MS Memory Limit: 65536K To ...

  7. [CodeForces948B]Primal Sport(数论)

    Description 题目链接 Solution 设f(x)为x的最大质因子 那么由题意易得\(X_1\)的范围在\([X_2-f(X_2)+1,X2]\) 同理\(X_0\)的范围在\([X_1- ...

  8. 关于RTKLIB资料整理和学习

    最近要做一个关于rtk的项目,采用rtklib源码基础上进行移植,由于我在嵌入式方面和rtk方面都是小白,所以无论是嵌入式通信还是rtk都得从头学起.嵌入式方面打算用stm32进行移植,现在已经基本掌 ...

  9. Eclipse 工作空间(Workspace)---Eclipse教程第07课

    Eclipse 工作空间(Workspace) eclipse 工作空间包含以下资源: 项目 文件 文件夹 项目启动时一般可以设置工作空间,你可以将其设置为默认工作空间,下次启动后无需再配置: 工作空 ...

  10. laravel5.5服务提供器

    目录 1. 编写服务提供器 1.1 注册方法 register 1.1.1 简单绑定 1.1.2 绑定单例 1.1.3 绑定实例 1.1.4 绑定初始数据 1.2 引导方法 boot 2. 注册服务提 ...