[数据仓库的开发流程]()和数据库的比较相似,因此本文仅就其中区别进行分析。
下图为数据仓库的开发流程:
较之数据库系统开发,数据仓库开发只多出ETL工程部分。然而这一部分极有可能是整个数据仓库开发流程中最为耗时耗资源的一个环节。因为该环节要整理各大业务系统中杂乱无章的数据并协调元数据上的差别,所以工作量很大。在很多公司都专门设有ETL工程师这样的岗位,大的公司甚至专门聘请ETL专家。数据仓库测试
1、适用人员不同:OLTP主要供基层人员使用,进行一线业务操作。OLAP则是探索并挖掘数据价值,作为企业高层进行决策的参考。
2、面向内容不同:OLTP面向应用,OLAP面向主题;
4、数据特点不同:OLTP的数据特点是当前的、最新的、细节的, 二维的、分立的;而OLTP则是历史的, 聚集的, 多维的,集成的, 统一的;
5、存取能力不同:OLTP可以读/写数十条记录,而OLAP则可以读上百万条记录;
6、工作事件的复杂度不同:OLTP执行的是简单的事务,而OLAP执行的是复杂任务;
7、可承载用户数量不同:OLTP的可承载用户数量为上千个,而OLAP则是上百万个;
8、DB大小不同:OLTP的DB 大小为100GB,而OLAP则可以达到100TB;
9、执行时间要求不同:OLTP具有实时性,OLAP对时间的要求不严格。
频繁项集------->产生强关联规则的过程
1.由Apriori算法(当然别的也可以)产生频繁项集
2.根据选定的频繁项集,找到它所有的非空子集
3.强关联规则需要满足最小支持度和最小置性度 (假设关联规则是:A=>B , support(A=>B)= { P(AUB) } confidence(A=>B)=P(B|A)={ P(AUB)/P(A) } 。这里求概率都可以替换为求支持度计数(就是统计在源数据表中各个出现的次数,例如:P(AUB) 就找A和B在源数据表中同时发生了多少次)
4.找到所有可能性的关联规则。例如:频繁项集为:{1,2,3} -------->非空子集则为:{1,2},{1,3},{2,3},{1},{2},{3}---------->可能的关联规则为:{1,2}=>3 , {1,3}=>2 , {1,3}=>2 , 1=>{2,3},2=>{1,3},3=>{1,2}
5.最后计算所有可能的关联规则的置信度,找到符合最小置信度(会给出)的规则,它们则为强关联规则。
链接:https://www.nowcoder.com/questionTerminal/cc5f88b95e3f4d189c4b4b3c186d9c64
来源:牛客网
首先要明白两个定理(K项集为频繁K项集时,则K-1也必为频繁集):
1、连接定理:若有两个k-1项集,每个项集按照“属性-值”(一般按值)的字母顺序进行排序。如果两个k-1项集的前k-2个项相同,而最后一 个项不同,则证明它们是可连接的,即这个k-1项集可以联姻,即可连接生成k项集。如:有两个3项集{a, b, c}{a, b, d},这两个3项集就是可连接的,它们可以连接生成4项集{a, b, c, d};两个3项集{a, b, c}{a, d, e},这两个3项集显示是不能连接生成3项集的。
2、频繁子集定理:若一个项集的子集不是频繁项集,则该项集肯定也不是频繁项集。若存在3项集{a, b, c},如果它的2项子集{a, b}的支持度即同时出现的次数达不到阈值,则{a, b, c}同时出现的次数显然也是达不到阈值的。
二、聚类算法分类 1.基于划分
给定一个有N个元组或者纪录的数据集,分裂法将构造K个分组,每一个分组就代表一个聚类,K<N。
特点:计算量大。很适合发现中小规模的数据库中小规模的数据库中的球状簇。
算法:K-MEANS算法、K-MEDOIDS算法、CLARANS算法
2.基于层次
对给定的数据集进行层次似的分解,直到某种条件满足为止。具体又可分为“自底向上”和“自顶向下”两种方案。
特点:较小的计算开销。然而这种技术不能更正错误的决定。
算法:BIRCH算法、CURE算法、CHAMELEON算法
3.基于密度
只要一个区域中的点的密度大过某个阈值,就把它加到与之相近的聚类中去。
特点:能克服基于距离的算法只能发现“类圆形”的聚类的缺点。
算法:DBSCAN算法、OPTICS算法、DENCLUE算法
4.基于网格
将数据空间划分成为有限个单元(cell)的网格结构,所有的处理都是以单个的单元为对象的。
特点:处理速度很快,通常这是与目标数据库中记录的个数无关的,只与把数据空间分为多少个单元有关。
算法:STING算法、CLIQUE算法、WAVE-CLUSTER算法
————————————————
版权声明:本文为CSDN博主「大数据AI笔记」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:
K均值和DBSCAN比较 为了简化比较,
我们假定对于K均值和DBSCAN都没有距离的限制,并且DBSCAN总是将与若干个核心点相关联的边界点指派到最近的核心点。
- K均值和DBSCAN都是将每个对象指派到单个簇的划分聚类算法,
但是K均值一般聚类所有对象,而DBSCAN丢弃被它识别为噪声的对象。 - K均值使用簇的基于原型的概念,而DBSCAN使用基于密度的概念。
- K均值很难处理非球形的簇和不同大小的簇。DBSCAN可以处理不同大小或形状的簇,并且不太受噪声和离群点的影响。当簇具有很不相同的密度时,两种算法的性能都很差。
- K均值只能用于具有明确定义的质心(比如均值或中位数)的数据。DBSCAN要求密度定义(基于传统的欧几里得密度概念)对于数据是有意义的。
- K均值可以用于稀疏的高维数据,如文档数据。DBSCAN通常在这类数据上的性能很差,因为对于高维数据,传统的欧几里得密度定义不能很好处理它们。
- K均值和DBSCAN的最初版本都是针对欧几里得数据设计的,但是它们都被扩展,以便处理其他类型的数据。
- 基本K均值算法等价于一种统计聚类方法(混合模型),假定所有的簇都来自球形高斯分布,具有不同的均值,但具有相同的协方差矩阵。DBSCAN不对数据的分布做任何假定。
- K均值DBSCAN和都寻找使用所有属性的簇,即它们都不寻找可能只涉及某个属性子集的簇。
- K均值可以发现不是明显分离的簇,即便簇有重叠也可以发现,但是DBSCAN会合并有重叠的簇。
- K均值算法的时间复杂度是O(m),而DBSCAN的时间复杂度是O(m^2),除非用于诸如低维欧几里得数据这样的特殊情况。
- DBSCAN多次运行产生相同的结果,而K均值通常使用随机初始化质心,不会产生相同的结果。
- DBSCAN自动地确定簇个数,对于K均值,簇个数需要作为参数指定。然而,DBSCAN必须指定另外两个参数:Eps(邻域半径)和MinPts(最少点数)。
7.2(13.) K均值聚类可以看作优化问题,即最小化每个点到最近质心的误差平方和,并且可以看作一种统计聚类(混合模型)的特例。DBSCAN不基于任何形式化模型。