keywords:Knowledge Discovery of Database(KDD), OLTP, OLAP, data cube, roll-up, drill-down, support, confidence
没有系统的知识,读者应该是有传统it相关知识的data初学者,在阅读过一些相似材料后,以名词查询的方式有选择性的阅读,用于理清概念增强理解。
本章没有深入的知识,是全局的介绍,也引入了很多data mining的关键词,所以关于第一章的总结我采用关键词词典的方式,配合lecture slide和个人理解。
另:Data和AI一类的丛书如果有能力的朋友还是建议优先清华影印版教材。由于这些领域还没有传统IT那么成熟,很多名词的翻译个人认为还是不太妙。(比方说Chapter 4.中的方体,这个词和数据立方体感觉非常相似,但在英文里cube和cuboid可以清晰地表达数据立方体的结构逻辑)
这也是unsw it comp9318 的主推textbook.(补充内容来自comp9318的教学内容)
0.数据挖掘Data Mining的定义
数据挖掘是从大量数据中(tremendous amount of data)挖掘有趣pattern和knowledge的过程。
Knowledge:一些特定的信息
pattern: 规律性的经验
1.Knowledge Discovery of Database(KDD): Data Mining 的别称
KDD的3大步骤,7小步骤:
1-1 Data Preprocessing 数据预处理(和最新版略有差异,内容一致) 占总工作量的60%
Data Cleaning 数据清理,删除噪声和不一致数据(在tuple维度进行降维)
Data Reduction 数据选择 在dimension维度进行降维(e.g.分析学校的学生成绩和体育偏好的关系,我们就不需要数据集中存在学生年龄,性别等一堆信息,只需要各科成绩,年级,体育课选修这个nomial attribute)
Data Transformation 数据变换 实际上是为了数据集成的一种手段,主要是对数据一致性进行优化(e.g.将database1中的person_id和database2里的customer_id, clerk_id, manager_id在Data Integration操作时都转化为id并合并为一个attribute)
Data Integration 数据集成 实际上是从多种数据源规范到Data Warehouse数据仓库的过程,数据仓库接下来会提到。
1-2 Data Processing 数据处理
Data Mining 通过智能方法在数据仓库中提取有趣的信息。
1-3 Optimise and Resulting 优化并得出结论
Pattern Evaluation 模式评估, interesting的度量,interesting的逻辑性文字阐述在后面。
Knowledge Representation 使用computer vision,通常是各类图表和统计学方法,配合特定的数据分析报告,提供给用户(国外目前很火的Business Analysis就是主攻这一块)
2.OLTP联机事务处理 和 OLAP联机分析处理
主要区别:
OLTP基于100MB-100GB数据库,实际上指的就是relational database system
关系型数据库是传统IT的一大特征,虽然我们总是指出数据的存储有多样性,比如web, files, tables等多种信息,但实际的工作中我们知道,大量的信息通常存储于数据库中,其他的数据存储大多是用于常访问的、全局的短数据的存储,它们的操作通常也很简单。
relational database是第三代数据库,基于数据之间的联系,代表特质有primary key, foreign key这类选取和关联性的指令,从数据库设计上主要是3NF和BCNF,这里略掉。
关系型数据库为软件行业提供了很好的数据稳定性和操作便捷性的支持。
但如今我们认为它是传统数据库,non-sql database的兴起是下一代数据库(但不是所有软件都需要用到,relational databse有它存在的价值和意义)。
OLAP基于Data Warehouse,这样的数据仓库实际上是对长期积累的Databse Data的汇总(e.g. 7-11在中国假设有500家分店,日本500家,澳大利亚500家,也许出于本地化和别的要求,每个国家都单独设计了一套数据库,数据仓库要做的就是把这些店面日积月累的在逻辑上进行data integration,统一存放到一个数据分析中心的服务器群组上)
所以OLAP 有100GB-100TB的一个常规DB size区间。
数据仓库使用多维数据结构建模,这种结构通常被称为Data cube数据立方体。
实际上就是所有的相关attribute+时间维度来建立多维度模型,然后通过统计汇总后的结果来统计得到我们需要知道的值。
(e.g. 7-11想知道全球分店本季度最畅销的商品是什么,时间维度是季度, 需要知道的统计数据是销量)
实际上,我们总是需要汇总数据,以7-11为例,7-11的relational databse可能每秒钟都有数条信息实时录入,但我们在数据分析的时候,出于实际的价值考量,不会取“上一秒种最畅销的商品”这种无理的时间区间,也不大可能取“北京西城区某街道某店”这种单元级别的attribute范围来进行分析。
而我们的分析中,维度是很重要的概念。
因此我们会引入下钻 drill down和上卷 roll-up 的概念。
上钻比如说我的时间维度从month到quarters到year.
下钻就是相反,从大的汇总级别到低级别。
3.数据挖掘的模式和相关概念
3-1 任务的分类
描述性descriptive和预测性predictive任务
描述性任务即直接通过统计学方法得出确定的结论。
预测性任务则需要结合统计学方法,基于已有知识,从概率学的角度给出一个对未知结果的最大可能性结论。
监督supervised学习,无监督unsupervised学习和半监督semi-supervised学习
supervised learning即在给定类标号的train set的情况下,通过建模对data set的结果进行分析。通常为classification和prediction
unsupervised learning则是在无类标号的情况下,通过数据点datapoint的内在联系(通常是通过数学方法折算为广义距离,距离越近,联系越强)。通常为clustering
semi-supervised learning有些特殊,按书上的说法是给定的trainset中有一部分有类标号,一部分没有类标号,有类标号的负责帮助模型确认类标号,没有的负责改进类边界。
我觉得这个说法,可以形象的安利一个data网站,叫 cross validation。
其实这就是一种检验办法,通常最常见的是leave-one-out-cross-validation.
这里不具体讲了,其实很简单,不知道的朋友请赶紧查一下。
值得一提的是还有active learning,它是通过用户在learning过程中主动的提供信息来完成的,比如现在有些稍微好一点的车子的互联网驾驶系统,大概就表达了这么一个意思。
classification和prediction
classification是通过模型找到未知对象的类标号。
常见的分类方法有decision tree, neural network, naive bayes, svm, k-nn等
prediction和predictive略有不同,这里的prediction实际上是regression
常用的方法是regression analysis
而相关分析relevant analysis是用于识别对classification或regression过程显著相关的属性。
clustering聚类
聚类分析数据对象,不考虑类标号。
聚类的过程即最大化类内相似性,最小化类间相似性的过程。
聚类也便于分类法形成 taxonomy formation, 即将类似的事件组织在一起。
离群点分析outlier analysis
离群点大多会被直接去除,但特殊情况下离群点或许有出人意料的作用,如:分析信用卡盗刷。
一些反常的情况也或许有其中的规律。
3-2 数据特征化data characterization
数据特征化: 对数据一般特性或特征的汇总
数据特征化的输出通常为各类图表。
3-3 频繁模式 frequent pattern
频繁模式: 在数据中频繁出现的模式(频繁项集,频繁子序列,频繁子结构)
频繁项集:e.g. 频繁地在事务数据集中一起出现的商品的结构
频繁子序列:优先级序列e.g.顾客倾向于先买数码相机,后买sd卡
频繁子结构:不同的结构形式,如Tree, Graph, 与频繁项集和频繁子结构结合在一起。
buys(X, "computer")=>buys(X, "software")[support=1%, confidence=50%]
置信度confidence: 在所有顾客购买computer的情况里,50% 购买software
支持度support: 在所有情况里,1%显示计算机和软件被一同购买(所有情况:所有顾客消费所有商品的记录,不局限于computer和software)
以上例子为单维关联规则(single-dimensional association rule)
age(X , "20..29") ^ income(X, "40k .. 50k")=>buys(X, laptop)[support=2%, confidence=60%]
以上涉及到两个属性一个谓词,即age和income,buys,因此叫做多维关联规则(multi-dimensional association rules)
如果一个关联规则没有满足一定的support和confidence,它会被认为是无趣的。
但我们还可以进一步分析attribute间的correlation相关性
p.s. 本章实际上就是一堆概念的初步组合,加不了啥内容,之后有时间作者会加一点代码之类的配合解释,尽量让文章可读性高一点,简明一点。
思考练习:
1.RDBMS(关系数据库)和Data Warehouse的异同?
首先,关系型数据库和数据仓库都是数据的存储和管理系统。
关系型数据库基于OLTP, 主要操作都使用SQL语句,以CRUD操作为基础,再一定的规则约束下(比如3NF, BCNF)设计和创建schema。
数据仓库基于OLAP系统,这样操作语句就不限于SQL语句了,比如(cube up), OLAP的操作要求尽可能快的retrieval speed,而操作命令也是为数据挖掘而设计,命令的指向性很明确。
具体说作用,关系型数据库往往是由数据库工程师设计,而使用者大多是非IT从业者,通过日常的操作来存取数据,database也是用于应付这种日常的操作,因此上古时代的数据估计不会保存。
而Dataware house需要保存尽可能每个时期的数据,来完善自身的体系,数据仓库是海量数据的存储中心,以时间为一维,建立相对于对应数据库更高维的数据存储结构。
从设计上讲,database更强调在“冗余”和“信息丢失”之间找到最好的平衡,这个平衡往往和数据库的实际用途,以及数据的重要性有关。
而data warehouse主要是为海量数据而设计,它弱化了Update和Delete操作(事实上一些数据仓库甚至没有直接的update功能),他的用法也很明确,就是检索,检索,再检索。那么对于数据仓库来讲,高效的访问、很好的数据辅助和管理工具(ETL工具、数据迁移工具、数据清洗工具、数据审计工具)都是data warehouse应该考虑到的功能。
ETL: Extraction/Transformation/Loading, 让用户通过GUI界面无门槛的对数据进行简单地变换ETL介绍与ETL工具比较 - CSDN博客
数据迁移工具:允许简单地变换,来解决数据迁移过程中的inconsistent,e.g.将'gender'变换为'sex'.
数据清洗工具:通过简单地领域知识(e.g.电话号码、邮箱、单词拼写检查)检查并纠正数据中的错误。
数据审计工具:通过分析数据发现规则和联系,并找到违背规则和联系的数据来发现偏差。
补充部分:
- 有趣度interesting的定义
容易理解,具有普适性和准确性,有潜在价值,目前未被发现的。
价值的主观和客观,客观建立在支持度和置信度上,主观建立在用户的信念上。
2.我们能找到所有的并且只找到interesting pattern吗?
找到所有:完整性
启发式搜索和彻底的搜索都可以做到
只找到有趣的pattern: 优化问题
推荐书目: