【数据挖掘】--算法

news2025/5/24 21:13:25

【数据挖掘】--算法

  • 目录:
  • 1. 缺失值和数值属性处理
    • 1缺失值处理:
  • 2. 用于文档分类的朴素贝叶斯
  • 3. 分治法:建立决策树
  • 4. 覆盖算法建立规则
  • 5. 挖掘关联规则
  • 6. 线性模型
    • 有效寻找最近邻
      • 暴力搜索(Brute-Force Search)
      • kd树(k-dimensional Tree)
      • 局部敏感哈希(Locality Sensitive Hashing,LSH)
      • 球树(Ball Tree)
      • 局部敏感哈希(Locality Sensitive Hashing,LSH)
  • 7. 基于实例的学习
  • 8. 聚类
  • 9. Weka

目录:

1. 缺失值和数值属性处理

1缺失值处理:

删除法:当缺失值比例较小时,可删除包含缺失值的样本。但这种方法会损失数据,可能影响模型准确性。例如在一个客户信息表中,若少数客户的某个不关键属性有缺失值,可删除这些记录。
- 填补法
- 均值/中位数填补:对于数值属性,用该属性的均值或中位数填补缺失值。比如在学生成绩数据中,用平均成绩填补缺失的成绩值。
- 模型预测填补:利用其他属性和机器学习模型预测缺失值。如使用线性回归模型,基于学生的平时表现、作业成绩等属性预测缺失的考试成绩。

  • 数值属性处理
    • 归一化:将数值属性的值映射到[0, 1]或[-1, 1]区间,消除量纲影响。常见方法有最小 - 最大归一化: x n e w = x − x m i n x m a x − x m i n x_{new}=\frac{x - x_{min}}{x_{max}-x_{min}} xnew=xmaxxminxxmin。例如在处理不同单位的身高和体重数据时,归一化可使它们在同一尺度上。
    • 标准化使数据具有零均值和单位方差,公式为 z = x − μ σ z=\frac{x - \mu}{\sigma} z=σxμ,其中 μ \mu μ是均值, σ \sigma σ是标准差。这在许多基于距离的算法中很重要,如K近邻算法。

2. 用于文档分类的朴素贝叶斯

朴素贝叶斯基于贝叶斯定理和特征条件独立假设。==假设文档$d$由特征向量$x=(x_1,x_2,\cdots,x_n)$表示,类别为$C$==。贝叶斯定理为$P(C|x)=\frac{P(x|C)P(C)}{P(x)}$。由于特征条件独立假设,$P(x|C)=\prod_{i = 1}^{n}P(x_i|C)$。

例如在垃圾邮件分类中, C C C表示“垃圾邮件”和“非垃圾邮件”类别, x i x_i xi可以是邮件中出现的单词。通过训练数据计算 P ( C ) P(C) P(C)(先验概率)和 P ( x i ∣ C ) P(x_i|C) P(xiC)(似然概率),进而对新邮件进行分类。

3. 分治法:建立决策树

  • 计算信息量:信息熵是衡量数据不确定性的指标,
  • **公式为$H(X)=-\sum_{i = 1}^{n}p(x_i)\log_2p(x_i)$
  • 其中 p ( x i ) p(x_i) p(xi)是事件 x i x_i xi发生的概率。在决策树构建中,通过计算信息增益来选择分支属性。****
  • 信息增益 $IG(X,Y)=H(X)-H(X|Y)$,$H(X)$是数据集$X$的熵 H ( X ∣ Y ) H(X|Y) H(XY)是在属性 Y Y Y给定条件下 X X X的条件熵
  • 高度分支属性通常选择信息增益最大的属性作为分支属性,这样能使决策树在每一步划分后,数据的不确定性减少最多。例如在根据天气属性(晴天、多云、雨天等)和温度属性划分是否适合户外运动的数据集时,计算每个属性的信息增益,选择信息增益大的属性优先进行分支。
    在这里插入图片描述

4. 覆盖算法建立规则

  • 一个简单的覆盖方法:从整个数据集开始,找到一条能覆盖尽可能多正例且少覆盖反例的规则。然后从数据集中移除该规则覆盖的正例,重复上述过程,直到所有正例都被覆盖。例如在一个二分类任务中,先找到一条规则“如果年龄
    在这里插入图片描述

30 且收入 > 50000,那么类别为 A”,移除符合该规则的正例后继续寻找下一条规则。

  • 规则与决策列表决策列表是由一系列规则组成,按顺序应用这些规则进行分类。挖掘决策列表时,每次选择最优规则添加到列表中,并更新数据集,直到数据集分类完成

在这里插入图片描述

5. 挖掘关联规则

  • 项集:项集是一组项的集合。例如在超市购物篮数据中,{牛奶, 面包}就是一个项集。频繁项集是指出现次数达到一定阈值的项集。
  • 关联规则形如 A ⇒ B A \Rightarrow B AB,表示如果项集 A A A出现,那么项集 B B B也可能出现。例如“购买啤酒的顾客也倾向于购买尿布”。
  • 有效的生成规则:常用Apriori算法,它基于“频繁项集的所有非空子集也一定是频繁的”这一先验性质,通过逐层搜索生成频繁项集,进而生成关联规则。首先找到频繁1 - 项集,然后生成候选2 - 项集,剪枝得到频繁2 - 项集,以此类推。

6. 线性模型

  • 数值预测:线性回归:假设因变量 y y y与自变量$x_1,x_2,\cdots,x_n$之间存在线性关系 加粗样式 y = β 0 + β 1 x 1 + β 2 x 2 + ⋯ + β n x n + ϵ 加粗样式y=\beta_0+\beta_1x_1+\beta_2x_2+\cdots+\beta_nx_n+\epsilon 加粗样式y=β0+β1x1+β2x2++βnxn+ϵ

  • 其中 β i \beta_i βi是系数, ϵ \epsilon ϵ是误差项。通过最小化损失函数(如均方误差 M S E = 1 n ∑ i = 1 n ( y i − y ^ i ) 2 MSE=\frac{1}{n}\sum_{i = 1}^{n}(y_i - \hat{y}_i)^2 MSE=n1i=1n(yiy^i)2

  • y i y_i yi是真实值, y ^ i \hat{y}_i y^i是预测值)来确定系数 β i \beta_i βi。例如预测房价, y y y是房价, x 1 x_1 x1是房屋面积, x 2 x_2 x2 是房间数量等。

  • 线性分类:Logistic回归:用于二分类问题,通过将线性函数的输出经过Sigmoid函数 σ ( z ) = 1 1 + e − z \sigma(z)=\frac{1}{1 + e^{-z}} σ(z)=1+ez1
    在这里插入图片描述

  • 将结果映射到[0, 1]区间,表示样本属于正类的概率。损失函数通常使用对数似然损失,通过梯度下降等方法优化参数。

  • 使用感知机的线性分类:感知机是一种简单的线性分类模型,通过权重向量 w w w和偏置 b b b对输入特征向量 x x x进行线性组合 y = sign ( w T x + b ) y = \text{sign}(w^Tx + b) y=sign(wTx+b),其中 sign \text{sign} sign是符号函数。感知机通过不断调整 w w w b b b,使误分类样本数量减少。

  • 使用Winnow的线性分类Winnow是一种用于在线学习的线性分类算法,它通过对权重进行指数式更新来处理二分类问题,对不同特征赋予不同的权重,更关注重要特征

有效寻找最近邻

暴力搜索(Brute-Force Search)

  • 原理:对于给定的查询点,计算它与数据集中所有点的距离,然后找出距离最小的点,即最近邻。
  • 示例:假设有一个包含多个二维点的数据集{(1,2), (3,4), (5,6), (7,8)},要查找点(2,3)的最近邻。通过计算(2,3)与数据集中每个点的欧氏距离,如与(1,2)的距离为 ( 2 − 1 ) 2 + ( 3 − 2 ) 2 = 2 \sqrt{(2 - 1)^2+(3 - 2)^2}=\sqrt{2} (21)2+(32)2 =2 ,与(3,4)的距离为 ( 2 − 3 ) 2 + ( 3 − 4 ) 2 = 2 \sqrt{(2 - 3)^2+(3 - 4)^2}=\sqrt{2} (23)2+(34)2 =2 等,比较后发现(1,2)(3,4)都是(2,3)的最近邻。
  • 优缺点:优点是实现简单,在数据集较小时效果较好;缺点是当数据集规模较大时,计算量呈指数增长,效率低下。

kd树(k-dimensional Tree)

  • 原理:将数据点按照k维空间进行划分,构建树形结构。在搜索最近邻时,利用树的结构快速排除不可能是最近邻的区域,从而减少计算量。

  • 示例:对于二维数据集,kd树可能会按照x轴或y轴交替划分数据空间。比如有数据点(1,1), (2,3), (4,2), (3,5),可能先按照x轴将空间分为两部分,左边包含(1,1),右边包含(2,3), (4,2), (3,5),然后在右半部分再按照y轴划分等。在查找最近邻时,从根节点开始,根据查询点与节点的位置关系决定搜索路径。

  • 优缺点适用于低维数据,能显著提高搜索效率;但在高维数据下,性能可能下降,存在“维数灾难”问题

  • 原理:将数据点划分到一系列嵌套的球中,每个节点对应一个球,球内包含若干数据点。搜索时,通过判断查询点与球的位置关系,快速确定是否需要在该球内继续搜索。

  • 示例:假设有一组三维数据点,球树会将这些点划分到不同的球中,比如一个球内包含(1,1,1), (2,2,2), (3,3,3)等点,另一个球内包含(4,4,4), (5,5,5)等点。在查找最近邻时,先判断查询点位于哪些球附近,再进一步在这些球内搜索。

  • 优缺点:相比kd树,在高维数据下可能有更好的性能;但构建球树的时间和空间复杂度较高。

在这里插入图片描述

在这里插入图片描述

局部敏感哈希(Locality Sensitive Hashing,LSH)

  • 原理利用哈希函数将数据点映射到哈希桶中,使得相似的数据点有较高概率被映射到同一个哈希桶或相邻的哈希桶中。在搜索时,只需在查询点所在的哈希桶及相邻哈希桶中查找最近邻。
  • 示例:对于文本数据,可以根据文本的特征构建哈希函数。例如,将文本中出现的单词组合作为特征,通过哈希函数将文本映射到不同的哈希桶。如果两个文本相似,它们包含的单词组合相似,就可能被映射到同一个或相邻的哈希桶中。
  • 优缺点能快速处理大规模数据,在高维数据和近似最近邻搜索中表现出色;但可能会有一定的误报率,即找到的不一定是真正的最近邻,而是近似最近邻。

球树(Ball Tree)

  • 原理:将数据点划分到一系列嵌套的球中,每个节点对应一个球,球内包含若干数据点。搜索时,通过判断查询点与球的位置关系,快速确定是否需要在该球内继续搜索。
  • 示例:假设有一组三维数据点,球树会将这些点划分到不同的球中,比如一个球内包含(1,1,1), (2,2,2), (3,3,3)等点,另一个球内包含(4,4,4), (5,5,5)等点。在查找最近邻时,先判断查询点位于哪些球附近,再进一步在这些球内搜索。
  • 优缺点:相比kd树,在高维数据下可能有更好的性能;但构建球树的时间和空间复杂度较高。

局部敏感哈希(Locality Sensitive Hashing,LSH)

  • 原理:利用哈希函数将数据点映射到哈希桶中,使得相似的数据点有较高概率被映射到同一个哈希桶或相邻的哈希桶中。在搜索时,只需在查询点所在的哈希桶及相邻哈希桶中查找最近邻。
  • 示例:对于文本数据,可以根据文本的特征构建哈希函数。例如,将文本中出现的单词组合作为特征,通过哈希函数将文本映射到不同的哈希桶。如果两个文本相似,它们包含的单词组合相似,就可能被映射到同一个或相邻的哈希桶中。
  • 优缺点:能快速处理大规模数据,在高维数据和近似最近邻搜索中表现出色;但可能会有一定的误报率,即找到的不一定是真正的最近邻,而是近似最近邻。
    ht-aligned 文本居右 |

7. 基于实例的学习

**- 距离函数:用于衡量实例之间的相似性,常见的有欧几里得距离 d ( x , y ) = ∑ i = 1 n ( x i − y i ) 2 d(x,y)=\sqrt{\sum_{i = 1}^{n}(x_i - y_i)^2} d(x,y)=i=1n(xiyi)2 ,曼哈顿距离 d ( x , y ) = ∑ i = 1 n ∣ x i − y i ∣ d(x,y)=\sum_{i = 1}^{n}|x_i - y_i| d(x,y)=i=1nxiyi。例如在二维空间中,计算两个点之间的距离。

  • 有效寻找最近邻:可以使用KD - 树等数据结构加速最近邻搜索。KD - 树将数据空间递归划分,通过比较当前节点的分割轴坐标,快速定位可能包含最近邻的子空间。**

8. 聚类

  • 基于距离的迭代聚类:如K - Means算法,首先随机选择 k k k个质心,然后将每个样本分配到距离最近的质心所在的簇,接着重新计算每个簇的质心,重复上述过程直到质心不再变化或达到最大迭代次数。目标函数是最小化每个样本到其所属簇质心的距离平方和

J = ∑ i = 1 k ∑ x j ∈ C i ∥ x j − μ i ∥ 2 J=\sum_{i = 1}^{k}\sum_{x_j \in C_i}\left \| x_j - \mu_i \right \|^2 J=i=1kxjCixjμi2,其中 k k k是簇的数量, C i C_i Ci是第 i i i个簇, μ i \mu_i μi是第 i i i个簇的质心, x j x_j xj

数据点。

  • 快速距离计算:对于大规模数据集,可以采用一些近似算法或利用数据结构加速距离计算,如使用三角不等式等性质减少不必要的距离计算。

  • 多实例学习:与传统单实例学习不同,多实例学习中每个样本由多个实例组成一个包(bag),标签作用于包而不是单个实例。例如在图像分类中,一张图像可能包含多个物体,图像(包)被标记为包含某种物体(正例)或不包含(反例),但不知道具体哪个物体实例对应标签。

  • 聚集输入:将多个输入实例组合成一个更复杂的输入表示,例如将多个时间序列数据聚合为一个特征矩阵,以捕捉数据的全局特征。

  • 聚集输出:将多个模型的输出进行聚合,如在集成学习中,将多个分类器的预测结果通过投票、平均等方式聚合,得到最终的预测结果。
    在这里插入图片描述

9. Weka

Weka是一个基于Java的开源机器学习软件,包含了大量的机器学习算法和工具。它提供了图形界面(如Explorer、Experimenter等)和命令行界面,方便用户进行数据预处理、模型训练、评估等操作。例如,在Weka的Explorer界面中,可以直接加载ARFF格式数据,选择不同的分类算法(如朴素贝叶斯、决策树等)进行训练和测试,并查看模型性能指标。

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

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

相关文章

Huatuo热更新--如何使用

在安装完huatuo热更新插件后就要开始学习如何使用了。 1.创建主框渐Main 新建文件夹Main(可自定义),然后按下图创建文件,注意名称与文件夹名称保持一致 然后新建场景(Init场景),添加3个空物体…

基于Django快递物流管理可视化分析系统(完整系统源码+数据库+详细开发文档+万字详细论文+答辩PPT+详细部署教程等资料)

文章目录 基于Django快递物流管理可视化分析系统(完整系统源码数据库详细开发文档万字详细论文答辩PPT详细部署教程等资料)一、项目概述二、项目说明三、研究意义四、系统设计技术架构 五、功能实现六、完整系统源码数据库详细开发文档万字详细论文答辩P…

基于射频开关选择的VNA校准设计

活动发起人小虚竹 想对你说: 这是一个以写作博客为目的的创作活动,旨在鼓励大学生博主们挖掘自己的创作潜能,展现自己的写作才华。如果你是一位热爱写作的、想要展现自己创作才华的小伙伴,那么,快来参加吧&#xff01…

解决本地模拟IP的DHCP冲突问题

解决 DHCP 冲突导致的多 IP 绑定失效问题 前言 续接上一篇在本机上模拟IP地址。 在实际操作中,如果本机原有 IP(如 192.168.2.7)是通过 DHCP 自动获取的,直接添加新 IP(如 10.0.11.11)可能会导致 DHCP 服…

Elasticsearch7.1.1 配置密码和SSL证书

生成SSL证书 ./elasticsearch-certutil ca -out config/certs/elastic-certificates.p12 -pass 我这里没有设置ssl证书密码,如果需要设置密码,需要再配置给elasticsearch 在之前的步骤中,如果我们对elastic-certificates.p12 文件配置了密码…

毕业项目推荐:基于yolov8/yolo11的100种中药材检测识别系统(python+卷积神经网络)

文章目录 概要一、整体资源介绍技术要点功能展示:功能1 支持单张图片识别功能2 支持遍历文件夹识别功能3 支持识别视频文件功能4 支持摄像头识别功能5 支持结果文件导出(xls格式)功能6 支持切换检测到的目标查看 二、数据集三、算法介绍1. YO…

自用题库---面试使用

1、css中如何实现水平垂直居中 方法一:flex: display: flex; justify-content: center; align-item: center;方法二:绝对定位margin:auto: position: absolute; left: 0; right: 0; top: 0; bottom: 0; margin:auto;方法三:已…

蓝桥杯好数

样例输入: 24 输出:7 输入:2024 输出: 150 思路:本题朴素方法的时间复杂度是O(n * log10(n)) ,不超时。主要考察能否逐位取数,注意细节pi,这样不会改变i,否则会导致循环错误。 #in…

Jenkins 配置 Credentials 凭证

Jenkins 配置 Credentials 凭证 一、创建凭证 Dashboard -> Manage Jenkins -> Manage Credentials 在 Domain 列随便点击一个 (global) 二、添加 凭证 点击左侧 Add Credentials 四、填写凭证 Kind:凭证类型 Username with password: 配置 用…

用openresty和lua实现壁纸投票功能

背景 之前做了一个随机壁纸接口,但是不知道大家喜欢对壁纸的喜好,所以干脆在实现一个投票功能,让用户给自己喜欢的壁纸进行投票。 原理说明 1.当访问http://demo.com/vote/时,会从/home/jobs/webs/imgs及子目录下获取图片列表&…

mysql查看binlog日志

mysql 配置、查看binlog日志: 示例为MySQL8.0 1、 检查binlog开启状态 SHOW VARIABLES LIKE ‘log_bin’; 如果未开启,修改配置my.ini 开启日志 安装目录配置my.ini(mysql8在data目录) log-binmysql-bin(开启日志并指定日志前缀&#xff…

BiRefNet C++ TensorRT (二分类图像分割)

BiRefNet C TensorRT (二分类图像分割) 利用TensorRT和CUDA的双边参考网络(BiRefNet)的高性能c实现,针对实时高分辨率二分类图像分割进行了优化。 BiRefNet c TENSORRT旨在有效地在GPU上运行双边参考分割任务。通过利…

【ARM】MDK在编译 i.MXRT1芯片的时候出现报错Error: L6079E

1、 文档目标 解决MDK在编译 i.MXRT1芯片的时候出现报错Error: L6079E 2、 问题场景 客户在使用NXP 的NXP i.MXRT1050的芯片进行工程构建的时候出现下面的报错信息: Error: L6079E: Subtool invocation error: Error executing armcc. The system could not find…

论文笔记(七十二)Reward Centering(二)

Reward Centering(二) 文章概括摘要2 简单的奖励中心 文章概括 引用: article{naik2024reward,title{Reward Centering},author{Naik, Abhishek and Wan, Yi and Tomar, Manan and Sutton, Richard S},journal{arXiv preprint arXiv:2405.0…

推荐几款较好的开源成熟框架

一. 若依: 1. 官方网站:https://doc.ruoyi.vip/ruoyi/ 2. 若依SpringBootVueElement 的后台管理系统:https://gitee.com/y_project/RuoYi-Vue 3. 若依SpringBootVueElement 的后台管理系统:https://gitee.com/y_project/RuoYi-Cl…

基于知识图谱的问答系统:后端Python+Flask,数据库Neo4j,前端Vue3(提供源码)

基于知识图谱的问答系统:后端PythonFlask,数据库Neo4j,前端Vue3 引言 随着人工智能技术的不断发展,知识图谱作为一种结构化的知识表示方式,逐渐成为问答系统的重要组成部分。本文将介绍如何构建一个基于知识图谱的问答…

【华为机试】HJ80 整型数组合并

解法一: HashSet>List列表 Collections.sort(list)对列表进行排序 import java.util.*; import java.util.HashSet;// 注意类名必须为 Main, 不要有任何 package xxx 信息 public class Main {public static void main(String[] args) {Scanner sc new Scanner(…

day17-后端Web原理——SpringBoot原理

目录 SpingBoot原理1. 配置优先级2. Bean管理2.1 获取Bean2.2 Bean作用域2.3 第三方Bean 3. SpringBoot原理3.1 起步依赖3.2 自动配置3.2.1 概述3.2.2 常见方案3.2.2.1 概述3.2.2.2 方案一3.2.2.3 方案二 3.2.3 原理分析3.2.3.1 源码跟踪3.2.3.2 Conditional 4. Web后端开发总结…

我们来学nginx -- work process

题记 工作进程能处理大量的并发请求几乎不会阻塞Worker进程可绑定到固定的核,避免CPU频繁地上下文切换看样子,还得转为人话 大白话 作为一般的应用的开发大部分人没有很强的底层技术基础如果深究,涉及复杂技术点,很容易迷惘为什…

【PLL】应用:同步

1. 用于时钟去偏移的PLL 时钟频率增加内部时钟与外部时钟的偏移,在芯片之间通信时很重要时钟偏移可能是由时钟树引起的,该时钟树缓冲外部时钟以驱动大量内部节点 芯片间通信中的时钟偏移问题 芯片1和芯片2共享外部时钟CKext芯片内部逻辑电路操作的实际时…