热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

深度学习:知识回收(Lecture3+4PLA+DecisionTree)

Lecture3PLAandLecture4DecisionTree序Lecture3PLALecture4DecisionTree特征划分ID3信息增益C4.5信息增益率CART


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 PLA主要是用来解决二元分类问题

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

PLA计算
计算简化
其中w0=θ

那么PLA的步骤应该是


  • Step1 给样本前都加上常数字1
    PLA第一步

  • 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

F-measure


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为空集,则将当前结点标记为叶结点,类别为父结点中出现最多的类

那么,举个栗子

决策树栗子1
决策树栗子2
接下来我们对左边<&#61;30 的age进行继续的划分

决策树例子3
那么假设我们通过student这个类别来进行划分

子结点可以被分成yes 和 no

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


特征划分


ID3 信息增益

对于ID3&#xff0c;信息增益&#xff08;information gain&#xff09;

步骤如下&#xff1a;

ID3
那么举个计算的例子


Dataxylabel
A1111
A2010
A3100
A4000

ID3例子


C4.5 信息增益率

C4.5例子
同样以上面的例子计算
例子


CART GINI指数

CART

以上面的例子进行计算

CART例子


连续特征

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

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

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

对于这些连续的特征&#xff0c;只需要分区对应即可

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


剪枝

剪枝可以帮助提升泛化性能&#xff0c;简单的两种

预剪枝和后剪枝


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

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


额外说一下

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

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

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

哼&#xff5e;


推荐阅读
  • 本文由编程笔记#小编为大家整理,主要介绍了logistic回归(线性和非线性)相关的知识,包括线性logistic回归的代码和数据集的分布情况。希望对你有一定的参考价值。 ... [详细]
  • 阿里Treebased Deep Match(TDM) 学习笔记及技术发展回顾
    本文介绍了阿里Treebased Deep Match(TDM)的学习笔记,同时回顾了工业界技术发展的几代演进。从基于统计的启发式规则方法到基于内积模型的向量检索方法,再到引入复杂深度学习模型的下一代匹配技术。文章详细解释了基于统计的启发式规则方法和基于内积模型的向量检索方法的原理和应用,并介绍了TDM的背景和优势。最后,文章提到了向量距离和基于向量聚类的索引结构对于加速匹配效率的作用。本文对于理解TDM的学习过程和了解匹配技术的发展具有重要意义。 ... [详细]
  • 生成式对抗网络模型综述摘要生成式对抗网络模型(GAN)是基于深度学习的一种强大的生成模型,可以应用于计算机视觉、自然语言处理、半监督学习等重要领域。生成式对抗网络 ... [详细]
  • 推荐系统遇上深度学习(十七)详解推荐系统中的常用评测指标
    原创:石晓文小小挖掘机2018-06-18笔者是一个痴迷于挖掘数据中的价值的学习人,希望在平日的工作学习中,挖掘数据的价值, ... [详细]
  • 本文介绍了Python语言程序设计中文件和数据格式化的操作,包括使用np.savetext保存文本文件,对文本文件和二进制文件进行统一的操作步骤,以及使用Numpy模块进行数据可视化编程的指南。同时还提供了一些关于Python的测试题。 ... [详细]
  • sklearn数据集库中的常用数据集类型介绍
    本文介绍了sklearn数据集库中常用的数据集类型,包括玩具数据集和样本生成器。其中详细介绍了波士顿房价数据集,包含了波士顿506处房屋的13种不同特征以及房屋价格,适用于回归任务。 ... [详细]
  • 本文介绍了使用Spark实现低配版高斯朴素贝叶斯模型的原因和原理。随着数据量的增大,单机上运行高斯朴素贝叶斯模型会变得很慢,因此考虑使用Spark来加速运行。然而,Spark的MLlib并没有实现高斯朴素贝叶斯模型,因此需要自己动手实现。文章还介绍了朴素贝叶斯的原理和公式,并对具有多个特征和类别的模型进行了讨论。最后,作者总结了实现低配版高斯朴素贝叶斯模型的步骤。 ... [详细]
  • Gitlab接入公司内部单点登录的安装和配置教程
    本文介绍了如何将公司内部的Gitlab系统接入单点登录服务,并提供了安装和配置的详细教程。通过使用oauth2协议,将原有的各子系统的独立登录统一迁移至单点登录。文章包括Gitlab的安装环境、版本号、编辑配置文件的步骤,并解决了在迁移过程中可能遇到的问题。 ... [详细]
  • 本文介绍了如何使用n3-charts绘制以日期为x轴的数据,并提供了相应的代码示例。通过设置x轴的类型为日期,可以实现对日期数据的正确显示和处理。同时,还介绍了如何设置y轴的类型和其他相关参数。通过本文的学习,读者可以掌握使用n3-charts绘制日期数据的方法。 ... [详细]
  • 先看官方文档TheJavaTutorialshavebeenwrittenforJDK8.Examplesandpracticesdescribedinthispagedontta ... [详细]
  • 【shell】网络处理:判断IP是否在网段、两个ip是否同网段、IP地址范围、网段包含关系
    本文介绍了使用shell脚本判断IP是否在同一网段、判断IP地址是否在某个范围内、计算IP地址范围、判断网段之间的包含关系的方法和原理。通过对IP和掩码进行与计算,可以判断两个IP是否在同一网段。同时,还提供了一段用于验证IP地址的正则表达式和判断特殊IP地址的方法。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • 本文介绍了在MFC下利用C++和MFC的特性动态创建窗口的方法,包括继承现有的MFC类并加以改造、插入工具栏和状态栏对象的声明等。同时还提到了窗口销毁的处理方法。本文详细介绍了实现方法并给出了相关注意事项。 ... [详细]
  • Postgresql备份和恢复的方法及命令行操作步骤
    本文介绍了使用Postgresql进行备份和恢复的方法及命令行操作步骤。通过使用pg_dump命令进行备份,pg_restore命令进行恢复,并设置-h localhost选项,可以完成数据的备份和恢复操作。此外,本文还提供了参考链接以获取更多详细信息。 ... [详细]
  • HashMap的扩容知识详解
    本文详细介绍了HashMap的扩容知识,包括扩容的概述、扩容条件以及1.7版本中的扩容方法。通过学习本文,读者可以全面了解HashMap的扩容机制,提升对HashMap的理解和应用能力。 ... [详细]
author-avatar
214812031_88fe08
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有