是Yu欸

空山新雨后,天气晚来秋

0%

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

@TOC
注:
由于网页基调为深蓝色,因此HTML格式图片背景色均为深蓝#323a5e。

分布地图

院士家乡图

先爬取科学院院士官网,通过正则法则的分词处理每位院士的介绍,将所有科学院院士名单爬下来。
然后对名单所在的家乡地进行count统计。
最后调用pyercharts,绘制Html网页版的院士家乡个数分布图。
请添加图片描述

本科院校分布图在这里插入图片描述

词云图

爬取微博https://m.weibo.cn/2656274875/4687873717044893网页成txt文本,对关键词进行提取,然后对需要的部分进行分词。
最后选择一张分届明显、形状分明的图片,生成词云图。
请添加图片描述

拖拉交互柱形图

每个省份的本科院校数

在这里插入图片描述

单轴气泡图

各国教育投入经费

爬取网页后,对数据进行excel处理后,生成单轴气泡图。
在这里插入图片描述

饼图

2019年世界各国经费分布饼图

在这里插入图片描述

@TOC

1.聚类分析概述

■ 定义
• 把数据对象集合按照相似性划分成多个子集的过程
• 每个子集是一个簇 (cluster) , 使得簇中的对象
彼此相似,但与其他簇中的对象不相似。

■ 与分类的区别
无监督学习,给的数据没有类标号信息

2.基本聚类方法

2.1 划分方法

■ 定义
将有n 个对象的数据集D划分成k个簇,并且k<n,满足如下的要求:
• 每个簇至少包含一个对象
• 每个对象属于且仅属于一个簇

■ 基本思想
• 首先创建一个初始k划分( k为要构造的划分数)
• 然后不断迭代地计算各个簇的聚类中心并依新的聚类中心调整聚类情况,直至收敛

■ 目标
• 同一个簇中的对象之间尽可能“接近” 或相关
• 不同簇中的对象之间尽可能“远离” 或不同

■ 适用性
• 这些启发式算法适合发现中小规模数据库中的球状聚
• 对于大规模数据库和处理任意形状的聚类, 这些算法需要进一步扩展

1.Kmeans算法

Kmeans算法为启发式算法,遵循的寻优原则:每次聚类保证局部最优,随后调整聚类,利用局部最优聚类的上限来不断逼近全局最优。

实例1
在这里插入图片描述
其中,m1,m2为两个聚类的中心坐标。

■ 优点
• 聚类时间快
• 当结果簇是密集的,而簇与簇之间区别明显时, 效果较好
• 相对可扩展和有效, 能对大数据集进行高效划分

■ 缺点
• 用户必须事先指定聚类簇的个数
• 常常终止于局部最优
• 只适用于数值属性聚类(计算均值有意义)
• 对噪声和异常数据也很敏感
• 不同的初始值, 结果可能不同
• 不适合发现非凸面形状的簇

■ 问题
1.初始簇影响
在这里插入图片描述
在这里插入图片描述
2.数据分布形状
在这里插入图片描述
3.数据分散程度
在这里插入图片描述
4.初始随机种子的影响
在这里插入图片描述
在这里插入图片描述

2.k-modes算法

解决数据敏感问题

3.KMeans++算法

每次选择一个与聚类中心距离最大的点作为新的聚类中心。
KMeans++效果:解决初始点选择问题。
在这里插入图片描述

4.k-中心点

选择簇中位置最中心的实际对象为中心点,基于最小化所有对象与其的相异度之和来划分。
优点:解决对离群值敏感的问题。
划分方法聚类质量评价准则:最小化E值。

基本思想
• 首先为每个簇随意选择一个代表对象,剩余的对象根据其与代表对象的距离分配给最近的一个簇
• 然后迭代地用非代表对象来替代代表对象,以改进聚类的质量(找更好的代表对象)
• 聚类结果的质量用一个代价函数来估算,该函数评估了对象与其参照对象之间的平均相异度

PAM算法实例
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.2 层次方法

2.3基于密度的方法

根据密度条件对邻近对象分组形成簇,簇的增长或者根据邻域密度,或者根据特定的密度函数(只要临近区域的密度超过某个阈值,就继续聚类)。

■ 主要特点
• 发现任意形状的聚类
• 处理噪音
• 一遍扫描
• 需要密度参数作为终止条件

■ 缺点
对用户定义的参数是敏感的,参数难以确定(特别是对于高维数据),设置的细微不同可能导致差别很大的聚类。全局密度参数不能刻画内在的聚类结构。

3.聚类评估

估计在数据集上进行聚类的可行性,和被聚类方法产生的结果的质量。

■ 聚类评估的任务
• 估计聚类趋势:评估数据集是否存在非随机结构。
• 确定数据集中的簇数:在聚类之前,估计簇数。
• 测定聚类质量:聚类之后,评估结果簇的质量。

@TOC

1.基本概念

分类
找出描述和区分数据类或概念的模型, 以便能够使用模型预测类标号未知的对象的类标号。

概念区分
■ 分类与预测
• 分类是预测分类( 离散、 无序) 标号;
• 预测建立连续值函数模型;
■ 分类与聚类
• 分类是有监督学习, 提供了训练元组的类标号;
• 聚类是无监督学习, 不依赖有类标号的训练实例;

2.描述分类的一般过程

■ 学习阶段
• 建立描述预先定义的数据类或概念集的分类器
• 训练集提供了每个训练元组的类标号, 分类的学习过程,也称为监督学习 (supervised learning)
■ 分类阶段
• 使用定义好的分类器进行分类的过程

3.掌握朴素贝叶斯分类原理

4.决策树分类

决策树算法:

  • Hunt算法
  • 信息增益 Information gain(ID3)
  • 增益比率 Gain ration (ID3,C4.5)
  • 基尼指数—Gini index (SLIQ, SPRINT)

    4.1 Hunt算法

    • 贪心策略(局部最优)构建决策树

• 决策树归纳的设计问题

  • 如何分裂训练记录?
    怎样为不同类型的属性指定测试条件
    怎样评估每种测试条件
  • 如何停止分裂过程?

在这里插入图片描述

5.模型的评价

5.1 准确率的局限

■ 考虑一个二分类问题

  • 0类的实例数 = 9990
  • 1类的实例数 = 10

■ 如果模型预测每个实例为0类, 则准确率为

  • 准确率是误导
  • 模型不能正确预测任何 而在疾病检测中,1类更需要被关心

5.2 其他度量

1.混淆矩阵

在这里插入图片描述

第一个字母T对应预测正确,F预测错误
第二个字母P对应真实正例,N真实反例

  • 真阳历TP, 真阳性(True positive rate,TPR) 或灵敏度(sensitivity) 、 查全率(recall)
    TPR= TP/(TP+ FN)
  • 真阴历TN, 真阴性(True negative rate, TNR) 或特指度 (specificity)
    TNR= TN/(TN+ FP)
  • 假阳历FP, 假阳性(False positive rate,FPR) 或误报率
    FPR = FP/(TN + FP)
  • 假阴历FN,假阴性(False negative rate, FNR ) ,漏报率(与查全率此消彼长 )
    FNR = FN/(TP + FN)

2.广泛使用

召回率(查全率,recall):所有真实正例中
精确率(查准率,precision):所有预测正例中
在这里插入图片描述
实例
在这里插入图片描述

5.3 ROC曲线

■ 前面分类器性能评价的局限性:分类器预测结果为离散的1或者0
■ 朴素贝叶斯输出 p(|x y)=
■ 其他分类器输出是一个连续的概率值,且同我们仅仅关系“1” 类别的概率

解决方法: 连续的值离散化
导致的问题: 离散阈值难以确定

接收者操作特征曲线(Receiver Operating Characteristic Curve, 或者叫ROC曲线)是一种坐标图式的分析工具, 用于

  • (1)选择最佳的分类模型、 舍弃次佳的模型。
  • (2)在同一模型中设定最佳阈值。

■ ROC曲线下方的区域称为AUC
在这里插入图片描述
做法

  • 首先利用分类器计算每个数据记录的后验概率 P(+|A)
  • 将这些数据记录对应的 P(+|A)从高到低排列(如下表):
    • 由低到高,对于每个P(+|A)值(threshold, 阈值),把对应的记录以及那些值高于或等于阈值指派为阳性类positive, 把那些低于阈值指派为阴性类negative
    • 统计TP,FP,TN,FN
    • 计算TPR = TP/(TP+FN)和
      FPR = FP/(FP+ TN)
  • 绘出诸点(FPR, TPR)并连接它们

5.4 过拟合与欠拟合

■ 分类模型的误差大致分为两种:

  • 训练误差: 是在训练记录上误分类样本比例
  • 泛化误差: 是模型在未知记录上的期望误差

■ 一个好的分类模型不仅要能够很好的拟合训练数据, 而且对未知样本也要能准确分类。
■ 换句话说, 一个好的分类模型必须具有低训练误差和低泛化误差。
■ 当训练数据拟合太好的模型(较低训练误差) , 其泛化误差可能比具有较高训练误差的模型高, 这种情况成为模型过分拟合。

数据预处理—>模型训练—>模型调整—>对新数据分类—>模型评价

实例
以决策树算法为例:
• 当决策树很小时,训练和检验误差都很大,这种情况称为模型拟合不足。出现拟合不足的原因是模型尚未学习到数据的真实结构。
• 随着决策树中结点数的增加,模型的训练误差和泛化误差都会随之下降。
• 当树的规模变得太大时,即使训练误差还在继续降低,但泛化误差开始增大,导致模型过分拟合。
在这里插入图片描述
导致过拟合的原因
• 训练集规模太大
• 训练集中存在大量噪音数据
• 训练集规模太小, 训练模型过于复杂

6.基于规则的分类

@TOC

1.基本概念

1.1定义

关联分析用于发现隐藏在大型数据集中令人兴趣的联系, 所发现的模式通常用关联规则或频
繁项集的形式表示。
关联规则反映一个事物与其他事物之间的相互依存性和关联性。 如果两个或者多个事物之间存在一定的关联关系, 那么, 其中一个事物发生就能够预测与它相关联的其它事物的发生。

项集

支持度:确定项集的频繁程度
置信度:确认Y在包含X的事务中出现的频繁程度

将关联规则挖掘任务分解为如下两个主要的子任务:

  1. 频繁项集产生 ( Frequent Itemset Generation )
  • 其目标是发现满足最小支持度阈值的所有项集, 这些项集称作频繁项集。
  1. 规则的产生( RuleGeneration )
  • 其目标是从上一步发现的频繁项集中提取所有高置信度的规则, 这些规则称作强规则( strong rule) 。

2.频繁项挖掘算法

2.1降低产生频繁顷集计算复杂度的算法

  • 减少候选项集的数量
    先验原理:(Apriori)
  • 减少比较的次数
    替代将每个候选项集与每个事务相匹配, 可以使用更高级的数据结构, 或存储候选项集或压缩数据集,来减少比较次数(FPGrowth)

    2.2 Apriori

    先验原理
  • 如果一个项集是频繁的, 则它的所有子集一定也是频繁的;
  • 相反, 如果一个项集是非频繁的, 则它的所有超集也一定是非频繁的。

算法过程:最小支持度计数==2
。
注意事项
①尽管集合具有无序性, 但为了方便比较计数, 通常对所有商品做一个默认的排序 (类似于建立一个字典索引)。
②项的连接:降低候选项的生成。对于任何2个需要连接的项集,去掉第1个项集的首项、第2个项集的尾项,若剩下的一样即可连接。

特点
①多次扫描数据库
②候选项规模庞大
③计算支持度开销大

提升性能方法
Hash-based itemset counting (散列项集计数)
Transaction reduction (事务压缩)
Partitioning (划分)
Sampling (釆样)

缺点
①需要反复的生成候选项, 如果项的数目比较大, 候选项的数目将达到组合爆炸式的增长

2.3 FPGrowth

基本思想
• 只扫描数据库两遍, 构造频繁模式树 (FP-Tree)
• 自底向上递归产生频繁项集
• FP树是一种输入数据的压缩表示, 它通过逐个读入事务, 并把每个事努映射到FP树中的一条路径来构造

方法

  • 对每个项, 生成它的条件模式基, 然后生成它的条件FP-tree
  • 对每个新生成的条件 FP-tree,重复这个步骤
  • 直到结果FP-tree为, 或只含唯一的一个路径 (此路径的每个子路径对应的项集都是频繁集)

实例1
在这里插入图片描述
①构造FP树

  1. 扫描数据库一次, 得到频繁1-项集
  2. 把项按支持度递减排序
  3. 再一次扫描数据库, 建立FP-tree

②生成条件模式

  1. 从 FP-tree 的头表开始
  2. 按照每个频繁项的连接遍历 FP-tree
  3. 列出能够到达此项的所有前缀路径,得到条件模式基

步骤
在这里插入图片描述
实例2
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
优点

  • 完 备:
    • 不会打破交易中的任何模式
    • 包含了频繁模式挖掘所需的全部信息
  • 紧密
    • 支持度降序排列: 支持度高的项在FP-tree中共享的机会也高
    • 决不会比原数据库大

2.4 产生关联规则

针对同一个频繁项集的关联规则, 如果规则的后件满足子集关系, 那么这些规则的置信度间满足反单调性
在这里插入图片描述

支持度:确定项集的频繁程度
置信度:确认Y在包含X的事务中出现的频繁程度

3.关联分析的评估

lift计算提升度
在这里插入图片描述

@TOC

1.数据质量

在这里插入图片描述

2.数据预处理方法

  • 数据清理
  • 填写缺失值, 平滑噪声数据, 识别或删除离群, 并解决不一致问题
  • 数据集成
  • 整合多个数据库, 多维数据集或文件
  • 数据缩减
  • 降维
  • Numerosity reduction
  • 数据压缩
  • 数据转换和数据离散化
  • 正常化
  • 生成概念层次结构

2.1 数据清洗

  • 脏数据
    • 不完整的: 缺少属性值, 缺乏某些属性值, 或只包含总数据
    • 忽略元组、手动填写、自动填写
  • 含嘈杂的噪音, 错误或离群
    • 例如, 工资= -10 (错误)
    • 处理:盒装图检测并删除离群点
  • 不一致的代码或不符的名称
    • 年龄= “42” 生日=“03/07/1997”
    • 曾经评级 “1,2,3” , 现在评级 “A, B, C”
    • 计算推理替换、全局替换

2.2 数据集成

将来自多个数据源的数据组合成一个连贯的数据源
在这里插入图片描述

1. 模式集成

在这里插入图片描述

2. 实体识别问题

在这里插入图片描述

3. 数据冲突检测

在这里插入图片描述

2.3数据规约

原因

由于数据仓库可以存储TB的数据, 因此在一个完整的数据集上运行时, 复杂的数据分析可能需要一个很长的时间

1.降维

原因
①随着维数的增加, 数据变得越来越稀疏
②子空间的可能的组合将成倍增长
③需要学习的参数越多,模型越复杂,需要更多的训练集,越容易欠拟合

需要降维的场景

  • 参数据稀疏, 维度高
  • 高维数据采用基于规则的分类方法
  • 采用复杂模型, 但是训练集数目较少
  • 需要可视化

方法

  • PCA主成分分析法

    2.降数据

  • 方法
    抽样法

抽样类型

  • 简单随机抽样(Simple Random Sampling)
    • 相等的概率选择
    • 不放回抽样(Sampling without replacement)
      • 一旦对象被选中, 则将其删除
    • 有放回抽样(Sampling with replacement)
      • 选择对象不会被删除
    • 分层抽样
    • 每组抽相同个数
    • 用于偏斜数据

3.数据压缩

2.4数据转换和离散化

函数映射,给定的属性值更换了一个新的表示方法, 每个旧值与新的值可以被识别。

方法

  • 规范化: 按比例缩放到一个具体区间

    • 最小-最大规范化
      在这里插入图片描述
    • Z-得分正常化
      在这里插入图片描述

    • 小数定标规范化
      移动属性A的小数点位置(移动位数依赖于属性A的最大值)
      在这里插入图片描述

      • 离散化
        原因:部分挖掘算法仅适用于离散数据
        方法:
        ①非监督离散
        等宽法、等频法、聚类
        在这里插入图片描述

3.数据特征构造

@TOC

1.数据类型

  • 数据库中的行 ->数据对象
  • 列 -> 属性

    1.1数据对象

    1.2属性

类型

  • 标称:类别、状态
  • 二进制:包括对称、不对称
  • 序数:有意义排序,不知道连续值间隔大小
  • 区间标度:值有序,差有意义
  • 比率标度:倍数有意义
    在这里插入图片描述

    2.数据统计汇总

    2.1中心化趋势度量: 均值、 中位数和众数

    均值对离群值很敏感。
    均值与众数的经验公式
    mean- mode= 3×(mean- median)

2.2 离散度度量

  • 方差、标准差
  • 分位数:IQR分位数极差=Q3-Q1
  • 五点概况:min,Ql 9 median,Q3,max
  • 盒装图:分析多个属性数据的离散度差异
  • 离群点:值高于or低于1.5倍IQR

    2.3数据可视化

  • 盒装图:分析多个属性数据的离散度差异
    在这里插入图片描述
  • 直方图:单个属性在各个区间变化分布
  • 散点图:两组数据的相关性分布

3.数据相似性和相异性度量

3.1度量数据的相似性和相异性

数据矩阵
相异矩阵

3.2 标称属性的邻近性度量

方法:简单匹配
在这里插入图片描述

3.3 二值属性的邻近性度量

后续分类问题与这个刚好相反
d的分子 = (0,1)+(1,0)
d的分母 = 全 —(0,0)
在这里插入图片描述

3.4数值属性的邻近性度量

在这里插入图片描述
(x1,y1)与(x2,y2)
h=1:曼哈顿距离
h=2:欧氏距离
h趋向于无穷:上确界距离 = max[(x1-x2),(y1-y2)]

3.5余弦相似性

在这里插入图片描述

@TOC

1.数据挖掘背景、 历史及发展

2.数据挖掘定义

2.1数据定义

数据是代表一个或一组变量的定性或定量属性的信息片段。 数据通常被视为信息和知识的最低层次的抽象。

数据类型

  • 连续、二值
  • 离散、字符串
  • 符号

存储

  • 物理
  • 逻辑

主要问题

  • 类型转换
    • 错误

      2.2数据挖掘定义

      数据挖掘是从大量的、 不完全的、 有噪声的、 模糊的、 随机的数据中提取隐含在其中的、 人们事先不知道的、 但又是潜在有用的信息和知识的过程。
      Data Mining is the process of automatically extracting interesting useful hidden patterns from usually massive, incomplete and noisy data. [Wikipedia]

      3.数据挖掘过程

      在这里插入图片描述
    1. 数据是未经加工和修饰的原料。
      数据是可以记录、 通信和能识别的符号, 它通过有意义的组合来表达现实世界中的某种实体 (具体对象、 事件、 状态或活动) 的特征。
  1. 信息是对数据经过过滤、 融合、标准化、 对比、 翻译、 分类、 管理等一系列环节处理后得到的。
  2. 知识是对信息内容进行提炼、 比较、 挖掘、 分析、 概括、判断和推论得到的。

4.数据挖掘任务关联规则挖掘

  • 关联规则挖掘
  • 非监督式机器学习 —— 聚类
  • 监督式机器学习
    • 离散标签预测 —— 标签分类
    • 连续标签预测 —— 数值预测
  • 回归

5.数据挖掘应用

5.1应用场景

商务智能:通过数据挖掘等技术可以获得隐藏在各种数据中的有利信息,从而帮助商家进一步调整营销策略。
信息识别:信息识别是指信息接受者从一定的目的出发,运用已有的知识和经验,对信息的真伪性、有用性进行辨识和甄别。
搜索引擎:根据用户提供的关键词,在互联网上搜索用户最需要的内容。
辅助医疗:对大量历史诊断数据进行分析和挖掘,有助于医生对病人的病情进行有效的判断。

5.2存在的问题

数据类型的多样性
高维度数据
噪声数据
分析与挖掘结果的可视化
隐私数据的保护

参考

https://blog.csdn.net/qq_41433002/article/details/123260714

@TOC

部分习题

第一章:引论

1.3

定义以下数据挖掘功能:特征化、区分、关联和相关性分析、分类、回归、聚类、离群点分析。使用你熟悉的现实生活中的数据库,给出每种数据挖掘功能的例子。

  • 特征化是目标类数据的一般特性或者特征的汇总。例如可以通过收集销量在前10%的物品的信息,再进行特征汇总。
  • 区分是将目标类数据对象的一般特性与一个或多个对比类对象的一般特性进行比较。例如将销量增加10%和销量减少30%的物品放在一起进行比较。
  • 频繁模式:频繁模式(frequent pattern)是在数据中频繁出现的模式。挖掘频繁模式导致发现数据中有趣的关联和相关性
  • 关联是类与类之间的联接,使一个类知道另一个类的属性和方法。例如Apriori算法挖掘产生布尔关联规则所需频繁项集。
  • 相关性分析是两个或多个具备相关性的变量元素进行分析,从而衡量两个因素的的相关密切程度。例如分析人的身高和体重之间的关系。
  • 分类是找出描述和区分数据类或概念的模型,以便能够使用模型预测类标号位置的对象的类标号。例如找出描述销量增加30%和销量减少30%的物品,通过对其特征进行描述和建模,再对一个新的物品根据其特征将其分类。
  • 回归建立连续值函数模型,用于预测缺失的难以确定的数据值。例如补全未采样的数据。
  • 聚类根据最大化类内相似性、最小化类间相似性的原则分析数据对象,但不进行类标号。例如可以对客户数据进行分析,以簇形式表示每个购物目标群。
  • 离群点分析指研究那些与数据的一般行为或模型不一致的数据离散点,可以从中挖掘某种模式。例如使用离群点分析发现信用卡诈骗使用活动。

1.4

给出一个例子,其中数据挖掘对于工商企业的成功是至关重要的。该工商企业需要什么数据挖掘功能?这种模式能够通过简单的查询处理或统计分析得到吗?

超市营销系统中采用Apriori算法发掘潜藏在商品中的某些关系,细化商品的布局和摆放。超市对销售数据进行分析,能够统计商品的销售情况,找出商品间存在的内在关联,预测新商品是否畅销。根据顾客购买记录,使用序列模式挖掘顾客的消费变化,分析顾客的忠诚程度。电商平台基于用户的基本属性(年龄、性别)、购买能力、行为特征、兴趣爱好,使用数据挖掘技术构建客户画像,实现精准营销。

1.5

解释区分和分类、特征化和聚类、分类和回归之间的区别和相似之处。

区分指的是将目标类数据的一般特性和一个或多个对比类对象的一般特性进行比较,即找出两者之间的特征区别
分类指的是找出一种模型来描述和区分数据类型或概念,并预测类标号未知的对象的类标号。
相似性在于他们都要对目标类数据对象进行处理和分析,输出结果都是类别特征,这些类别是预先指定的。
区别:区分只是找出特征区别,分类是预测类标号。

特征化是对目标类数据的的一般特性或特征的汇总,即在进行数据特征化时很清楚特征化的这些数据的特点是什么;
聚类是分析数据对象,按照“最大化类内相似度、最小化类间相似度”的原则进行聚类或分组。即在不考虑明确标签分类的情况下进行分析。
相似处在于刻画目标的总体特征。
区别:特征化是对每一列特征维度,聚类是行与行之间元素维度。

分类用于找出一种模型来描述和区分数据类型或概念,并预测类标号未知的对象的类标号;
回归则是建立一个连续值函数模型,而不是离散、无序的标号。
相似点:用函数进行预测。
区别:分类是离散值,回归是连续值。

第二章:认识数据

2.5

简要概述如何计算被如下属性描述的对象的相异性。

(a)标称属性
两个对象i和j之间的相异性根据不匹配率来计算:
请添加图片描述
其中,p为刻画对象的属性总数,m是匹配的数目。

(b)非对称的二元属性
可以依据二元属性的列联表去计算,计算公式如下:请添加图片描述
其中,r为在对象i中取1、在对象j中取0的属性数;s为在对象i中取0、对象j中取1的属性数;q为在对象i和j中都取1的属性数。

(c)数值属性
使用闵可夫斯基距离进行计算,即欧几里得距离和曼哈顿距离的推广,定义如下:
请添加图片描述
其中,h是实数,h≥1。且当h = 1时,它代表曼哈顿距离(即,L1范数);当h = 2时表示欧几里得距离(即,L2范数)。

(d)词频向量
使用余弦相似度进行计算,其计算公式如下:
请添加图片描述
其中,余弦值0意味着两个向量呈90°夹角(正交),没有匹配。余弦值越接近于1,夹角越小,向量之间的匹配度越大。

2.6

给定两个被元组(22,1,42,10)和(20,0,36,8)表示的对象。
(a)计算这两个对象之间的欧几里得距离。
(b)计算这两个对象之间的曼哈顿距离。
(c)使用q=3,计算这两个对象之间的闵可夫斯基距离。
(d)计算这两个对象之间的上确界距离。

(a)计算两个对象之间的欧几里得距离:
请添加图片描述
(b)计算两个对象之间的曼哈顿距离:
请添加图片描述
(c)使用q=3,计算这两个对象之间的闵可夫斯基距离:
请添加图片描述
(d)计算这两个对象之间的上确界距离:
请添加图片描述

第三章:数据预处理

3.1

数据质量可以从多方面评估,包括准确性、完整性、一致性问题。 提出其他两个方面的数据质量。

准确性:由于技术的限制或人为的失误,有些需要准确投入营销,比如生日折扣等的商品,可能会失去作用。

完整性:由于技术的限制或人为的失误,有些需要准确投入营销比如生日折扣等的商品可能会失去作用。
如果要对某宝、某东或者某宁的买家信息进行一个数据挖掘,从而用来营销其他东西,比如要对地址进行挖掘,此时详细、完整的地址数据则是一个必备的特性。

一致性问题:由于某些不可抗因素而导致的数据不一致,例如多个数据源命名不一致时会影响数据集成等。比如技术问题,在并发量大的情况下,记录数据时出现问题;或者某些数据值是一样的,然而在不同的数据库中其命名却不一样;这些不一致性问题在数据挖掘时则会影响挖掘的结果。

数据质量的其他两个尺度:时效性和可信性。

时效性:数据必须在一定时间范围内可用,以便对决策有用。

可信性:数据值必须在可能结果的范围内,以便对决策有用。

3.2

在实际数据中,某些属性缺少值的元组是常见的情况。 描述解决此问题的各种方法。
处理数据元组中缺少值的问题的各种方法包括:

(a)忽略元组:通常在缺少类标签时执行此操作(假设挖掘任务涉及分类或描述)。除非元组包含缺少值的几个属性,否则此方法不太有效。当每个属性的缺失值的百分比相差很大时,这尤其差劲。

(b)手动填充缺失值:通常,此方法很耗时,对于缺失值很多的大型数据集,这可能不是一个合理的任务,尤其是当填充值不容易确定时。

(c)使用全局常量填充缺失值:用相同的常量替换所有缺失的属性值,例如“ Unknown”或-∞之类的标签。如果将缺失的值替换为“未知”,则挖掘程序可能会错误地认为它们构成了一个有趣的概念,因为它们都具有一个共同的值,即“未知”。因此,尽管此方法很简单,但不建议使用。

(d)将属性均值用于定量(数字)值或将属性模式用于分类(标称)值:例如,假设AllElectronics客户的平均收入为$ 28,000。 使用此值替换任何缺失的收入值。

(e)对于属于与给定元组相同类别的所有样本,使用定量(数值)值的属性均值或分类(名义)值的属性模式:例如,如果根据信用风险对客户进行分类,则替换缺失的与给定元组处于相同信用风险类别的客户的平均收入值。

(f)使用最可能的值来填补缺失值:这可以通过回归,使用贝叶斯形式主义的基于推理的工具或决策树归纳法来确定。 例如,使用数据集中的其他客户属性,我们可以构建决策树来预测收入的缺失值。

3.4

讨论数据集成需要考虑的问题。

数据集成涉及将来自多个源的数据组合到一个一致的数据存储中。 在这种集成过程中必须考虑的问题包括:

  • 模式集成:必须集成来自不同数据源的元数据,以匹配等效的实际实体。 这称为实体识别问题。
  • 处理冗余数据:派生的属性可能是冗余的,不一致的属性命名也可能导致结果数据集中的冗余。 在元组级别可能出现重复,因此需要检测和解决。
  • 数据值冲突的检测和解决:表示,缩放或编码上的差异可能导致相同的现实世界实体属性值在要集成的数据源中有所不同。

3.7

使用习题3.3中给出的age数据,回答以下问题:
(a)使用最小最大规范化将age值35变换到[0.0,1.0]区间。
(b)使用z分数规范化,变换age,其中标准差为12.94。
(c)使用小数定标规范化变换35。
(d)指出给定数据,你愿意使用哪种方法。陈述你的理由。

(a)使用最小最大规范化将age值35变换到[0.0,1.0]区间
为了便于阅读,将A设为属性年龄。 使用公式:
请添加图片描述
其中minA = 13,maxA = 70,new_minA = 0,new_maxA = 1.0,然后将v = 35转换为v` = 0.39。

(b)使用z分数规范化,变换age,其中标准差为12.94
使用公式请添加图片描述(其中 请添加图片描述= 809/27 = 29.96,请添加图片描述= 12.94),然后将v = 35转换为v` = 0.39。

(c)使用小数定标规范化变换35

使用公式请添加图片描述(其中j = 2),将v = 35转换为v` = 0.35。

(d)指出给定数据,你愿意使用哪种方法。陈述你的理由。
言之有理即可。一般情况下,使用最小最大规范化。

  • 在给定数据的情况下,十进制缩放进行规范化,可以将保持数据的分布并直观地解释,同时仍允许在特定年龄段进行挖掘。
  • 最小最大规范化具有不希望的结果,即不允许任何将来的值落在当前的最小值和最大值之外,而不会遇到“超出范围的误差”。 由于此类值可能会出现在将来的数据中,因此此方法不太合适。
  • 最小最大规范化和z分数规范化都极大地改变了原始数据。z分数规范化将值转换为表示它们与标准差之间的距离的度量。但与十进制缩放相比,这种类型的转换对用户而言可能不那么直观。

第六章:挖掘频繁模式、关联和相关性

6.6

数据库有5个事务。设mini_sup=60%,min_conf=80%。
请添加图片描述
(a)分别使用Apriori算法和FP-growth算法找出频繁项集。比较两种挖掘过程的有效性。
(b)列举所有与下面的原规则匹配的强关联规则(给出支持度s和置信度c),其中X是代表顾客的变量,item是表示项的变量(如“A”,“B”等):
∀x∈transaction,buys(X,item_1 )∧buys(X,item_2 )⇒buys(X,item_3 ) [s,c]

使用Apriori算法
首先找出频繁的1-项集,然后进行组合再找出频繁的2-项集,以此类推,有如下图(其中L表示频繁项集):
请添加图片描述
使用FP-growth算法
首先找出频繁的1-项集,然后构建一个FP树,再对每个中间节点依次进行考察,建立条件FP树,最后得到单个路径的产生频繁模式的所有组合。请添加图片描述
请添加图片描述
有效性比较:Apriori算法需要对数据库做多次扫描而FP-growth算法只需要一次扫描。Apriori的候选集产生代价较高(需要做多次自身连接),而FP-growth不需要生成任何候选集。

强关联规则:[s,c]支持度,置信度
请添加图片描述
k,e —> o [0.6,0.75] (所以不满足要求)

请添加图片描述在这里插入图片描述

6.14

下面的相依表汇总了超市的事务数据。其中,hot dogs表示包含热狗的事务,(hot dogs) ̅表示不包含热狗的事务。hamburgers表示包含汉堡包的事务,(hamburgers) ̅表示不包含汉堡包的事务。(题图中第二行第一列改成(hamburgers) ̅)
请添加图片描述
(a)假设挖掘出了关联规则hot dogs⇒humburgers,给定最小支持度阈值25%,最小置信度阈值50%,该关联规则是强规则吗?
(b)根据给定的数据,买hot dogs独立于买humburgers吗?如果不是,两者之间存在何种相关联系。
(c)在给定的数据上,将全置信度、最大置信度、Kulczynski和余弦的使用与提升度和相关度进行比较。

(a)假设挖掘出了关联规则hot dogs⇒humburgers,给定最小支持度阈值25%,最小置信度阈值50%,该关联规则是强规则吗?
由于支持度为2000/5000=40%,置信度为2000/3000=66.7%。因此,该关联规则是强关联规则。

(b)根据给定的数据,买hot dogs独立于买humburgers吗?如果不是,两者之间存在何种相关联系。
不是,corr(hotdog,hamburgers)=P(hot,hum)/(P(hot)×P(hum))=(2000/5000)/((2500/5000)×(3000/5000))=0.4/(0.5×0.6)=1.33>1,因此两者之间为正相关。

(c)在给定的数据上,将全置信度、最大置信度、Kulczynski和余弦的使用与提升度和相关度进行比较。
全置信度:〖allconf〗(hotdog,hamburgers)=0.4/0.6=2/3
最大置信度:max⁡_conf
(hotdog,hamburgers)=0.4/0.5=0.8
Kulczynski:〖Kul〗(hotdog,hamburgers)=1/2 (0.8+2/3)=11/15
余弦度量:cos(hotdog,hamburgers)=√(0.8*2/3)=(2√30)/15
提升度:lift_(hotdog,hamburgers)=(2/3)/0.5=4/3
相关度:期望值计算参考P64,其计算公式为:
x2=∑〖(观测值-期望值)〗2/期望值,x2=833.3
在这里插入图片描述

第八章:分类基本概念

8.7

下表由雇员数据库的训练数据组成。数据已泛化。例如,age“31…35”表示年龄在31~35之间。对于给定的行,count表示department、status、age和salary在该行上具有给定值的元组数。
请添加图片描述
设status是类标号属性。
1) 如何修改基本决策树算法,以便考虑每个广义数据元组(即每个行)的count?
2) 使用修改过的算法,构造给定数据的决策树。
3) 给定一个数据元组,它的属性department、age和salary的值分别为“system”、“26…30”、“46…50K”。该元组status的朴素贝叶斯分类是什么?

1) 如何修改基本决策树算法,以便考虑每个广义数据元组(即每个行)的count?
① 将每个元组的count作为计算属性选择方法中的一部分(例如信息增益)。
② 在决定元组多数表决的时候考虑元组的count。

2) 使用修改过的算法,构造给定数据的决策树。
请添加图片描述

3) 给定一个数据元组,它的属性department、age和salary的值分别为“system”、“26…30”、“46…50K”。该元组status的朴素贝叶斯分类是什么?
请添加图片描述
请添加图片描述

8.12

如图中的数据元组已经按分类器返回概率值的递减序排序。对于每个元组,计算真正例(TP)、假正例(FP)、真负例(TN)和假负例(FN)的个数。计算真正例率(TPR)和假正例率(FPR)。为该数据绘制ROC曲线。
请添加图片描述

根据计算,可以得到如上图所示对应的TPR和FPR,绘制出来的表格如下:
请添加图片描述
(这个图不对,应该是纵坐标是TPR,这样才是凸包)
请添加图片描述

8.13

当一个数据对象可以同时属于多个类时,很难评估分类的准确率。评述在这种情况下,你将使用何种标准比较在相同数据上建立的不同分类器。

一个数据对象可以同时属于多个类。然而,一个数据对象可能比起其他类会更多属于一个特定类。因此,应该建立一个分类器去判断数据对象通常属于哪个类。第一个标准,一个类如果符合最可能或第二可能类即判断分类正确。
另一个标准是使用同一个数据集判断不同分类器的分类速度、鲁棒性、可扩展性以及解释性。
通常我们会选择一个计算代价更小(训练时间、分类时间)、能在给出噪声甚至不完整数据下做出准确预测、在大型数据上有效工作并提供能够更易理解的准确结果的分类器。

8.16

概述处理类不平衡问题的方法。解释基于大量非欺诈案例和很少的欺诈案例,如何构建高质量的分类器。

提升不平衡类分类准确率的方法有三大类:采样、阈值移动、调整代价或权重。

  • 对较多的那个类别进行欠采样(under-sampling),舍弃一部分数据,使其与较少类别的数据相当。
  • 对较少的类别进行过采样(over-sampling),重复使用一部分数据,使其与较多类别的数据相当。
  • 阈值调整(threshold moving),将原本默认为0.5的阈值调整到 较少类别/(较少类别+较多类别)即可。
    请添加图片描述
    前两种方法都会明显的改变数据分布,训练数据假设不再是真实数据的无偏表述。在第一种方法中,浪费了很多数据。而第二类方法中有无中生有或者重复使用了数据,会导致过拟合的发生。因此欠采样的逻辑中,往往会结合集成学习来有效的使用数据。

方法评价
请添加图片描述
实例
假设正例数据n,而反例数据m个。可以通过欠采样,随机无重复的生成(k=n/m)个反例子集,并将每个子集都与相同正例数据合并生成k个新的训练样本。在k个训练样本上分别训练一个分类器,最终将k个分类器的结果结合起来,比如求平均值。
这就是一个简单的思路,也就是Easy Ensemble[1]。

[1] Liu, T.Y., 2009, August. Easyensemble and feature selection for
imbalance data sets. In Bioinformatics, Systems Biology and
Intelligent Computing, 2009. IJCBS’09. International Joint Conference
on (pp. 517-520). IEEE.

代码可参考:
https://cloud.tencent.com/developer/article/1689107

  • 法一:SMOTE算法、LR模型以及阈值移动的方法
    请添加图片描述
  • 法二:算法集成技术XGBoost
    请添加图片描述

    第十章:聚类分析

    10.2

    假设数据挖掘的任务是将如下的8个点(用(x,y)代表位置)聚类为3个簇。
    A_1(2,10) ,A_2 (2,5),A_3 (8,4),B_1 (5,8),B_2 (7,5),B_3 (6,4),C_1 (1,2),C_2 (9,4)
    距离是欧氏距离。假设初始我们选择A_1,B_1和C_1分别为每个簇的中心,用k-均值算法给出:
    (a)在第一轮执行后的3个簇中心。
    (b)最后的3个簇。

(a)在第一轮执行后的3个簇中心。
在第一轮执行时,分别计算除中心点外的所有点和每个中心点的欧几里得距离,将其并入离自己最近的中心点的簇中。因此可得第一轮后,3个簇为:
{A_1},{B_1,A_3,B_2,B_3,C_2},{C_1,A_2},故簇中心为(2, 10),(6, 6),(1.5, 3.5)。

(b)最后的3个簇。
使用新的均值作为簇的中心点,再次按照以上流程进行计算;如此迭代后,直到分配稳定后,最后形成的三个簇为:{A_1,C_2 ,B_1},{A_3,B_2,B_3},{C_1,A_2}。
请添加图片描述

10.6

k-均值和k-中心点算法都可以进行有效的聚类。
(a)概述k-均值和k-中心点相比较的优缺点。
(b)概述这两种方法与层次聚类方法(如AGNES)相比有何优缺点。

(a)概述k-均值和k-中心点相比较的优缺点。
k-均值算法计算代价更小;k-中心点计算代价大,但是对于数据中的离群点和噪声鲁棒性更强,即更少受到离群点和噪声的影响。

(b)概述这两种方法与层次聚类方法(如AGNES)相比有何优缺点。
k-均值和k-中心点都是划分方法的一种,这种方法的好处在于每次迭代重定位的时候可以撤销之前的聚群操作,但是层次聚类方法一旦一个步骤(分裂或合并)完成将不能被撤回,因此层次聚类方法可能会影响聚类的结果的质量。划分方法在球形聚类上表现良好,且其聚类的结果在小型到中中型的数据库上质量较好。划分方法的缺点在于需要指定簇的数量。
层次聚类方法自动决定簇的数量。然而他们每一步做出合并或分裂步骤的时候需要进行大量计算来评估该步骤产生的簇的质量。然而,层次聚类方法能够和其他聚类方法集成一个扩展的聚类方法,提高层次聚类质量,如BIRCH、ROCK和Chameleon。

10.12

指出在何种情况下,基于密度的聚类方法比基于划分的聚类方法和层次聚类方法更合适。并给出一些应用实例来支持你的观点。

基于划分的聚类方法和层次聚类方法都是基于对象之间的距离。这样的方法更倾向于发现球形簇并在发现任意形状的簇上遇到困难。划分方法还在簇的密度和直径方面存在问题;而层次划分方法计算代价昂贵且不能撤回已经完成的分裂或合并步骤。
基于密度的聚类方法是建立在每个簇通常其簇内的点的密度比簇外的大的前提之上的,即簇时数据空间中被稀疏区域分开的稠密区域。基于密度的方法能够发现任意形状的簇,不同意传统的聚类方法,其可以处理数据中的噪声。下图中展示了不同形状的簇,使用DBSCAN方法将能轻松处理这些簇。
请添加图片描述

10.13

给出一个例子来说明如何集成特定的聚类方法,例如,一种聚类方法被用作另一种算法的预处理步骤。此外,请解释为什么两种聚类方法的集成有时候会改进聚类的质量和有效性。

一个例子是BIRCH,一种集成了层次性聚类方法(预处理步骤)和其他聚类方法的聚类算法。一开始使用树形结构作为层次划分的对象,然后使用其他聚类算法(例如迭代划分)来重新定义簇,BIRCH增量地构建一个聚类特征树(CF树),是一棵高度平衡树,用于为层次聚类存储聚类特征(总和特征)。BIRCH包括两个阶段,第一个阶段(微聚类)扫描一遍数据库,在内存中建立一棵CF树,可以看做数据的多层压缩,视图保留数据的内在结构;第二个阶段(宏聚类)采用其他的聚类算法(例如迭代重定位)来对CF树的叶节点进行聚类,把稀疏的点当做离群点移出并且将稠密的簇合并为更大的簇。
集成不同的聚类方法能够克服单个方法的局限性。例如,集成层次聚类方法和一种其他聚类方法,例如BIRCH克服了层次聚类分两大局限性——可扩展性和不能撤销已经完成的步骤。

参考

https://blog.csdn.net/qq_40669059/article/details/105697907
https://blog.csdn.net/qq_43060870/article/details/107099163
https://cloud.tencent.com/developer/article/1689107