Lecture 3 PLA and Lecture 4 Decision Tree

  • Lecture 3 PLA
  • Lecture 4 Decision Tree
    • 特征划分
      • ID3 信息增益
      • C4.5 信息增益率
      • CART GINI指数
    • 连续特征
    • 剪枝
  • 额外说一下

晚上开始继续写啦,这篇主要将PLA 和 决策树 DecisionTree

主要篇章应该是在决策树上,依稀记得决策树自己实现的代码写的比较久(也可能是偷懒哈)

哼~

Lecture 3 PLA

PLA主要是用来解决二元分类问题

首先我们有样本x={x1,x2,x3,…,xn} 、权重向量w={w1,w2,w3,…,wn}、以及阈值θ



其中w0=θ

那么PLA的步骤应该是

  • Step1 给样本前都加上常数字1

  • Step 2 初始化权重,w0=0或其他值

  • Step 3 遍历所有样本

    发现预测是错误的时候,即更新权重wt+1 = wt+yn*xn

    重复遍历所有样本直到所有的样本都预测正确

    此时的权重w就可以用来预测测试集的label

PLA的核心思想非常简单,就是要尽量满足所有样本的预测正确

但是PLA不适用于非线性问题,并且并非所有时候的权重w能满足所有样本预测正确

对于权重无法满足的情况有两种解决方法
1、 设置迭代次数,在达到次数时直接停止继续遍历,无论满不满足所有样本
2、用最优解的w作为 初始化的权重进行遍历和更新,找到最优的w放入口袋
即口袋pocket算法

对于二元分类的验证集评测来说分为四个评测指标


准确率表示被正确分类的样本占总样本的比例

召回率是覆盖率的度量,表示有多少正例被正确分类

精度表示被分为正例的示例中实际为正例的比例

精度P和召回率R有时候会出现的矛盾的情况, F-Measure是Precision和Recall加权调和平均
α=1即F1

Lecture 4 Decision Tree

决策树,看了下似乎不难哈,就是分类方法多(所以才写的慢,嗯肯定是这样)

处理离散和连续特征

剪枝:预剪枝、后剪枝等

对于决策树来说,就是要先建树。

  • Step 1 初始化 : 创建根结点,该根结点拥有所有的数据集以及所有的特征
  • Step 2 选择特征 : 遍历当前所有结点的数据集和特征,根据某种原则,选择其中一个特征
  • Step 3 划分数据 : 根据这个特征的取值,将当前数据集划分成为若干个子数据集
  • Step 4 创建结点 : 为每一个子数据集创建一个结点,并且删除刚刚选中的特征
  • Step 5 递归建树 : 对于每个子结点,返回到Step 2 ,直到达到边界条件,则回溯
  • Step 6 完成建树 : 叶子结点采用多数投票的方式判定自身的类别

那么对于其中Step 5 来说,边界条件是什么呢,假设当前结点的数据集为D,特征集为F

  1. D中样本属于同一个类别 1 ,则将当前结点标记为类别1 的叶结点
  2. F为空集或者D中所有样本在F中的所有特征值相同,则此时已经达到边界,将当前结点标记为叶结点,类别为D中出现最多的类
  3. D为空集,则将当前结点标记为叶结点,类别为父结点中出现最多的类

那么,举个栗子



接下来我们对左边<=30 的age进行继续的划分


那么假设我们通过student这个类别来进行划分

子结点可以被分成yes 和 no

此时我们可以选择的特征划分的方法有3种

特征划分

ID3 信息增益

对于ID3,信息增益(information gain)

步骤如下:


那么举个计算的例子

Data x y label
A1 1 1 1
A2 0 1 0
A3 1 0 0
A4 0 0 0

C4.5 信息增益率


同样以上面的例子计算

CART GINI指数

以上面的例子进行计算

连续特征

上面举的例子都是关于离散特征的处理,对于连续特征来说,应该如何处理呢

连续特征我们首先可以将数据看作一个范围

譬如(0,1), [-20,20] 等等

对于这些连续的特征,只需要分区对应即可

譬如0-0.5记作1,0.5-1记作2,那么(0,1)就被划分成两个离散的特征了

剪枝

剪枝可以帮助提升泛化性能,简单的两种

预剪枝和后剪枝

  1. 预剪枝,是在决策树构造的时候进行的,对于当前的结点未达到作为子结点的终止条件之前就进行停止,并将该结点作为叶子结点。
    可以基于某个划分方式来确认对某个特征不再进行划分
    若划分后验证集的正确率无法提高则无需划分

  2. 后剪枝,在决策树形成后,通过后续遍历进行尝试,若发现某个非叶子结点变为叶子结点后,在验证集上的正确率不下降,则将其变成叶子结点

额外说一下

决策树一般用在一些流程、营销等市场战略分类上

对于决策树来说,剪枝和设定上限高度可以有效解决过拟合问题

最后,这篇文章过了几天才出来真不是我偷懒,昨天电脑坏了,先用ipad把bpnn的推导写出来就先写那篇了,今天先修好了电脑才开始写的

哼~

深度学习:知识回收(Lecture3+4 PLA+Decision Tree)相关推荐

  1. 深度学习:知识回收(Lecture1and2)

    知识回收~ 回到深度学习(基础知识回收) Lecture 1 数据集处理 Lecture 2 K近邻与朴素贝叶斯 --分类和回归 KNN算法 NB朴素贝叶斯算法 复习路线 回到深度学习(基础知识回收) ...

  2. 复旦大学邱锡鹏教授:一张图带你梳理深度学习知识脉络

    Datawhale 作者:邱锡鹏,复旦大学教授 寄语:本文梳理了深度学习知识体系,分为机器学习.神经网络和概率图模型,同时对机器学习算法类型.深度学习原理框架等进行了梳理,帮助大家更好地学习和入手深度 ...

  3. 吴恩达创建deeplearning.ai讲授AI课程 ,向全世界普及深度学习知识

    吴恩达称正在做的AI项目有三个,deeplearning.ai只是其中的第一个. 昨晚,前百度首席科学家吴恩达在其Twitter上发布重磅消息称,deeplearning.ai课程正式登录Couser ...

  4. 深度学习+知识图谱,一个不小心就顶流的话题

    知识图谱是个很热的话题,是学术界研究的热点,也是工业界主推的重点.我自己接触到的就不下十个项目,都自称使用了知识图谱技术.不过,到底什么是知识图谱,却发现各家的理解差异很大--有人大唱赞歌,说知识图谱 ...

  5. 你不得不了解的深度学习知识(二)

    你不得不了解的深度学习知识 书接上回,你不得不了解的深度学习知识(一),了解了卷积神经网络,以及循环神经网络.这节把剩下的两种常见网络给讲述完毕! 3 生成对抗网络 – Generative Adve ...

  6. 重磅!深度学习知识总结和调参技巧开放下载了

    近年来,人工智能正在进入一个蓬勃发展的新时期,这主要得益于深度学习和CV领域近年来的发展和成就.在这其中,卷积神经网络的成功也带动了更多学术和商业应用的发展和进步. 为了避免"内卷" ...

  7. 「深度学习知识体系总结(2021版)」开放下载了!

    随着世界技术的迭代与发展,人工智能和机器学习正在超自动化领域,扮演着越来越重要的角色.2020年的冠状病毒疫情突发,整个世界都在防疫的道路上披荆斩棘.人工智能发挥了重大作用,智能测温.智能消毒.智能建 ...

  8. 22张图全解深度学习知识,建议收藏

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 转载于:Sophia知乎 https://zhuanlan.zhih ...

  9. 哪些是我们必须要会深度学习知识

    在当前的就业环境下,人工智能工程师的高薪优势凸显,可却有不少人陷入了瓶颈期,不知道该朝着哪个方向发展自己,"掌握理论知识但缺乏实战经验"成为了求职晋升路上的短板,硬件设备的不足和自 ...

最新文章

  1. yii mailer 扩展发送邮件
  2. admi后台 vue_vue-admin-webapp后台管理系统
  3. c++ 怎么读取rtf文件_最全集合!Word、PPT、Excel、PDF文件转换方法大全!建议收藏...
  4. 元宇宙教不会区块链赚钱
  5. margin负值布局(一)
  6. jmeter跨线程组传多个值_Jmeter 跨线程组传递参数 之两种方法(转)
  7. Tensorflow ExponentialMovingAverage 详解
  8. 在Project中引用zedgraph控件
  9. 数据库MySQL--常见基础命令
  10. 走向.NET架构设计—第四章—业务层分层架构(中篇)
  11. php定位并且获取天气信息
  12. textjoin去重_Excel 2016新增函数之TEXTJOIN
  13. php word 简历模板,php程序员简历模板
  14. 服务端技术进阶(三)从架构到监控报警,支付系统的设计如何步步为营
  15. 一位博士在华为的 22 年(干货满满)
  16. 网卡-驱动-DMA API-TCP/IP
  17. 微信小程序的转发分享功能
  18. 串口调试助手fx2n_PLC串口调试助手详细讲解(结合实操)
  19. DataV实现大屏滚动含后端代码
  20. s5p4418摄像头程序使用教程

热门文章

  1. java.lang.IncompatibleClassChangeError: Found interface org.apache.poi.util.POILogger, but class was
  2. 局部响应归一化LRN(Local Response Normalization)
  3. ICML 2019 | 图马尔可夫神经网络
  4. 24 式加速你的 Python
  5. 在线作图|微生物多样性分析——稀释曲线
  6. iMeta | 中科院生态中心邓晔组发布微生物组网络分析平台iNAP(图文/视频教程)
  7. PICRUSt:16S预测宏基因组-扩增子分析锦上添花
  8. linux 类型排序,Linux命令之排序命令sort使用实例
  9. R语言对dataframe进行行数据筛选(row selection)多种方案:使用R原生方法、data.table、dplyr等方案
  10. R语言使用str_order函数和str_sort函数对字符向量进行排序(str_order返回字符串排序的次序值(索引)、str_sort返回排序后的字符串)