数据挖掘(5)分类数据挖掘:基于距离的分类方法

一、分类挖掘的基本流程

最常用的就是客户评估

1.1分类器概念

1.2分类方法

  • 基于距离的分类方法
  • 决策树分类方法
  • 贝叶斯分类方法

1.3分类的基本流程

  1. 步骤

    1. 建立分类模型
      • 通过分类算法对训练集训练,得到有指导的学习、有监督的学习
      • 预定义的类:类标号属性确定
    2. 使用模型进行分类
      • 测试数据集:评估模型的预测准确度
  2. 流程图
  3. 有指导的学习、无指导的学习

    1. 有指导学习(分类):
      • 训练样本的类标号已知
      • 根据训练集中得到的规则对新数据进行分类
    2. 无指导学习(聚类):
      • 训练样本的类标号未知
      • 通过一系列度量等,试图确立数据中的类、聚类的存在。

1.4分类的基本问题

数据准备

评估方法

  • 对用于分类、预测的方法模型进行评估
  • 预测的准确率
  • 速度:建立模型时间、使用模型时间
  • 强壮性(鲁棒性):处理噪声和空缺值的能力
  • 可伸缩(扩展性):处理大数据、构造模型能力
  • 可理解性:模型的可理解能力
  • 规则的优越性:判定树大小、分类规则的简洁性

二、基于距离的分类算法

1.常见的距离度量

欧几里得距离

 曼哈顿距离

 明可夫斯基距离

加权的明可夫斯基距离

2.K近邻分类

  1. 定义:测量不同特征值之间的距离方法进行分类

  2. 工作原理:

  3. 优缺点

    • 优点:精度高、对异常值不敏感,无数据输入假定
    • 缺点:时空复杂度高、适用于数值型、离散型数据
  4. 注意的问题

    1. K值选择:一般选择一个比较小的数,需要用大量实验来选择
    2. 结果的输出:多数表决决定
    3. 距离度量:一般采用p=2时,欧氏距离。同时注意权重问题

三、决策树分类方法

基本概念
  1. 决策树:对数据进行处理、利用归纳算法生成可读的规则和决策树,并使用决策树对数据进行分类。
  2. 基本组成:根节点、内部节点、叶节点
  3. 两个过程
    1. 树的建立
      • 所有训练样本都在根节点
      • 根据属性来划分样本
    2. 树的剪枝
      • 许多分支可能反映的是训练数据中的噪声数据、孤立点,将这些分支剪枝
    3. 注意:
      在决策树算法中,所有属性均为符号值,即离散值,因此
      若有取连续值的属性,必须首先进行离散化。
       
决策树生成算法
  1. 运用算法:贪心算法、自上而下、分治
  2. 构建决策树关键:测试属性的选择
  3. 注意:属性必须是离散值,在运用时要考虑是否离散化
  4. 常见的决策树生成算法:CLS、ID3、C4.5、CAR
 CLS
  1. 只说了划分树的方法、而没有规定选择测试属性的标准和依据
  2. 选用不同属性节点会出现很大的不同
  3. 举例
 ID3
  1. 针对属性选择问题而提出
  2. 选择最大信息增益的属性作为当前划分节点
  3. 步骤:在第六章有详细说明
  4. 在电信行业应用实例:
    • PPT61-70
  5. 优缺点:
    • 优点:简单
    • 缺点:
      • 偏向分隔属性中取值多的一个
      • 只能处理离散属性
      • 无法对未知分隔属性处理
      • 没有剪枝操作、容易受到噪声、波动影响
C4.5
  1. 在ID3算法中:偏向分割属性中取值多的一个
    • 当子集规模越小,每个子集内只有一个行,信息增益必然最大(熵最小)
    • 解决方法:增益比例
    • C4.5根据增益比例选择节点分裂属性
  2. 增益比例G(X,Y)
    • 类别X、分裂属性Y
    • G(X,Y)\;=\;\frac{I(X\vert Y)}{H(Y)}=\frac{H(X)-H(X\vert Y)}{H(Y)}
    • 引入分母H ( Y ) 偏向分割属性中取值较多的一个属性
    • H(Y)\;=\;\overset{}{\underset{}{\sum_{i=1}^NP(y_i)}}\;\log_2P(y_i)
  3. 存在问题与解决的方法:
    • 取值个数过多、过少

      • 分割属性属性取值个数过多的话,H(Y)增大,但是G(X,Y)减小
      • 当取值个数很少时,存在 P(y_i) =1,则H(Y)=0,G(X,Y)就会很大
      • 解决方法
    • ID3只能处理离散分割属性

      • ·原因:如果把连续值看做离散值,会产生分割属性偏向问题
      • 解决方法
    • 对于连续取值的属性,如何选择阈值

      • 将取值从小到大排序:{y1,y2,…,yn}
      • 对于每个yi计算增益比例,找到最大值G(X,Y)
    • ID3:无法对未知分割属性进行处理

      • 原因:分割属性Y的一个取值yi,由于一些原因被计入
      • 解决方法:平均值代替(数值型属性)、概率法代替(离散属性)
    • ID3:无树剪枝,易受到噪声、波动影响

      • 解决方法:K阶交叉验证

      • 用K-1份训练决策树、用剩下的1份去测试性能,总共进行k次迭代

Cart算法(分类回归树)
  1. 采用:基于最小距离的基尼指数估计函数
    • 生成二叉树
    • 可以处理连续取值的数据
      • 20、23、24、26,划分为两类一类小于某个数,另一类大于某个数
      • 但是不推荐,最好离散化
  2. Gini指数
    • Gini(D)\;=\;1-{\textstyle\sum_{i=1}^m}p_i^2
    • 取值越小,表达的不确定性越小

    • 属性必须是二叉结构

    • 计算某个属性有几个二叉结构:属性值为n,有\frac{(2^n-2)}2​种划分方法

    • 举例

      •  与ID3算法一致,只是根据Gini_A(D)=\frac{\vert D_1\vert}{\vert D\vert}Gini(D_1)\;+\;\frac{\vert D_2\vert}{\vert D\vert}Gini(D_2)\;计算,选择Gini指标最小的。

决策树剪枝
  1. 目的:处理由于噪声数据训练出的异常,用剪枝来处理过分拟合

  2. 先剪枝:

    • 在完全正确分类训练集之前就停止树的生长。
    • 最直接方法:限定树的最大生长高度,将超过树高的部分进行剪枝
  3. 后剪枝:

    • "完全生长"的树剪去子树

提取分类规则
  1. 从决策树的根节点到任一个叶节点所形成的一条路径构成一条分类规则。
  2. 用if - then 表示

四、贝叶斯分类方法

贝叶斯推理的问题是条件概率推理问题

4.1相关概念

 举例

4.2.朴素贝叶斯分类

 

举例

 

 

 4.3朴素贝叶斯的独立假设

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/109803.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【软考】6.2 网络安全技术

《网络安全技术》 防火墙 一道大门,隔离内网和外网主要分隔外网的威胁,对内网的直接攻击无能为力 入侵检测系统(IDS) 位于防火墙后的第二道屏障监听设备:监控当前系统 / 用户行为,无需网络流量即可工作尽…

MySQL中如何进行分库分表的设计和实现?

分库分表是一种常用的数据库扩展方式,可以提高数据库的并发处理能力和扩展性,下面是分库分表的设计和实现的一般步骤: 数据库选择:选择合适的数据库管理系统(DBMS),如MySQL,支持分库…

6.7 案例分析与实现

思维导图: 6.7 案例分析与实现 #### 案例6.2: 六度空间理论 【案例分析】 - **背景介绍**: 六度空间理论提及在任意两人之间最多仅有6个人的连接。尽管这一理论被广泛提及并得到了某种程度的验证,但从科学角度看,它仍然只是一…

214. Devu和鲜花

214. Devu和鲜花 - AcWing题库 如果每个盒子里的花的数量是无限的,用隔板法可以得出答案是 现在每个盒子中区的花数要满足n个条件 我们可以求答案的补集,用全部方案数减去补集方案数 每一个不符合条件的要求为,设为Bi 补集方案数为就成了…

24、Flink 的table api与sql之Catalogs(java api操作视图)-3

Flink 系列文章 1、Flink 部署、概念介绍、source、transformation、sink使用示例、四大基石介绍和示例等系列综合文章链接 13、Flink 的table api与sql的基本概念、通用api介绍及入门示例 14、Flink 的table api与sql之数据类型: 内置数据类型以及它们的属性 15、Flink 的ta…

7.MidBook项目经验之阿里OSS,微信支付(退款),定时任务,图表数据处理

1.阿里云实名认证 阿里云对象存储oss,标准高频率访问, 低频访问存储,归档存储(根本不经常访问) 冗余存储(备份) 读写权限(所有人还是自己访问) Component public class ConstantOssPropertiesUtils implements InitializingBean {不用注入,由spring创建bean使用流 MultipartFil…

Flask自定义装饰和g的使用

1. 在commons.py文件中新增一个装饰器类: 注:一定要加入wraps进行装饰否则,装饰器在给多个函数进行装饰时会报错 from functools import wraps from flask import session, current_app, g# 定义登陆装饰器,封装用户的登陆数据 def user_log…

软考-认证技术原理与应用

本文为作者学习文章,按作者习惯写成,如有错误或需要追加内容请留言(不喜勿喷) 本文为追加文章,后期慢慢追加 by 2023年10月 网络安全认证技术是指通过密码、数字证书、生物特征识别等手段,对使用网络的用…

【Mac】时间机器频繁提示磁盘没有正常推出

问题描述 有一次在进行时间机器备份的时候总是提示“磁盘没有正常推出”,并且好几次直接导致系统重启… 估计是 MacOS 系统 bug 解决 看了 Vex 一个帖子之后设置了一个硬盘是否休眠就好了,不要勾选让硬盘处于休眠就可以了,在电池选项界面中…

MySQL 8.0 OCP认证精讲视频、环境和题库之五 事务、缓存

redo log buffer: 缓存与事务有关的redo log ,用来对mysql进行crash恢复,不可禁用; 日志缓冲区是存储要写入磁盘上日志文件的数据的内存区域。日志缓冲区大小由innodb_Log_buffer_size变量定义。 默认大小为16MB。日志缓冲区的内容会定…

2023-10-17 mysql-从库从binlog回放事件-分析

摘要: 2023-10-17 mysql-从库从binlog回放事件-分析 上下文: 2023-10-17 mysql-配置主从-记录-CSDN博客 场景: 两个机器上分别装mysql一个mysql配置成master,另外一个配置成slave, 并建立主从关系配置binlog为row格式在master上insert一条数据在slave的handler接口ha_write…

微信小程序-4

一、使用scss编译wxss文件 1.vscode安装easysass扩展 vscode插件 - - - easysass - - - 安装 2.微信小程序 导入vscode扩展 开发者工具 - - - 视图 - - - 扩展 - - - 右侧三个点 - - - 导入已安装的vscode扩展 3.编辑 打开编辑器扩展目录,找到easysass文件夹&…

spring-statemachine 状态机自定义持久化入库

使用 spring-statemachine 状态机持久化时,可以通过内存、spring-statemachine-redis 或 spring-statemachine-data-jpa 现有方式持久化处理。 因项目审核操作记录频繁,数据量大,使用 内存 或 spring-statemachine-redis 模式不可取&#xf…

QTday02(常用类、UI界面下的开发、信号与槽)

今日任务 1. 使用手动连接,将登录框中的取消按钮使用qt4版本的连接到自定义的槽函数中,在自定义的槽函数中调用关闭函数 将登录按钮使用qt5版本的连接到自定义的槽函数中,在槽函数中判断ui界面上输入的账号是否为"admin"&#x…

v-model表单数据双向绑定-表单提交示例

示例如下&#xff1a; <!DOCTYPE html> <html lang"en"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>v-model表单数据双向绑定<…

354 俄罗斯套娃信封问题(贪心+二分)

题目 链接 给你一个二维整数数组 envelopes &#xff0c;其中 envelopes[i] [wi, hi] &#xff0c;表示第 i 个信封的宽度和高度。 当另一个信封的宽度和高度都比这个信封大的时候&#xff0c;这个信封就可以放进另一个信封里&#xff0c;如同俄罗斯套娃一样。 请计算 最多…

【17.19消失的两个数字】

目录 一、题目描述二、算法原理三、代码实现 一、题目描述 二、算法原理 三、代码实现 class Solution { public:vector<int> missingTwo(vector<int>& nums) {//找到a^bint temp0;for(auto num:nums){temp^num;}for(int i1;i<nums.size()2;i){temp^i;}//找…

Flink测试利器之DataGen初探 | 京东云技术团队

什么是 Flinksql Flink SQL 是基于 Apache Calcite 的 SQL 解析器和优化器构建的&#xff0c;支持ANSI SQL 标准&#xff0c;允许使用标准的 SQL 语句来处理流式和批处理数据。通过 Flink SQL&#xff0c;可以以声明式的方式描述数据处理逻辑&#xff0c;而无需编写显式的代码…

React 路由总结 react-router-dom6+react-router-dom5

开题 单页面应用和多页面应用 SPA&#xff1a;单页面应用程序&#xff0c;整个应用中只有一个页面(index.html) MPA&#xff1a;多页面应用程序&#xff0c;整个应用中有很多页面(*.html) react路由 现在的前端应用大多都是SPA单页面应用程序&#xff0c;也就是一个HTML页面的…

百度OCR识别图片文本字符串——物联网上位机软件

一、开发背景 根据项目需求&#xff0c;我们需要完成LED显示屏实时显示歌词的效果。最优的方法是调用歌曲播放器的API获取歌词&#xff0c;但是由于这个开发资格不是很好申请&#xff0c;因此我们采用其他方案&#xff0c;即通过OCR识别获取歌词&#xff0c;并投射到LED显示屏上…