文章目录
- 第一章 概述
- 第二章 商务智能过程
- 2.1四个部分
- 2.2数据仓库与数据库
- 2.3在线分析处理与在线事务处理
- 第三章 关联分析
- 3.1 频繁模式与关联规则
- 3.2 相关性度量
- lift
- cosine
- 第四章 分类
- 4.1决策树
- 4.1.1 信息熵的概念
- 4.1.2 计算目标变量的信息熵
- 4.1.3 算条件熵
- 4.1.4 信息增益
- 4.1.5 补充
- 4.1.6 属性的类型及分裂条件
- 定性(考试重点)
- 定量
- 4.2 朴素贝叶斯分类
- 4.3 KNN
- 4.4 分类性能的度量
- 4.4.1 划分数据集
- 4.4.2 度量指标
- 4.4.3不同分类模型的比较
- 5 数值预测
- 5.1 非线性回归
- 5.2 回归树与模型树
- 第六章 聚类
- 6.1聚类方法分类
- 6.2 相似度衡量方法
- 基于距离的相似度度量
- 余弦相似度
- 基于相关性的相似度度量
- Jaccard系数
- 异种属性相似度的综合度量
- 6.3 K均值聚类
- 6.4 多种聚类方式特点对比
- 第八章 数据预处理
- 8.1 数据规范化
- 8.2 数据离散化
- 8.3 数据清洗
- 第十章 数据仓库
- 10.1 数据仓库的相关概念
- 10.2 数据仓库的体系结构
- 10.3 多维数据模型
- 第十一章 联机分析处理
第一章 概述
-
信息与知识
- 信息
- 通过一定的技术和方法,对数据进行集成、分析,挖掘其潜在的规律和内涵,得到的结果是信息
- 信息是具有商务意义的数据
- 知识
- 当信息用于商务决策,并基于决策开展相应的商务活动时,信息就上升为知识信息转化为知识的过程不仅需要信息,而且需要结合决策者的经验和能力,用以解决实际的问题
- 信息
-
商务智能的系统构成(六个主要组成部分)
- 数据源
- 企业内部的操作型系统,即支持各业务部分日常运营的信息系统
- 企业的外部,如人口统计信息、竞争对手信息等
- 数据仓库
- 各种数据源的数据经过抽取、转换之后需要放到一个供分析使用的环境,以便对数据进行管理,这就是数据仓库
- 在线分析处理
- 数据探查
- 数据挖掘
- 业务性能管理
- 数据源
第二章 商务智能过程
2.1四个部分
-
四个部分,每个部分问题
-
规划
- 在规划阶段,主要目标是选择要实施商务智能的业务部门或业务领域,从而解决企业的关键业务决策问题,识别使用商务智能系统的人员以及相应的信息需求,规划项目的时间、成本、资源的使用
- 了解每个业务部门或业务领域的需求,收集他们当前急需解决的
- 问题企业中哪些业务环节的支出费用太高?哪些过程耗用时间太长?哪些环节的决策质量不高
- 在规划阶段,主要目标是选择要实施商务智能的业务部门或业务领域,从而解决企业的关键业务决策问题,识别使用商务智能系统的人员以及相应的信息需求,规划项目的时间、成本、资源的使用
-
需求分析
- 识别需求考虑重要性和实现的难易程度
- 重要性方面,可以从三个方面进行衡量
- 衡量商务智能提供信息的可操作性
- 衡量实施商务智能可能给企业带来的回报
- 衡量实施商务智能可以帮助企业
- 实现短期目标实现的难易程度
- 商务智能的实现需要涉及的范围
- 衡量数据的可获取性
-
设计
- 如果要创建数据仓库,则进行数据仓库的模型设计,常用的是多维数据模型。数据集市可以从数据仓库中抽取数据进行构建
- 在不构建数据仓库的情况下,也可以直接为某个业务部门设计和实现数据集市。
- 如果要实现OLAP解决问题,则要设计多维分析的聚集操作类型。
- 如果要借助数据挖掘技术,则需要选择具体的算法
-
实现
- 实现阶段,选择ETL工具实现源数据的抽取,构建数据仓库和(或)数据集市
- 对数据仓库或数据集市的数据,选取并应用相应的查询或分析工具,包括增强型的查询、报表工具、在线分析处理工具、数据挖掘系统以及企业绩效管理工具等
- 在具体应用该系统之前,需要完成对系统的数据加载和应用测试,设计系统的访问控制和安全管理方法。
2.2数据仓库与数据库
-
联系表现在两个方面数据仓库中的大部分
- 数据来自于业务系统的数据库中
- 当前绝大多数数据仓库都是利用数据库系统来管理的
-
区别:构建目的、管理的数据、管理方法都不同
- 数据库主要用于实现企业的日常业务运营,提高业务运营的效率;数据仓库的构建主要用于集成多个数据源的数据,这些数据最终用于分析
- 数据库通常只包含当前数据,数据的存储尽量避免冗余,数据的组织按照业务过程涉及的数据实现,是应用驱动的。数据仓库中的数据是按照主题组织的,将某一主题的所有数据集成在一起,数据存在冗余。
-
区别:构建目的、管理的数据、管理方法都不同
- 数据库中的数据需要进行频繁的插入、删除、修改等更新操作,需要复杂的并发控制机制保证事务运行的隔离性。
- 数据仓库中的数据主要用于分析处理,除了初始的导入和成批的数据清除操作之外,数据很少需要更新操作
- 数据库中数据的更新操作的时效性很强,事务的吞吐率是个非常重要的指标。而数据仓库的数据量十分庞大,分析时通常涉及大量数据,时效性不是最关键的。数据仓库中的数据质量非常关键,不正确的数据将导致错误的分析结果。
2.3在线分析处理与在线事务处理
在线事务处理(online transaction processing),简称OLTP,是数据库管理系统的主要功能,用于完成企业内部各个部门的日常业务操作。
在线分析处理(online analytical processing),简称OLAP,是数据仓库系统的主要应用,提供数据的多维分析以支持决策过程
第三章 关联分析
3.1 频繁模式与关联规则
1. 频繁模式概念
在数据集中经常出现(出现的频率不小于minsup,minsup是人为设定的,如为50%)的模式(可以是一个子序列、子结构、子集等),可以应用于销售分析、网页日志分析、DNA序列分析。
2. 关联规则概念
当X出现时,Y也会出现。X->Y 通常有两个数据,一个是XY一起出现的频率,另一个是当X出现时Y出现的条件概率。
链接1:数据挖掘随笔(一)频繁模式挖掘与关联规则挖掘以及Apriori算法(python实现)
链接2:频繁模式和关联规则
TID | transaction |
---|---|
T1 | 鸡蛋,牙膏,牛排,牛奶,面包 |
T2 | 鸡蛋,亚麻籽,橄榄油,牛奶,面包 |
T3 | 鸡蛋,泡芙,奶油,牛奶,面包 |
T4 | 鸡蛋,低筋面粉,糖粉,黄油,牛奶 |
举个例子,我们的 鸡蛋牛奶$A={鸡蛋,牛奶} , , , 面包B={面包} $。
那么
s u p p o r t ( A ⇒ B ) = P ( A ∪ B ) = 3 4 = 0.75 support(A⇒B)=P(A∪B)=\frac{3}{4}=0.75 support(A⇒B)=P(A∪B)=43=0.75
D D D的transaction中包含 鸡蛋,牛奶,面包 {鸡蛋,牛奶,面包} 鸡蛋,牛奶,面包的条目为 T 1 , T 2 , T 3 T1,T2,T3 T1,T2,T3一共三个,所以分子上是3
c o n f i d e n c e ( A ⇒ B ) = P ( A ∪ B ) P ( A ) = 3 4 = 0.75 confidence(A⇒B)=\frac{P(A∪B)}{P(A)}=\frac{3}{4}=0.75 confidence(A⇒B)=P(A)P(A∪B)=43=0.75
T1~T4中都出现了 A ,故分母为4,分子同上
很明显,对于计算出的值,我们需要设置人为的阈值才能判定 A 和 B是否为一个关联规则。假定我们设置了两个阈值 s s s 和 c c c 。那么如果 s u p p o r t ( A ⇒ B ) ≥ s ∧ c o n f i d e n c e ( A ⇒ B ) ≥ c support(A⇒B)≥s∧confidence(A⇒B)≥c support(A⇒B)≥s∧confidence(A⇒B)≥c ,我们就说 A ⇒ B A⇒B A⇒B是一条关联规则。它的实际意义可是买了 鸡蛋 , 牛奶 {鸡蛋,牛奶} 鸡蛋,牛奶很有可能还会去买 面包 {面包} 面包。
这就是关联规则挖掘的最简单的做法,由此,我们可以用两步来总结关联规则挖掘的步骤:
- 找出所有可能的频繁项集。频繁项集的定义为support在事务集中出现频率大于设定阈值min_sup的项集。
- 在找出的频繁项集中生成强关联规则。符合强相关联规则的频繁项集对需要满足其support和confidence都分别大于预先设定好的阈值。
- 举个例子
3.2 相关性度量
一般我们使用三个指标来度量一个关联规则,这三个指标分别是:支持度、置信度和提升度。
Support(支持度):表示同时包含A和B的事务占所有事务的比例。如果用P(A)表示使用A事务的比例,那么Support=P(A&B)
Confidence(可信度):表示使用包含A的事务中同时包含B事务的比例,即同时包含A和B的事务占包含A事务的比例。公式表达:Confidence=P(A&B)/P(A)
Lift(提升度):表示“包含A的事务中同时包含B事务的比例”与“包含B事务的比例”的比值。公式表达:Lift=( P(A&B)/P(A))/P(B)=P(A&B)/P(A)/P(B)。
提升度反映了关联规则中的A与B的相关性,提升度>1且越高表明正相关性越高,提升度<1且越低表明负相关性越高,提升度=1表明没有相关性。
举例子:
10000个超市订单(10000个事务),其中购买三元牛奶(A事务)的6000个,购买伊利牛奶(B事务)的7500个,4000个同时包含两者。
那么通过上面支持度的计算方法我们可以计算出:
**三元牛奶(A事务)和伊利牛奶(B事务)的支持度为:**P(A&B)=4000/10000=0.4.
**三元牛奶(A事务)对伊利牛奶(B事务)的置信度为:**包含A的事务中同时包含B的占包含A的事务比例。4000/6000=0.67,说明在购买三元牛奶后,有0.67的用户去购买伊利牛奶。
**伊利牛奶(B事务)对三元牛奶(A事务)的置信度为:**包含B的事务中同时包含A的占包含B的事务比例。4000/7500=0.53,说明在购买三元牛奶后,有0.53的用户去购买伊利牛奶。
上面我们可以看到A事务对B事务的置信度为0.67,看似相当高,但是其实这是一个误导,为什么这么说?
因为在没有任何条件下,B事务的出现的比例是0.75,而出现A事务,且同时出现B事务的比例是0.67,也就是说设置了A事务出现这个条件,B事务出现的比例反而降低了。这说明A事务和B事务是排斥的。
下面就有了提升度的概念。
我们把0.67/0.75的比值作为提升度,即P(B|A)/P(B),称之为A条件对B事务的提升度,即有A作为前提,对B出现的概率有什么样的影响,如果提升度=1说明A和B没有任何关联,如果<1,说明A事务和B事务是排斥的,>1,我们认为A和B是有关联的,但是在具体的应用之中,我们认为提升度>3才算作值得认可的关联。
lift
其实就是,如果现在用sup表示某一个项的出现频次(注意不是频率)、n代表总条数,比如这里为n,那么 l i f t ( A ⇒ B ) = s u p ( A B ) ∗ n s u p ( A ) s u p ( B ) lift(A⇒B)=\frac{sup(AB)*n}{sup(A)sup(B)} lift(A⇒B)=sup(A)sup(B)sup(AB)∗n
cosine
这里下面开了根号,所以就不需要计算那个n了。直接 s u p ( A B ) s u p ( A ) s u p ( B ) \frac{sup(AB)}{\sqrt{sup(A)sup(B)}} sup(A)sup(B)sup(AB),再次提醒我这里的sup是出现次数
第四章 分类
- 分类:总结已有类别的对象的特点并进而进行未知类别对象的类别预测的过程
- 分类器(classifier)
- 训练数据集(training dataset)
- 分类属性(class label attribute),每个取值称为一个类别(class label),就是标签y
- 属性,用于描述一个对象的某个特性或性质,就是特征x
- 测试数据集(testing dataset)
4.1决策树
- 构建过程
- 分裂属性和分裂条件的选择
- 分裂属性的选择通常利用类别纯度的衡量作为标准
- 信息熵和gini指数两种
4.1.1 信息熵的概念
- 信息熵的大小可以认为是继续搞清事物所需要的信息的大小,先有个概念,我们会在后面回顾
4.1.2 计算目标变量的信息熵
- 全文用这个例子进行表示
天气预测是否去打篮球。假设我们有以下数据:
Weather | Play Basketball |
---|---|
Sunny | Yes |
Overcast | Yes |
Rainy | Yes |
Sunny | Yes |
Sunny | No |
Overcast | Yes |
Rainy | No |
Rainy | No |
Sunny | Yes |
其中,"Weather"是特征,"Play Basketball"是目标变量。我们想要计算以"Weather"为节点分割数据时的信息熵。
首先,我们要计算目标变量"Play Basketball"的熵,公式为:
H ( X ) = − ∑ P ( x ) log 2 P ( x ) H(X) = - \sum P(x) \log_2 P(x) H(X)=−∑P(x)log2P(x)
在这个例子中,我们有6个"Yes"和3个"No",所以Play Basketball的熵为:
H ( P l a y B a s k e t b a l l ) = − [ ( 6 / 9 ) ∗ l o g 2 ( 6 / 9 ) + ( 3 / 9 ) ∗ l o g 2 ( 3 / 9 ) ] H(Play Basketball) = - [(6/9)*log2(6/9) + (3/9)*log2(3/9)] H(PlayBasketball)=−[(6/9)∗log2(6/9)+(3/9)∗log2(3/9)]
我们可以计算得出$ H(Play Basketball) ≈ 0.918$。
补充:信息熵是度量数据集的混乱程度或者说不确定性的一个度量。当数据集中所有数据都属于同一类别时,不确定性最小,此时的信息熵为0。
- 若所有行属于同一类别,比如全部都是"Yes",那么我们可以根据信息熵的公式得到:
E n t r o p y = − ∑ P ( x ) log 2 P ( x ) = − [ 1 ∗ l o g 2 ( 1 ) + 0 ] = 0 Entropy = - \sum P(x) \log_2 P(x) = - [1*log2(1) + 0] = 0 Entropy=−∑P(x)log2P(x)=−[1∗log2(1)+0]=0
其中, P ( x ) P(x) P(x)是特定类别的概率。
- 当两个类别均匀分布时,比如"Yes"和"No"各占一半,即概率分别为0.5,那么不确定性最大,此时的信息熵为1。
若两个类别均匀分布,我们可以根据信息熵的公式得到:
E n t r o p y = − ∑ P ( x ) log 2 P ( x ) = − [ 0.5 ∗ l o g 2 ( 0.5 ) + 0.5 ∗ l o g 2 ( 0.5 ) ] = 1 Entropy = - \sum P(x) \log_2 P(x) = - [0.5*log2(0.5) + 0.5*log2(0.5)] = 1 Entropy=−∑P(x)log2P(x)=−[0.5∗log2(0.5)+0.5∗log2(0.5)]=1
- 所以,在构建决策树时,我们的目标就是找到一种方式将数据划分成尽可能纯净(即熵小)的子集。
4.1.3 算条件熵
在上面算完目标变量的信息熵之后,我们要计算各个特征的条件熵,条件熵的公式为:
H ( Y ∣ X ) = ∑ P ( x ) H ( Y ∣ x ) H(Y|X) = \sum P(x) H(Y|x) H(Y∣X)=∑P(x)H(Y∣x)
其中, P ( x ) P(x) P(x)是特征X的概率分布, H ( Y ∣ x ) H(Y|x) H(Y∣x)是在给定X的条件下Y的熵。
统计一下例子的数据
Weather | Play Basketball = Yes | Play Basketball = No |
---|---|---|
Sunny | 3 | 1 |
Overcast | 2 | 0 |
Rainy | 1 | 2 |
例如,如果我们以"Weather"为节点分割数据
- "Sunny"的条件熵为:
H ( P l a y B a s k e t b a l l ∣ W e a t h e r = S u n n y ) = − [ ( 2 / 3 ) ∗ l o g 2 ( 2 / 3 ) + ( 1 / 3 ) ∗ l o g 2 ( 1 / 3 ) ] ≈ 0.811 H(Play Basketball | Weather=Sunny) = - [(2/3)*log2(2/3) + (1/3)*log2(1/3)]≈ 0.811 H(PlayBasketball∣Weather=Sunny)=−[(2/3)∗log2(2/3)+(1/3)∗log2(1/3)]≈0.811
- 对于"Overcast"天气:
H ( P l a y B a s k e t b a l l ∣ W e a t h e r = O v e r c a s t ) = − [ 1 ∗ l o g 2 ( 1 ) + 0 ] = 0 H(Play Basketball | Weather=Overcast) = - [1*log2(1) + 0] = 0 H(PlayBasketball∣Weather=Overcast)=−[1∗log2(1)+0]=0
- 对于"Rainy"天气:
H ( P l a y B a s k e t b a l l ∣ W e a t h e r = R a i n y ) = − [ ( 1 / 3 ) ∗ l o g 2 ( 1 / 3 ) + ( 2 / 3 ) ∗ l o g 2 ( 2 / 3 ) ] ≈ 0.918 H(Play Basketball | Weather=Rainy) = - [(1/3)*log2(1/3) + (2/3)*log2(2/3)] ≈ 0.918 H(PlayBasketball∣Weather=Rainy)=−[(1/3)∗log2(1/3)+(2/3)∗log2(2/3)]≈0.918
- 然后,我们需要计算以"Weather"为节点分割数据时的条件熵。这需要将各种天气下的条件熵结合天气的概率(在本例中是Weather=Sunny, Overcast, Rainy的概率)求和:
H ( P l a y B a s k e t b a l l ∣ W e a t h e r ) = P ( S u n n y ) ∗ H ( P l a y B a s k e t b a l l ∣ W e a t h e r = S u n n y ) + P ( O v e r c a s t ) ∗ H ( P l a y B a s k e t b a l l ∣ W e a t h e r = O v e r c a s t ) + P ( R a i n y ) ∗ H ( P l a y B a s k e t b a l l ∣ W e a t h e r = R a i n y ) = ( 4 / 9 ) ∗ 0.811 + ( 2 / 9 ) ∗ 0 + ( 3 / 9 ) ∗ 0.918 ≈ 0.764 H(Play Basketball | Weather) = P(Sunny) * H(Play Basketball | Weather=Sunny) + P(Overcast) * H(Play Basketball | Weather=Overcast) + P(Rainy) * H(Play Basketball | Weather=Rainy) = (4/9)*0.811 + (2/9)*0 + (3/9)*0.918 ≈ 0.764 H(PlayBasketball∣Weather)=P(Sunny)∗H(PlayBasketball∣Weather=Sunny)+P(Overcast)∗H(PlayBasketball∣Weather=Overcast)+P(Rainy)∗H(PlayBasketball∣Weather=Rainy)=(4/9)∗0.811+(2/9)∗0+(3/9)∗0.918≈0.764
4.1.4 信息增益
最后,我们可以用目标变量的熵减去条件熵,得到以"Weather"为节点分割数据时的信息增益,信息增益越大,说明以此特征为节点分割数据越好。
G a i n ( W e a t h e r ) = H ( P l a y B a s k e t b a l l ) − H ( P l a y B a s k e t b a l l ∣ W e a t h e r ) = 0.918 − 0.764 = 0.154 Gain(Weather) = H(Play Basketball) - H(Play Basketball | Weather) = 0.918 - 0.764 = 0.154 Gain(Weather)=H(PlayBasketball)−H(PlayBasketball∣Weather)=0.918−0.764=0.154
这个结果说明,以"Weather"作为划分的节点能带来0.154的信息增益,这有助于我们决定是否选择"Weather"作为划分的节点。
4.1.5 补充
- 来自知乎问题,首先我们要先明白信息熵是什么
首先区分两种信息量:继续搞清该事物所需的信息量VS此前已知信息所提供的信息量,这两种信息量此起彼伏,如果其中一个越大,另一个就越小。信息熵与继续搞清该事物所需的信息量同向变动,信息熵与此前已知信息所提供的信息量反向变动。
信息熵越大,表示事物的不确定性越大,因此继续搞清该事物所需的信息量越大,这说明此前已知信息或者说此前已知数据所提供的信息量越小;
信息熵越小,表示事物的不确定性越小,因此继续搞清该事物所需的信息量越小,这说明此前已知信息或者说此前已知数据所提供的信息量越大。
- 随机变量的信息熵越大,则它的值(内容)能给你补充的信息量越大,而知道这个值前你已有的信息量越小
4.1.6 属性的类型及分裂条件
上面已经举了一个简单的打篮球(警觉)的例子,大概有所感受了,因为上面例子只有两列,一列是y(标签),一列是x(特征),体会不到决策树的选择过程,所以用下面这个例子来进一步介绍。
- 在这个例子中
- 整个数据集的信息熵是按豪车计算的
- 定性数据的计算是指按分类属性x(比如这里的婚姻、性别、年龄)的计算,也就是分列前的信息熵。
- 定量数据的计算是分别对按数值属性x(比如这里的年收入)等进行计算,给x进行不同的分类条件的划分尝试。
- 信息增益=分裂前信息熵-分裂后信息熵
- 通过比较大小,信息增益越大(信息熵减少越多的),就会成为我们选择的分裂条件
定性(考试重点)
- tips:比如这里按婚姻算,就是先分为三种情况:单身、已婚、离异,然后其中的每种又按照y(豪车的是否)来计算。
定量
4.2 朴素贝叶斯分类
4.3 KNN
4.4 分类性能的度量
4.4.1 划分数据集
-
保持法(holdout)
- 人为确定训练数据集和测试数据集的比例,常用的比例是2:1和1:1
-
交叉验证法(cross-validation)
-
每个样本都交替地用于训练集或测试集
-
n折交叉验证 n-Folds cross-validation
-
常用:10折交叉验证
-
数据集分成10份,每次用9分作训练集,1份做测试集
-
首先,我们将数据集平均分成10份(每份10个样本)。然后,我们进行10轮的训练和测试。在每一轮中,我们使用9份数据(90个样本)来训练我们的模型,并使用剩下的1份数据(10个样本)来测试模型的性能。这样,每份数据都有一次机会被用作测试集,而其余的时间都被用作训练集。
最后,我们得到10个测试分数,我们通常会计算它们的平均值作为最终的性能指标。这种方法的优点是我们使用了所有的数据进行了训练和测试,而且每个样本都被用于测试一次。
-
-
留一法(Leave-one-out )N折交叉验证
-
留一法是n折交叉验证的特殊情况,其中n等于样本总数。即,如果我们有100个样本,我们会进行100轮的训练和测试。在每一轮中,我们使用99个样本进行训练,并使用剩下的一个样本进行测试。
虽然这种方法可以得到最不偏倚的估计,但计算成本很高,特别是当样本数量非常大时。然而,如果样本量相对较小,这种方法可能是一个很好的选择,因为它允许我们充分利用所有的数据。
-
-
-
自助抽样法(bootstrap)
- 自助抽样法采用放回抽样来构造训练数据集
4.4.2 度量指标
4.4.3不同分类模型的比较
-
增益图(gains chart)
- 增益图是一种可视化工具,用于显示模型预测的累积效果。在增益图中,X轴表示样本的比例(从全部预测为正类开始的样本),Y轴表示正类样本的比例。
- 增益图的起始点是 (0,0),结束点是 (1,1)。如果模型的预测完全准确,那么图形将会是一个向上并且向右的步骤图,其中步骤发生在所有真正例被预测为正类之后。如果模型的预测没有任何信息量(即,与随机猜测一样),那么图形将是一条从 (0,0) 到 (1,1) 的对角线。
- 增益图是评估模型预测排名效果的一种好方法,特别是当我们对预测正类样本的排序比对预测的精度更感兴趣时。
-
ROC 曲线
- Y轴:样本中所含正例样本的个数在正例样本总数中的百分比,即真正率TP
- X轴:所选样本中的负例样本占测试样本中总负例样本的比例,即假正率FP
- ROC 曲线的起点是 (0,0),终点是 (1,1)。如果模型的预测完全准确,那么ROC曲线会先向上到 (0,1),然后向右到 (1,1)。如果模型的预测没有任何信息量,那么ROC曲线将是一条从 (0,0) 到 (1,1) 的对角线。
- ROC 曲线下的面积(Area Under the ROC Curve,AUC)可以用作衡量模型性能的一个指标。AUC 的值在 0.5(没有预测能力)到 1(完美预测)之间。
5 数值预测
5.1 非线性回归
非线性回归怎么转化为线性回归
-
对于模型 y = a x b y=a x^b y=axb,取对数后变为: log y = log a + b log x \log y = \log a + b \log x logy=loga+blogx.
-
对于模型 y = a e b x y=a e^{bx} y=aebx,取对数后变为: ln y = ln a + b x \ln y = \ln a + b x lny=lna+bx.
-
对于模型 y = a + b log x y=a+b \log x y=a+blogx,如果令 X = log x X=\log x X=logx,则模型变为: y = a + b X y = a + bX y=a+bX.
这些都是常见的非线性模型,它们可以通过对数变换或变量替换转化为线性模型。这样做的好处是,线性模型在理论和实践上都更容易处理。
5.2 回归树与模型树
SDR(Standard Deviation Reduction)和信息熵以及信息增益(Information Gain)都是决策树中用来选择分裂属性的准则,但它们适用的问题和具体的计算方法有所不同。
-
SDR(Standard Deviation Reduction):
SDR是用于回归问题的决策树中,也就是目标变量是连续数值。它是基于目标属性取值的标准差来进行分裂属性的选择。如果一个分裂可以导致子数据集的标准差明显下降,那么这个分裂就可能是好的。标准差是一种衡量数据集中值的离散程度的指标,标准差越小,数据越集中。
SDR的计算公式通常为: S D R = s d ( D ) − ( ∣ D 1 ∣ / ∣ D ∣ ) ∗ s d ( D 1 ) − ( ∣ D 2 ∣ / ∣ D ∣ ) ∗ s d ( D 2 ) SDR = sd(D) - (|D1|/|D|)*sd(D1) - (|D2|/|D|)*sd(D2) SDR=sd(D)−(∣D1∣/∣D∣)∗sd(D1)−(∣D2∣/∣D∣)∗sd(D2)。其中, s d ( D ) sd(D) sd(D)代表数据集D中目标属性取值的标准差, ∣ D ∣ |D| ∣D∣代表数据集D中包含的样本个数。
-
信息熵和信息增益(Information Gain):
信息熵和信息增益则是用于分类问题的决策树中,也就是目标变量是离散的。信息熵是一种度量数据不确定性的指标,信息熵越大,数据的不确定性越大。而信息增益则是判断一个属性在分类问题中的重要性的指标,信息增益越大,说明这个属性对分类的贡献越大。
信息增益的计算公式为: G a i n = E n t r o p y ( D ) − ∑ ( ∣ D i ∣ / ∣ D ∣ ) ∗ E n t r o p y ( D i ) Gain = Entropy(D) - ∑(|Di|/|D|)*Entropy(Di) Gain=Entropy(D)−∑(∣Di∣/∣D∣)∗Entropy(Di)。其中, E n t r o p y ( D ) Entropy(D) Entropy(D)是数据集D的信息熵, ∣ D i ∣ / ∣ D ∣ |Di|/|D| ∣Di∣/∣D∣是子数据集Di在D中的比例。
总的来说,SDR和信息增益都是评估分裂属性的有效性的指标,但SDR主要用于回归问题,而信息增益主要用于分类问题。它们都试图找到那些能够最大程度降低不确定性的属性作为分裂属性。
第六章 聚类
6.1聚类方法分类
- 划分法(Partitioning approach):
- k均值(k-means)、k中心点(k-medoids)等方法。
- 层次法(Hierarchical approach):
- 凝聚层次聚类(agglomerative hierarchical clustering)和分裂层次聚类(divisive hierarchical clustering)
- Diana、 Agnes、BIRCH、 ROCK、CAMELEON等。
- 基于密度的方法(Density-based approach)
- DBSCAN、OPTICS和 DenClue等。
- 基于模型的方法(Model-based)
- EM、SOM和COBWEB等
6.2 相似度衡量方法
基于距离的相似度度量
余弦相似度
基于相关性的相似度度量
Jaccard系数
异种属性相似度的综合度量
6.3 K均值聚类
- 算质心
假设我们有一个二维数据集,其中包含六个点:(1,1),(1,2),(2,1),(5,4),(5,5)和(6,5),并且我们想将这些点聚成两类,以下是 K-means 聚类的一个基本过程:
-
初始化:首先,我们需要选择K(这里K=2)个初始中心(称为质心)。有多种方法可以选择初始质心,其中一种简单的方法是从数据集中随机选择K个样本。假设我们选择了 (1,1) 和 (5,4) 作为初始的两个质心。
-
分配到最近的质心:接下来,我们将每个数据点分配给最近的质心。这个"最近"是根据某种距离度量来确定的,通常是欧几里得距离。对于我们的例子,(1,1),(1,2) 和 (2,1) 会被分配到第一个质心,(5,4),(5,5) 和 (6,5) 会被分配到第二个质心。
-
重新计算质心:然后我们需要重新计算每个类的质心。质心是其所包含的所有点的均值。对于我们的例子,第一个类的新质心是 ((1+1+2)/3, (1+2+1)/3) = (1.33, 1.33),第二个类的新质心是 ((5+5+6)/3, (4+5+5)/3) = (5.33, 4.67)。
-
重复步骤 2 和 3:我们不断重复步骤 2 和 3,直到质心不再发生显著变化,或者达到预设的最大迭代次数。在我们的例子中,质心已经不会再改变,所以算法在这里停止。
最后的结果是,(1,1),(1,2) 和 (2,1) 被聚为一类,(5,4),(5,5) 和 (6,5) 被聚为另一类。注意,K-means 聚类的结果可能会受到初始质心选择的影响,有可能陷入局部最优,因此实际操作中可能需要多次运行算法,选择最好的结果。
6.4 多种聚类方式特点对比
1. K-均值 (K-means):
优点:
- 计算速度快,大规模数据集上的效率较高。
- 输出结果易于理解,聚类效果中等。
缺点:
- 需要预先设定聚类个数K,这在许多情况下是个挑战。
- 对初始质心的选择敏感,可能陷入局部最优。
- 对于非球形(非凸)的数据结构,以及大小差异较大的簇效果较差。
- 对于噪声和离群点敏感。
适用场景:
- 适合连续数值型数据,不适用于类别型数据(使用k-modes或k-prototype进行扩展)。
- 数据量大且数据维度相对较低时表现较好。
2. 层次聚类(Hierarchical Clustering):
优点:
- 无需预先设定聚类个数。
- 产生的层次结构可以在不同的层次进行分析,适用于层次性的数据。
- 在数据量不是特别大时,效果往往优于K-means。
缺点:
- 计算复杂度高,对于大规模数据集难以处理。
- 一旦一个样本被归入某个类,就不能再改变,这可能导致聚类效果受到限制。
- 对于噪声和离群点敏感。
适用场景:
- 当需要得到数据的层次结构时。
- 数据集相对较小且具有明显的层次结构时。
3. DBSCAN (Density-Based Spatial Clustering of Applications with Noise):
优点:
- 无需预先设定聚类个数。
- 可以发现任意形状的聚类结构。
- 具有识别噪声点的能力。
缺点:
- 对于密度不均匀的数据集,可能难以找到合适的参数(如密度阈值)。
- 对高维数据的聚类效果通常不好。
适用场景:
- 数据集中的聚类呈现复杂形状时。
- 数据集中存在噪声点或者离群点时。
- 数据集的大小和密度相对适中,且数据维度不是特别高时。
第八章 数据预处理
8.1 数据规范化
- 数据规范化又称标准化(standardization)
- 最小-最大法(min-max normalization)
- z-score
- Z = ( X − μ ) / σ Z = (X - μ) / σ Z=(X−μ)/σ
- 最小-最大法(min-max normalization)
8.2 数据离散化
- 等距离分箱、等频率分箱
- 基于熵的离散化
- 分箱离散化由于是一种无监督离散化方法
- 基于熵的离散化方法是常用的有监督的离散化方法
- 信息熵的取值越小,类别分布越纯,反之越不纯
- 离散化方法ChiMerge
- 如果基于熵的方法可以看作是自顶向下的分裂方法,则ChiMerge则属于自底向上的合并方法
- ChiMerge则是从每个值都是一个小区间开始,不断合并相邻区间成为大的区间,它是基于统计量卡方检验实现的
ChiMerge 是一种基于卡方统计量的有监督离散化方法,用于将连续变量转换为离散变量。ChiMerge 方法的基本原理是将连续变量的值域划分为一系列不相交的区间,使得同一区间内的值对应的目标变量的分布尽可能一致,而不同区间对应的目标变量的分布尽可能不同。
下面是 ChiMerge 方法的基本步骤:
-
初始化:将连续属性的每个值作为一个单独的区间。
-
计算每对相邻区间的卡方值。
-
合并卡方值最小的相邻区间,这两个区间的合并不会显著改变目标变量的分布。
-
重复步骤 2 和 3,直到所有相邻区间的卡方值都大于预设的阈值,或者达到预设的区间个数。
下面是一个简单的例子。假设我们有以下的数据:
Age | Class |
---|---|
23 | + |
45 | - |
56 | + |
60 | - |
33 | + |
48 | - |
50 | - |
38 | + |
我们希望使用 ChiMerge 方法将 Age 离散化,Class 是目标变量。
初始化后,我们有 8 个区间。接着,我们计算每对相邻区间的卡方值,并合并卡方值最小的相邻区间。这个过程一直重复,直到所有相邻区间的卡方值都大于阈值,或者达到预设的区间个数。
这个例子只是为了说明 ChiMerge 方法的基本步骤,实际计算卡方值的过程涉及到统计学的知识,需要构建列联表并计算实际值和期望值的偏差。
总的来说,ChiMerge 是一种有效的离散化方法,尤其适合于那些连续变量和目标变量关系复杂的情况。
8.3 数据清洗
-
处理数据的缺失、噪音数据的处理以及数据不一致的识别和处理
-
处理数据的缺失
-
如果数据集含有分类属性,一种简单的填补缺失值的方法为,将属于同一类的对象的该属性值的均值赋予此缺失值;对于离散属性或定性属性,用众数代替均值
-
更复杂的方法,可以将其转换为分类问题或数值预测问题
-
第十章 数据仓库
10.1 数据仓库的相关概念
- 什么是数据仓库?
- 数据仓库是一个面向主题的、集成的、随时间变化的、稳定的用于支持组织决策的数据集合。
- 为什么要建立数据仓库?
- 不同系统中的数据存在冗余、不一致的问题,每个系统仅反映的是一部分信息,且互不关联,形成信息孤岛。
- 直接访问操作型系统获取数据进行分析,势必会干扰操作型系统中事物的高效运行,影响业务运营的效率。
- 数据仓库与数据集市的区别
- 数据仓库:
- 1、一般先于数据集市被创建出来。
- 2、多种不同的数据来源。
- 3、包括所有详细数据信息。
- 4、数据内容为公司级别,没有特定主题或领域。
- 5、符合第三范式。
- 6、通常需针对如何处理海量数据做优化。
- 数据集市:
- 1、一般后于数据仓库被创建出来。
- 2、数据仓库为数据来源。
- 3、包含适度聚合的数据和一些详细数据。
- 4、数据内容为部门级别,有特定的领域。
- 5、星形和雪花形。
- 6、通常更注重如何快速访问和分析。
- 数据仓库:
10.2 数据仓库的体系结构
- 数据仓库系统的体系结构
- 元数据是对数据仓库中数据的描述信息。主要描述三方面的信息:数据源数据信息、数据抽取与转换方面的信息、数据仓库中的数据信息。
10.3 多维数据模型
- 什么是多维数据模型?
- 多维数据模型又称维度数据模型,由维度表和事实表构成。
- 事实表
- 度量通常是定量属性,存放于事实表之中。度量最好具有可加性。
- 维度表-
- 在事实表中的维度通常只用一个属性表示,其详细信息在对应的维度表中。
- 维度表中每个属性都是对应维度的描述信息,通常为定性属性。
- 多维数据模型的结构 P147
- 星状模型
- 雪片模型
- 事实星座
- 构建多维数据模型的主要步骤
- 选择业务过程或主题
- 选择事实表中每行取值的粒度
- 确定事实表中的一行涉及的维度有哪些
- 确定度量
第十一章 联机分析处理
- OLAP的特征 P156
- 快速、分析性能、共享性、多维性、信息性
- OLAP的分析操作
- 切片(slice)
- 固定某一维的取值为其中的一个类别,其他维不变得到的立方体称为一个切片。
- 取两个维中的部分或全部类别,固定其他任何维的取值为其中的一个类别后得到的二维平面。
- 切块(dice)
- 固定某一维的取值为其中的一个区间,其他维不变得到的立方体称为一个切块。
- 取三个维中的部分或全部类别,固定其他任何维的取值为其中的一个类别后得到的三维立方体。
- 上卷(roll up)
- 对数据进行汇总在给定的立方体数据中将其中一个维度的层次用其上层的属性代替。
- 减少一个维度。
- 下钻(drill down)
- 显示当前层数据的下一层更细的数据。
- 增加一个新的维度。
- 旋转(rotate)
- 调换已有维度的位置。
- 用其他维度代替其中一个维度。
- 切片(slice)