本文转载自:https://blog.csdn.net/u013232035/article/details/48281659

本文主要是在学习《数据挖掘导论(完整版)》中的学习笔记,主要用来梳理思路,并没有多少思考。

第1章 绪论

1.1 什么是数据挖掘

KDD: K nowledge D iscovery in D atabase
过程如下:

Created with Raphaël 2.1.0输入数据数据预处理数据挖掘后处理信息

其中,数据预处理包括如下几部分:

  • 特征选择
  • 维度归约
  • 规范化
  • 选择数据子集

后处理包括如下及部分:

  • 模式过滤
  • 可视化
  • 模式表达

1.2 数据挖掘要解决的问题

  • 可伸缩:着眼于数据量剧烈增长的问题
  • 高维性:对象拥有数量不少的属性
  • 异种数据和复杂数据:数据来源广泛,且结构复杂(XML格式,文本格式,流格式等)
  • 数据的所有权与分布:分布式数据处理
  • 非传统的分析:数据挖掘要求自动产生和评估假设,并且数据挖掘数据集多是时机性样本,而非随机性样本

1.4 数据挖掘任务

数据挖掘主要有如下两大类任务:

  • 预测任务:根据某些属性来预测另外一些属性的值。其中,用来做预测的属性被称为说明性属性(explanatory variable)自变量(independent variable),被预测的属性被称为目标变量(target variable)因变量(dependent variable)
  • 描述任务:导入数据中的潜在的模式,如 相关、趋势、聚类和异常等。更详细的说,有如下几大任务:

    • 预测建模(predictive modeling):以自变量为因变量建立模型,从而使得因变量的预测值与实际值误差越小越好。其中,针对离散性变量的称为分类(classification),针对连续性变量的称为回归(regression)
      下例为鸢尾花分类,数据集见 Iris_dataset,以下为matlab代码:

      %% 鸢尾花分类
      clear all; close all; clc;%% 载入数据
      % data各列分别为 花萼长度,花萼宽度,花瓣长度,花瓣宽度,种类
      load iris_dataset;%% 画图
      % 花瓣长度 花瓣宽度 与 种类
      type1 = data(data(:, 5) == 1, 3:4);
      type2 = data(data(:, 5) == 2, 3:4);
      type3 = data(data(:, 5) == 3, 3:4);
      plot(type1(:, 1), type1(:, 2), 'o', type2(:, 1), type2(:, 2), 'o', type3(:, 1), type3(:, 2), 'o');
      xlabel('花瓣长度(cm)');
      ylabel('花瓣宽度(cm)');
      legend(unique(classes), 'Location', 'NorthWest');
      • 1
      • 2
      • 3
      • 4
      • 5
      • 6
      • 7
      • 8
      • 9
      • 10
      • 11
      • 12
      • 13
      • 14
      • 15
      • 16

    • 关联分析(association analysis):用来发现描述数据中强相关的模式
    • 聚类分析(cluster analysis) :旨在发现紧密相关的对象群,使得同一簇中的对象尽可能相似,不同簇之间的对象则尽可能相异
    • 异常检测(anomaly analysis):识别其属性值明显不同于其他数据的对象,这样对象被称为异常值(anomaly)离群点(outlier)

第2章 数据

2.1 数据类型

数据集通常可以看为数据对象的集合。数据对象有时也可以称为记录、点、向量、模式、事件、案例、样本、观测或实体。数据对象由一组刻画对象基本特性的属性描述。属性又可称为变量、特性、字段、特征或者维。

2.1.1 属性和度量

我们给出如下定义:
- 属性(attribute):是对象的性质或特征
- 测量标度(measurement scale):将数值或符号值与对象的属性相关联的规则(函数),如清点教室中的座位数等。

属性的值往往有如下几种性质:
1. 相异性
2. 序
3. 加法
4. 乘法
根据这些性质,可将属性分为四种类型:标称(nominal)序数(ordinal)区间(interval)比率(ratio)

属性类型 描述 例子 操作
标称 标称属性只是用来区别不同对象的 邮政编码、学号 众数、熵、列联相关、χ2χ2 检验
序数 序数属性可以确定对象的顺序 治疗效果、矿石硬度 中值、百分数、秩相关、游程检验、符号检验
区间 区间属性之间的差有意义,即有测量单位 日历日期、摄氏度等 均值、标准差、皮尔逊相关、tt 和FF 检验
比率 比率属性的差与比值都有意义 绝对温度、质量、长度 几何平均、调和平均、百分比变差

属性类型可以通过不改变属性的变换来描述,即允许的变换(permissible transformation)

属性类型 允许的变换
标称 任何一对一的变换
序数 值的保序变换,NewValue = ff (OldValue),其中ff 为单调函数
区间 NewValue = a∗a∗ OldValue+bb ,a,ba,b 为常数
比率 NewValue = a∗a∗ OldValue

另外根据属性的可能取值,可将属性分为离散的(discrete)连续的(continuous)

对于非对称的属性(asymmetric attribute),出现非零值才重要,考虑如下数据集:每个对象为一个学生,每个属性记录该学生是否选修了某项大学课程

2.1.2 数据集的类型

  • 一般特性:维度,稀疏性、分辨率
  • 记录数据:事务数据或购物篮数据、数据矩阵、稀疏数据矩阵
  • 基于图形的数据:带有对象之间联系的数据(类似图论)、具有图形对象的数据
  • 有序数据:时序数据、序列数据、时间序列数据1、空间数据
  • 非记录数据

2.2 数据质量

数据挖掘所使用的数据往往是为其他用途收集的,或在收集时没有明确目的的。因而数据的质量往往不高。故数据处理着眼于两方面:(1)数据质量问题的检测与纠正,(2)使用可以容忍低质量数据的算法

2.2.1 测量和数据收集问题

  • 测量误差:测量过程中的问题,如系统误差,随机误差等
  • 噪声:测量误差的随机部分
  • 伪像:数据的确定性失真,如:一组图像在相同的位置出现条纹
  • 精度:(同一量的)重复测量值之间的接近程度
  • 偏倚:测量值与被测量值之间的系统变差
  • 准确度:测量值与实际值之间的接近程度,准确率的一个重要方面是有效数字
  • 离群点:离群点与噪音不同,它往往是合法的值,并且可能是人们关注的重点,如:信用卡欺诈、网络进攻等
  • 遗漏值:解决方法有 a.删除对象和属性 b.估计遗漏值 c. 在分析时忽略遗漏值
  • 不一致的值
  • 重复数据:去重复方法解决

2.2.2 关于应用的问题

  • 时效性
  • 相关性:常见问题有 抽样偏倚2
  • 关于数据的背景知识

2.3 数据预处理

数据预处理是为了改善数据挖掘的效果,减少分析时间,降低成本和提高质量。常用技术可以分为两类:(1)选择分析所需要的数据对象, (2)创建/改变属性

2.3.1 聚集

聚集(aggregation) 将两个或多个对象合并成单个对象。考虑如下数据集:一个记录一年中不同日期在不同地区的商店的日销售情况,可以用一个商店事务替换掉该商店的所有事务。

2.3.2 抽样

在数据挖掘中,抽样是因为处理所有数据的费用太高,借助抽样压缩样本量,优化数据挖掘算法的性能。
有效抽样的原理:如果样本是有代表性的,则使用样本与使用整个数据集的效果几乎一样。
常见抽样方法有简单随机抽样,包括有放回抽样、无放回抽样;分层抽样;渐进抽样3。

2.3.3 维度归约

当数据集中包含大量特征(属性)时,维归约就愈加显现其好处。其主要的作用是,如果维度较低,许多数据挖掘算法的效果会更好,可以避免维度灾难;并且使得模型更易理解。
维度归约的常用方法是使用线性代数技术,将数据从多维空间投影到低维空间,主要技术有 主成分分析(Principal Component Analysis, PCA)奇异值分解(Singual Value Decomposition, SVD)

2.3.4 特征子集选择

通过选择属性集中的部分属性的方法,达到降低维度的目的。当存在冗余特征或不相关特征时,往往并不会损失太多信息,从而也是一种有效的降维方法。由集合论可知,nn 个属性有2n−12n−1 个非空子集,故而穷举属性子集的方法是计算不可行的,实际中往往采用如下方法:

  • 嵌入方法(embedded approach):特征选择作为数据挖掘的一部分存在
  • 过滤方法(filter approach):使用某种独立于数据挖掘的方法,在数据挖掘算法运行之前进行特征选择
  • 包装方法(wrapper approach):将目标数据挖掘算法作为黑盒,使用类似穷举的方法,但通常并不枚举所有子集

特征子集选择由四部分组成:子集度量评估、控制新的特征子集产生的搜索策略、停止搜索判断和验证过程。过滤方法和包装方法不同在与 子集评估度量 。

另外,除了上述三种特征子集选择的方法,还可以通过 特征加权 来保留或删除特征。

2.3.5 特征创建

常常可以用原有的属性创建新的属性集,更有效地捕获数据集中的重要信息。与之相关的方法有:
- 特征提取(feature extraction):如由相片提取人脸的特征点
- 映射数据到新的空间:如将时间域的变量变换到频率域,参见 傅里叶变换
- 特征构造:由原始属性提取出易于数据挖掘的属性,如根据密度分辨木头金块

2.3.6 离散化和二元化

某些数据挖掘算法只适用于分类属性,此时就需要用到离散化(discretization)二元化(binarization)

2.3.7 变量变换

变量变换(variable transformation) 是指用于变量的所有值的变换,包括:简单函数变换,标准化(standardization) 或 规范化(normalization)

2.4 相似性和相异性的度量

我们使用邻近度(proximity) 来表示相似度或相异度,对象的邻近度常常是其属性的邻近度的函数。

简单属性的相似度和相异度可以通过下表刻画:

属性类型 相异度 相似度
标称

d={1if(x=y)0if(x≠y)d={1if(x=y)0if(x≠y)

s={1if(x=y)0if(x≠y)s={1if(x=y)0if(x≠y)

序数

d=|x−y|(n−1)d=|x−y|(n−1)

s=1−ds=1−d

区间或比率

d=|x−y|d=|x−y|

s=−d,s=11+d,etc.s=−d,s=11+d,etc.

欧几里德距离:

d(x,y)=∑k=1n(xk−yk)2−−−−−−−−−−−√d(x,y)=∑k=1n(xk−yk)2

其中,nn 是维数,xkxk 和ykyk 分别是xx 和yy 的第kk 个分量
闵可夫斯基距离:

d(x,y)=(∑k=1n|xk−yk|r)1/rd(x,y)=(∑k=1n|xk−yk|r)1/r

其中,rr 为参数

满足(1)非负性 (2)对称性 (3)三角不等性 的测度称为度量(metric)
相似度往往不满足三角不等性,而满足前两条。

相异度相似度的具体实例:
- 二元属性的相似度度量
设xx 和yy 是两个对象,都有nn 个二元属性组成,这两个对象的比较可以有如下四个量:

f00=x取0且y取0的属性数f01=x取0且y取1的属性数f10=x取1且y取0的属性数f11=x取1且y取1的属性数f00=x取0且y取0的属性数f01=x取0且y取1的属性数f10=x取1且y取0的属性数f11=x取1且y取1的属性数

据此可以定义如下距离

  • 简单匹配系数(Simple Matching Coefficient, SMC):SMC=f00+f11f00+f01+f10+f11SMC=f00+f11f00+f01+f10+f11
  • Jaccard系数(Jaccard Coefficient):J=f11f01+f10+f11J=f11f01+f10+f11
  • 余弦相似度(cosine similarity):

    cos(x,y)=x⋅y∥x∥∥y∥cos(x,y)=x⋅y‖x‖‖y‖

  • 广义Jaccard系数:

    EJ=x⋅y∥x∥2+∥y∥2−x⋅yEJ=x⋅y‖x‖2+‖y‖2−x⋅y

  • 相关性:

    corr(x,y)=sxysxsycorr(x,y)=sxysxsy

    其中,

    sxy=1n−1∑k=1n(xk−x¯)(yk−y¯)sx=1n−1∑k=1nxk−x¯2−−−−−−−−−−−−−−√sy=1n−1∑k=1nyk−y¯2−−−−−−−−−−−−−−√sxy=1n−1∑k=1n(xk−x¯)(yk−y¯)sx=1n−1∑k=1nxk−x¯2sy=1n−1∑k=1nyk−y¯2

  • Bregman散度:给定一个严格凸函数ϕϕ (连同一些通常满足的适度限制),由该函数生成的Bregman散度D(x,y)D(x,y) 由如下公式给出:

    D(x,y)=ϕ(x)−ϕ(y)−〈∇ϕ(y),(x−y)〉D(x,y)=ϕ(x)−ϕ(y)−〈∇ϕ(y),(x−y)〉

    其中,∇ϕ(y)∇ϕ(y) 是在yy 上计算ϕϕ 的梯度,〈∇ϕ(y),(x−y)〉〈∇ϕ(y),(x−y)〉 为计算两者点积

当距离度量具有不同尺度时,需要进行标准化;若属性间有一定的相关度,则可以使用Mahalanobis距离:mahalanobis(x,y)=(x−y)∑−1(x−y)Tmahalanobis(x,y)=(x−y)∑−1(x−y)T ,∑−1∑−1 为数据协方差的逆;当各个属性的重要性不同时,可以使用权重调整;当属性的类型不同时,可以使用如下算法:

Created with Raphaël 2.1.0计算异种属性的相似度计算第k个属性的相似度判断条件*保留该相似度使用公式*计算总相似度忽略该相似度yesno

判断条件 为:某个对象在该属性上有遗漏值,或者该属性为非对称属性且两个对象在该属性上的取值为0
公式

similarity(x,y)=∑nk=1wkδksk(x,y)∑nk=1δksimilarity(x,y)=∑k=1nwkδksk(x,y)∑k=1nδk

其中,δ=0,1δ=0,1 ,wkwk 为权重


  1. 时间序列数据 是一种特殊的时序数据,它的每一个记录都是一个时序数据,如北京地区从1982年到1994年每年的月平均气温数据。 ↩
  2. 抽象偏倚(sample bias) 是指样本包含的不同类型的对象与它们的总体中的出现情况不成比例。 ↩
  3. 合适的样本容量常常很难确定,此时就有可能使用渐进抽样(progressive sampling),该方法从一个小样本开始,然后逐渐增加样本容量直至得到足够容量的样本。 ↩
  4. 维灾难是指随着数据维度的增加,许多数据分析变得困难,特别是随着维度增加,数据在它所占据的空间中越来越稀疏。

《数据挖掘导论》学习笔记:第1-2章相关推荐

  1. 数据挖掘导论学习笔记:第三章 探索数据

    3.1鸢尾花数据集 这个数据集包含150种鸢尾花信息,每50种取自三个鸢尾花种之一:Setosa.Versicolour.Virginica. 属性描述: 萼片长度(cm) 萼片宽度(cm) 花瓣长度 ...

  2. 数据挖掘导论学习笔记 第五章 分类算法

    5.1基于规则的分类器 基于规则的分类器的规则用析取范式R=(r1∨r2∨⋯∨rk)R=(r_1\lor r_2 \lor \cdots \lor r_k)R=(r1​∨r2​∨⋯∨rk​)表示.R称 ...

  3. 数据挖掘导论学习笔记(一)

    第一章 绪论 数据挖掘:在大型数据存储库中,自动的发现有用信息的过程. 数据库中知识发现过程(KDD): 输入数据->数据预处理---->数据挖掘---->后处理---->信息 ...

  4. 【算法导论学习笔记】第3章:函数的增长

    原创博客,转载请注明: http://www.cnblogs.com/wuwenyan/p/4982713.html  当算法的输入n非常大的时候,对于算法复杂度的分析就显得尤为重要,虽然有时我们能通 ...

  5. 人工智能导论学习笔记02

    人工智能导论学习笔记02--第二章 :人工智能哲学基础 人工智能导论学习笔记 人工智能导论学习笔记02--第二章 :人工智能哲学基础 第一讲 大历史观下的人工智能 宇宙演化 人类与生命进化 机器进化 ...

  6. 山东大学软件学院人工智能导论学习笔记

    课程为山东大学软件学院人工智能专业2020年大二下学期的"人工智能导论"课程 目前课程内容:<人工智能导论(第四版)>1.2.3.4.5.6章 本学习笔记采用一种类似框 ...

  7. 一文弄懂元学习 (Meta Learing)(附代码实战)《繁凡的深度学习笔记》第 15 章 元学习详解 (上)万字中文综述

    <繁凡的深度学习笔记>第 15 章 元学习详解 (上)万字中文综述(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net ...

  8. 一文让你完全弄懂逻辑回归和分类问题实战《繁凡的深度学习笔记》第 3 章 分类问题与信息论基础(上)(DL笔记整理系列)

    好吧,只好拆分为上下两篇发布了>_< 终于肝出来了,今天就是除夕夜了,祝大家新快乐!^q^ <繁凡的深度学习笔记>第 3 章 分类问题与信息论基础 (上)(逻辑回归.Softm ...

  9. 一文让你完全弄懂回归问题、激活函数、梯度下降和神经元模型实战《繁凡的深度学习笔记》第 2 章 回归问题与神经元模型(DL笔记整理系列)

    <繁凡的深度学习笔记>第 2 章 回归问题与神经元模型(DL笔记整理系列) 3043331995@qq.com https://fanfansann.blog.csdn.net/ http ...

  10. C++ Primer 学习笔记(第四章:表达式)

    2019独角兽企业重金招聘Python工程师标准>>> ##C++ Primer 学习笔记(第四章:表达式) [TOC] ###4.1 基础 左值和右值: 当一个对象被用作右值的时候 ...

最新文章

  1. 解题报告:P3834 【模板】可持久化线段树 2(主席树)详解
  2. linux能安装音乐软件吗,Linux上如何安装使用音乐软件SoundCloud
  3. 公交车下发现一具男尸
  4. 2012年生活方向盘
  5. 一文详解Serverless架构模式
  6. Linux搭建虚拟专用,Ubuntu的发行版如何搭建虚拟专用网
  7. influxdb java api使用_java使用influxDB数据库的详细源码
  8. git如何查看和切换账号
  9. SQLite3中的SQL基本语句和高级语句
  10. 调研3家学校,分析10万数据,发现有了大数据再也不用“清考”
  11. SQL Server 2008 安装或卸载时提示“重启计算机失败的解决办法(转)
  12. react 打包体积过大_解决 webpack 打包文件体积过大
  13. 高考改变命运,来自一个湖南贫困村的真实样本
  14. Cursor 详解及使用
  15. 鲁宾逊《非标准分析》中译版正式上线
  16. CSS如何在宽高不确定的父元素内画一个正方形
  17. 职场工作人员需不需要写日报
  18. 软件开发延期引发纠纷-律师随笔
  19. ajax angular点击事件_angularjs和ajax的结合使用 (三)
  20. The Frog Prince (青蛙王子) and Hello Kitty (凯蒂猫)

热门文章

  1. c51语言 12864菜单设计 不带自库,12864显示花屏 - c51编程(单片机的c语言) - 51单片机学习论坛 www.51c51.com - Powered by Discuz!...
  2. 使用原生js,写了一个心算口算天天练
  3. 免费空间python_10M/S!百度网盘偷偷更新,终于实现免费不限速了?!
  4. HTML5 之 图片墙
  5. tomcat问题:导入源码报程序包aQute.bnd.annotation.spi不存在
  6. 世界上第一台电子计算机很大 质量为35吨,世界上第一台电子计算机很大.质量为35吨.比一头大象体重的6倍还多0.2吨.一头大象重多少吨? 题目和参考答案——青夏教育精英家教网——...
  7. 深度学习 神经网络的优化方法
  8. 为什么90%的“码农”做不了“架构师”?
  9. Building Crosswalk For Windows
  10. mui弹出提示_mui 弹窗提醒,form表单基本信息