数据挖掘课件01-07

news2025/2/9 1:20:50

1、数挖的定义、产生原因,解决问题

数据挖掘就是寻找数据中隐含的知识并用于产生商业价值。
数据挖掘产生动因:海量数据、维度众多、问题复杂
解决问题:分类问题,聚类问题、回归问题、关联问题、

  1. 分类算法:C4.5,朴素贝叶斯(Naive Bayes),SVM,KNN,Adaboost,CART
  2. 聚类算法:K-Means,EM
  3. 关联分析:Apriori
  4. 连接分析:PageRank

2、数挖步骤:业务理解、数据理解、数据准备、构建模型、模型评估、模型部署

  1. 商业理解:我们的目的是更好地帮助业务,从业务出发,到业务中去
  2. 数据理解:收集数据后,对数据探索,包括数据描述、数据质量验证等。
  3. 数据准备:包括数据收集、数据清洗、数据补全、数据整合、数据转换、特征提取等一系列动作
  4. 模型建立:选择和应用各种数据挖掘模型,并进行优化,以便得到更好的分类结果。
  5. 模型评估:对模型进行评价,并检查构建模型的每个步骤,确认模型是否实现了预定的
    商业目标。
  6. 模型部署:最终需要转化成用户可以使用的方式,呈现的形式可以是一份报告,也可以是实现一个比较复杂的、可重复的数据挖掘过程。

3、python三重点数据类型

  • 列表(有序可重复的数组)list
  • 集合(无序的不重复序列)set()
  • 字典(每一个元素实际上是一个键值对(key:value),其中 key 是不能重复的,存入相同的key,它的 value 会被替换成最新的)dict={}

4、python 常用包

数挖常用6个模块:
math(数学模块)
datetime(日期时间模块)
random(随机模块)
re(正则匹配模块)
sys(系统接口模块)
第三方库:
numpy 、scipy、matploylib、pandas、scikit-learn
深度学习平台:tensorflow、pytorch

5、数挖:准备数据

数据清洗:

  1. 缺失值的处理
    一般就 3 种情况:删掉有缺失值的数据;补充缺失值;不做处理

  2. 异常值的处理
    异常值通常说的是那些与样本空间中绝大多数数据分布差距过大的数据
    1.数据本身的错误,需要对数据进行修正,或者直接丢弃;
    2.数据是正确的,需要根据你的业务需求进行处理。如果你的目标就是发现异常情况,那么这种异常值就需要保留下来,甚至需要特别关照。如果你的目标跟这些异常值没有关系,那么可以对这些异常值做一些修正,比如限定最大值和最小值的标准等,从而防止这些数据影响你后面模型的效果。

  3. 数据偏差处理

  4. 数据标准化
    可以防止某个维度的数据因为数值的差异,而对结果产生较大的影响。

  5. 特征选择
    特征选择就是尽可能留下较少的数据维度,而又可以不降低模型训练的效果。
    维度越多,数据就会越稀疏,模型的可解释性就会变差、可信度降低

6、构建训练集与测试集

在训练之前,你要把数据分成训练集和测试集,有些还会有验证集。

  • 如果是均衡的数据,即各个分类的数据量基本一致,可以直接随机抽取一定比例的数据作为训练样本,另外一部分作为测试样本。
  • 如果是非均衡的数据,比如在风控型挖掘项目中,风险类数据一般远远少于普通型数据,这时候使用分层抽样以保障每种类型的数据都可以出现在训练集和测试集中。

训练集和测试集的构建也是有方法的:

  • 留出法,就是直接把整个数据集划分为两个互斥的部分,使得训练集和测试集互不干扰,这个是最简单的方法,适合大多数场景;
  • 交叉验证法,先把数据集划分成 n 个小的数据集,每次使用 n-1 个数据集作为训练集,剩下的作为测试集进行 n 次训练,这种方法主要是为了训练多个模型以降低单个模型的随机性;
  • 自助法,通过重复抽样构建数据集,通常在小数据集的情况下非常适用。

7、构建模型时如何选择模型

针对每一类型的问题,就可以找到对应的算法,再根据算法的特性去进行选择

已经有一批已经有标签结果的数据—分类
缺少这些已知的信息—聚类算法
要么考虑处理数据----人工进行标注。

7.1 分类问题

分类种类:二分类、多分类、多标签分类(对于二分类和多分类,一条内容最后的结果只有一个,标签之间是互斥的关系。但是多标签分类下的一条数据可以被标注上多个标签。比如一个人既可以写玩法,也可以写美食,这两者并不冲突。)
分类算法: KNN 算法、决策树算法、随机森林、SVM 等

7.2聚类问题

跟分类不同,聚类是无监督的
聚类就是把一个数据集划分成多个组的过程,使得组内的数据尽量高度集中,而和其他组的数据之间尽量远离。
在这里插入图片描述

7.3 回归问题

分类方法输出的是离散的标签,回归方法输出的结果是连续值。、

回归方法和分类方法可以相互转化:

  • 回归-》分类。划分标签即可
    在使用回归方法得到函数方程式以后,你可以根据对新数据运算的结果进行区间分段,高于某个阈值给定一个标签,低于该阈值给定另外一个标签。比如你使用回归方法预测完房价之后,不想让客户看到真实的房价,而是给予一个范围的感受,就可以设定高于 500w 的就是 “高房价” 标签,低于 100w 的就是 “低房价” 标签;
  • 分类-》回归。加一些逻辑运算
    对于通过分类方法得到的标签,你可以根据给定标签的概率值为其增加一些运算逻辑,将标签转换到一个连续值的结果上。
    在这里插入图片描述

7.4 关联问题

无监督学习。
与分类和回归不同,关联分析是要在已有的数据中寻找出数据的相关关系,以期望能够使用这些规则去提升效率和业绩
啤酒与尿布的故事

7.5 模型集成

作集成学习,其思路就是去合并多个模型来提升整体的效果。
集成的三种方式:

  • Bagging(装袋法)–随机森林
    比如多次随机抽样构建训练集,每构建一次,就训练一个模型,最后对多个模型的结果附加一层决策,使用平均结果作为最终结果。
    在这里插入图片描述
  • Boosting(增强法)
    串行的训练,即每次把上一次训练的结果也作为一个特征,不断地强化学习的效果
    在这里插入图片描述
  • Stacking(堆叠法)
    这个方法比较宽泛,它对前面两种方法进行了扩展,训练的多个模型既可以进行横向扩展,也可以进行串行增强,最终再使用分类或者回归的方法把前面模型的结果进行整合。
    在使用堆叠法时,就需要你在具体业务场景中不断地去进行尝试和优化,以达到最佳效果。

8、模型评估

评估指标:混淆矩阵、准确率指标、ROC曲线

8.1 混淆矩阵:

在这里插入图片描述
根据上述混淆矩阵,我们可以计算一些数值。
在这里插入图片描述
在这里插入图片描述
ROC曲线:
在每一组混淆矩阵中,我们获取两个值:真正例率和假正例率。
真正例率:TP/(TP+FN)
假正例率:FP/(FP+TN)

使用这两个值在坐标系上画出一系列的点,纵坐标是真正例率,横坐标是假正例率,把这些点连起来形成的曲线就是 ROC 曲线(Receiver Operating Characteristic,接收者操作特征)。ROC 曲线下方的面积是 AUC 值(Area Under Curve,曲线下面积),ROC 曲线和 AUC 值可以反映一个模型的稳定性,当 ROC 曲线接近对角线时,说明模型输出很不稳定,模型就越不准确。
在这里插入图片描述

8.2 泛化能力评估:

过拟合:模型在训练集上表现良好,而在测试集或者验证集上表现不佳
欠拟合:在训练集和测试集上的表现都不好。

8.3 其他评估指标

  • 模型速度:主要评估模型在处理数据上的开销和时间。
  • 鲁棒性:主要考虑在出现错误数据或者异常数据甚至是数据缺失时,模型是否可以给出正确的结果,甚至是否可以给出结果,会不会导致模型运算的崩溃。
  • 可解释性:随着机器学习算法越来越复杂,尤其是在深度学习中,模型的可解释性越来越成为一个问题。由于在很多场景下(比如金融风控),需要给出一个让人信服的理由,所以可解释性也是算法研究的一大重点。

9、评估数据的处理

  • 随机抽样:即最简单的一次性处理,把数据分成训练集与测试集,使用测试集对模型进行测试,得到各种准确率指标。
  • 随机多次抽样:在随机抽样的基础上,进行 n 次随机抽样,这样可以得到 n 组测试集,使用 n 组测试集分别对模型进行测试,那么可以得到 n 组准确率指标,使用这 n 组的平均值作为最终结果。
  • 交叉验证:交叉验证与随机抽样的区别是,交叉验证需要训练多个模型。譬如,k 折交叉验证,即把原始数据分为 k 份,每次选取其中的一份作为测试集,其他的作为训练集训练一个模型,这样会得到 k 个模型,计算这 k 个模型结果作为整体获得的准确率。
  • 自助法:自助法也借助了随机抽样和交叉验证的思想,先随机有放回地抽取样本,构建一个训练集,对比原始样本集和该训练集,把训练集中未出现的内容整理成为测试集。重复这个过程 k次、构建出 k 组数据、训练 k 个模型,计算这 k 个模型结果作为整体获得的准确率,该方法比较适用于样本较少的情况。

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

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

相关文章

微信如何设置快速回复?

目前微信线上沟通已经成为绝大多数人士的首选,尤其不管是企业还是个人,都会利用微信打造私域。而做微信沟通的话,大家最为关心的就是怎么做到最快捷的回复对方。 可以看看这个功能,提前设置好常见问题的回复话术,可个…

JS + 浮动 + 递归实现图片瀑布流懒加载

思路 页面 pege 分成左浮动的数列 lineBox,每列中图片 sinImg 依次向下摆放每加载一张图片时,判断页面中哪列的高度最小,将当前图片放到最小的那列尾部监听当前图片 onload 事件,当前图片加载完成后,再加载下一张图片…

【python】前方弹幕高能:教你一键实现自动化指定直播间发送弹幕,为你喜欢的女主播疯狂打call叭~

前言 嗨喽,大家好呀~这里是爱看美女的茜茜呐 不知道你们平时看不看直播,每次看到界面中的滚动弹幕,还挺有意思。 无中生事—— 前几天看到喜欢的主播打比赛呢~ 精彩时刻恨不得双手打字打call的飞快,那激动的无语轮次了都&#…

Android生态下的Kotlin有哪些更新#GoogleIO 2023

Android生态下Kotlin有哪些更新#GoogleIO 2023 自Android官方宣布Kotlin作为Android开发的第一语言,过去将近6年时间。下面是GoogleIO 2023宣布的Android生态的4项重要更新。 Kotlin编译器2.0版本 如果你是一位Kotlin开发者,你可能会对听到这个消息感…

PMP®增持CSPM-2等级证书,免重新考试与学习,申请简单!

好消息!好消息!好消息! 2023年起,持有PMP证书的朋友可以直接增持一个同等级证书CSPM-2,不用重新考试,不用重新学习,原PMP证书不影响正常使用,相当于多了一个国标项目管理领域的证书…

前端和后端分别是什么?

从技术工具来看: 前端:常见的 html5、JavaScript、jQuery... 后端:spring、tomcet、JVM,MySQL... 毕竟,如果这个问题问一个老后端,他掰掰手指可以给你罗列出一堆的名词来,比如设计模式、数据库…

Golang gin middleware的编写与使用 context.Next函数

中间件 在web应用服务中,完整的一个业务处理在技术上包含客户端操作、服务器端处理、返回处理结果给客户端三个步骤。 在实际的业务开发和处理中,会有更负责的业务和需求场景。一个完整的系统可能要包含鉴权认证、权限管理、安全检查、日志记录等多维度…

【软件分析/静态分析】chapter3 课程03/04 数据流分析的应用(Data Flow Analysis)

🔗 课程链接:李樾老师和谭天老师的:南京大学《软件分析》课程03(Data Flow Analysis I)_哔哩哔哩_bilibili 南京大学《软件分析》课程04(Data Flow Analysis II)_哔哩哔哩_bilibili 这篇文章总结…

识别一切模型RAM(Recognize Anything Model)及其前身 Tag2Text 论文解读

img 总览 大家好,我是卷了又没卷,薛定谔的卷的AI算法工程师「陈城南」~ 担任某大厂的算法工程师,带来最新的前沿AI知识和工具,欢迎大家交流~ 继MetaAI 的 SAM后,OPPO 研究院发布识别一切模型(Recognize Any…

MySQL如何保证数据的可靠性(保证数据不丢失)

1. 结论: 只要redo log 和 binlog 保证持久化到磁盘,就能确保MySQL异常重启后,数据可以恢复。 2. 机制 WAL机制,(Write Ahead Log): 事务先写入日志,后持久化到磁盘。 3. binlog…

华为OD机试真题 JavaScript 实现【非严格递增连续数字序列】【2022Q4 100分】

一、题目描述 输入一个字符串仅包含大小写字母和数字,求字符串中包含的最长的非严格递增连续数字序列的长度,比如122889属于非严格递增连续数字序列。 二、输入描述 输入一个字符串仅包含大小写字母和数字,输入的字符串最大不超过255个字符…

合金氢化物动力学与瞬时流量计算

在经典的合金氢化物动力学描述中,有一种是用JMAK方程来描述和拟合合金的吸放氢过程,方程很简洁:,其中是反应程度或者百分比,表示合金氢化物吸氢或者放氢的程度,是该合金吸氢或放氢的一种特征常数&#xff0…

57、基于51单片机智能硬币分拣分类机电子存钱罐报警系统设计(程序+原理图+PCB源文件+Proteus仿真+参考论文+参考PPT+元器件清单等)

摘 要 近年来,随着我国经济的发展和社会的进步,邮政事业得到了空前发展。邮政通信网的技术含量不断增加,技术装备水平也在不断的提高,邮件处理已基本实现机械化,并且朝着自动化的方向迈进。本文着眼于我国当前邮政事…

Unity编辑器扩展-第一集-在菜单栏加入自己的按钮

一、概述 unity自己本身就是一个大的程序,我们看见的所有功能,都是用程序写出来的,但是根据各行各业不同的需求,有些时候我们制作时,想要自己编辑一些原有的功能。 二、本节目标效果展示 1.在菜单栏加入属于自己的一…

【前端基础篇】CSS选择器 和 CSS属性

前言:CSS 简介 CSS 概述 CSS ( Cascading Style Sheet ) 层叠样式表,用来修饰 HTML,使得效果更加多样化CSS 在 HTML4.0 中引入,一般在开发过程中,会使用单独的 CSS 文件进行开发,然后将这个独立 CSS 文件引…

Unity编辑器扩展-第二集-按钮排序/分组/放入右键菜单

第一集链接:Unity编辑器扩展-第一集-在菜单栏加入自己的按钮_菌菌巧乐兹的博客-CSDN博客 一、本节目标效果展示 1.按钮排序 变成 2.按钮分组 仔细看,有个灰色的杠杠 3.放入右键菜单 4.皮一下 二、按钮排序具体流程 第一集讲,如果想放入…

Java自定义泛型类、泛型接口、泛型方法以及 泛型擦除的细节

体会&#xff1a;使用泛型的主要优点是能够在编译时而不是在运行时检测错误。 /*** 自定义泛型类*/ public class Order<T> {String orderName;int orderId;//类的内部结构就可以使用类的泛型T orderT;public Order(){//编译不通过 // T[] arr new T[10];//编译…

Unity基础3——Resources资源动态加载

一、特殊文件夹 &#xff08;一&#xff09;工程路径获取 // 注意 该方式 获取到的路径 一般情况下 只在 编辑模式下使用 // 我们不会在实际发布游戏后 还使用该路径 // 游戏发布过后 该路径就不存在了 print(Application.dataPath);&#xff08;二&#xff09;Resources 资…

如何自动生成正交法测试用例?

目录 引言 正交法实验 自动生成正交用例 引言 正交法测试用例是一种高效且可靠的方法&#xff0c;能够最大限度地减少测试工作量&#xff0c;同时保证覆盖所有可能的组合情况。通过了解如何优化这些测试用例的生成过程&#xff0c;可以提高产品的质量&#xff0c;降低故障率…

机器人视觉梳理(上)

原创 | 文BFT机器人 01 机器人视觉的概念 在智能制造过程中&#xff0c;通过传统的编程来执行某一特定动作的机器人&#xff08;机械手、机械手臂、机械臂等&#xff0c;未作特殊说明时&#xff0c;不作严格区分&#xff0c;统一称为机器人&#xff09;&#xff0c;将难以满足制…