精华内容
下载资源
问答
  • 数据分析之—基于模型的复杂数据多维聚类分析 随着现实和虚拟世界的数据产生速度越来越迅猛,人们开始关注如何从这些数据中获取信息,知识,以及对于决策的支持。这样的任务通常被称作大数据分析(BigData ...

    大数据分析之—基于模型的复杂数据多维聚类分析

    随着现实和虚拟世界的数据产生速度越来越迅猛,人们开始关注如何从这些数据中获取信息,知识,以及对于决策的支持。这样的任务通常被称作大数据分析(BigData Analytics)。大数据分析的难点很多,比如,由于海量数据而带来的分析效率瓶颈,使用户不能及时得到分析结果;由于数据源太多而带来的非结构化问题,使传统的数据分析工具不能直接利用。


    本文讨论大数据内部关系的复杂性,以及复杂数据所带来的对于聚类分析的挑战。聚类分析的目标是依据数据本身的分布特征(无监督),把整个数据(空间)划分成不同的类。基本的准则是同类的数据应该具有某种的相似性,而异类的数据应该具有某种差异性。现有工作假设在这些数据中存在单一的聚类划分的方法,而聚类目标就是找到这样的一种划分。然而,我们在大数据中所面对的复杂数据是多侧面的,比如在网页数据中既有关于内容的文本属性,也有指向这个网页的链接属性。多侧面数据本身就存在着多种有意义的划分,强制地将数据按照单一的方法聚类,得不到有效的、明确清晰的、可诠释的结果。针对这个问题,多维聚类方法针对数据的不同侧面,得到数据聚类的多种方法,最后让使用者决定需要的聚类划分。


    高维复杂数据的聚类分析是本文作者在香港科技大学跟随Nevin Zhang教授攻读博士期间的主要工作。研究论文Model-based multidimensional clustering ofcategorical data发表在今年《ArtificialIntelligence》杂志的第176期。《ArtificialIntelligence》从1970年开始出版,是人工智能领域老牌顶级期刊。因为版权原因,可能网上下载不到免费的全文,感兴趣的同学可以联系tao.chen2@emc.com。关于文中所用的隐树模型的介绍以及免费软件参见隐树模型项目主页。

    (二)多维聚类的概念

    假设我们需要对图中的所有图片进行聚类,可能的聚类方法不止一种:按照图片的内容,我们可以把左边的图片标注成袋鼠,而右边的标注成树;而按照图片风格属性,我们可以把上面的图片称为色彩图,而下面的称为线条图。简而言之,关注数据的不同侧面,有可能得到不同的聚类结果。同时这些聚类结果也都是有意义,可以解释的。


    生活中多维聚类的例子很多,比如对于人群的划分,可以按照男女等人口统计学信息划分,也可以按照对于某个事件的看法划分。那么从机器学习的角度如何公式化这样的问题,之后又怎么利用概率统计的方法去解决这样的问题呢?下面我们先给出问题的定义。

    如图所示,在聚类分析这样的无监督学习中,输入是一个数据表。表的每一行表示一个数据点,而每一列表示描述这个点的一维属性。大数据的一个重要特征就是维度很高(包含很多列),从而带来的维度灾难(curseof dimensionality)。在聚类分析中,表现为:这些维度可能自然地分成一些组,每组包含一些属性,反应了数据某一侧面(facet)的特征。用户可以根据其中一个侧面的属性,对这个数据进行聚类。比如在右表的数据中,一个学生的数据包含了数学成绩,理综成绩,文综成绩,和语文成绩这些属性。我们可以关注学生的数学和理综成绩,按照理科成绩(分析能力)对学生进行聚类;同时也可以关注学生的文综和语文成绩,按照文科成绩(语言能力)对学生进行聚类。

    所以多维聚类的问题定义为:


    如何发现数据中包含的多个侧面,即属性的自然分组,针对这些不同侧面进行聚类,从而得到多种聚类方法。

    (三)多维聚类分析的工具和原理

    贝叶斯网络是一种表示和处理随机变量之间复杂关系的工具。它是通过在随机变量之间加箭头而得到的有向无圈图。箭头表示直接概率依赖关系,具体依赖情况由条件概率分布所定量刻画。出于对计算复杂度的考虑,人们会对贝叶斯网络进行一些限制,在实际中使用一些特殊的网络结构。隐树模型(latent tree model)是一类特殊的贝叶斯网,也称为多层隐类模型(hierarchical latent class model), 是一种树状贝叶斯网, 其中叶节点代表观察到的变量,也称为显变量,其它节点代表数据中没有观察到的变量,也称为隐变量。




    图中给出了隐树模型的一个例子。其中,学生的“数学成绩”、“理综成绩”、“语文成绩”和“文综成绩”是显变量,而“智力”、“分析能力”和“语言能力”则是隐变量。从“分析能力”到“数学成绩”有一个箭头, 表示“数学成绩”直接依赖“分析能力”,具体依赖情况由右图中的条件概率表所定量所刻画。表中的内容是说,分析能力低的学生在数学科有0.5的概率不及格、0.4的概率及格、0.1的概率得良,而得优的概率则是0; 等等。模型中的其它箭头代表其它变量之间直接依赖关系,每个箭头都有相应的条件概率分布。


    在隐树模型中,一个隐变量对应一种数据聚类的方法。隐树模型允许模型中有多个隐变量,所以自然地可以多维同时聚类。在例子模型中,可以按照分析能力或者语言能力对学生聚类,也可以按照智力对学生聚类。在隐树模型中,聚类分析可以通过计算给定学生成绩的后验概率进行判断。所以,利用隐树模型进行多维聚类分析的技术重点就在如何通过观测数据学习一个最优的模型。抽象地说,就是找到能够最好地解释数据的一个生成隐树模型(Generative Latent tree model)。


    (四)隐树模型的学习

    隐树模型的学习是一个对模型逐步优化的过程,优化的目标函数是一个称为贝叶斯信息准则(Bayes information criterion, 简称BIC) 的函数:

    BIC(m|D) = max θ log P(D|m, θ) – d(m)logN/2

    BIC准则要求模型与数据尽量紧密地拟合,但其复杂不能过高。所以式中第一项表示拟合程度,而第二项是对于模型复杂度的一个惩罚项。我们的优化过程是一个基于搜索的爬山算法(Hill-Climbing)。以只包含一个隐变量的简单的隐树模型作为搜索的起始模型,在搜索的过程中,逐步引入新的隐变量、增加隐变量的取值个数、或者调整变量之间的连接。这是一个逐步修改模型的过程,在这个过程中,模型与数据的拟合程度不断改进,从而BIC分逐步增加。当模型就变得太复杂时,BIC会不升反降,于是搜索过程停止。


    隐树模型的学习是一个非常耗时的过程,主要原因在于对于BIC分数的计算。BIC函数的第一项叫做最大似然函数,在模型包含缺失值或者隐变量时,计算最大似然函数需要调用EM(Expectation-Maximization)算法。尽管我们已经对于限制了模型结构为简单的树状结构,但是在这样的模型上进行EM的计算依然是非常困难。围绕隐树模型的很多工作都是在研究如何对模型学习进行加速的,这儿就不赘述了。

    (五)基于隐树模型的多维聚类分析实例

    我们以一个真实的数据分析实例来展现多维聚类分析。数据来自某地区的关于贪污的社会调查问卷。通过一些数据预处理,我们的数据(如图所示)包含了1200份的问卷,以及31个问题。比如说C_City表示被访问者对于该地区的贪污普遍性的看法,可以有4个选项,分别是非常普遍,普遍,不普遍,以及非常不普遍。C_Gov和C_Bus分别表示受访者对于该地区政府部门或商业部门的贪污普遍性的看法,同样也有四个选项。Tolerance_C_Gov和Tolerance_C_Bus则分别表示受访者对于该地区的政府部门以及商业部门的贪污的容忍程度,可以选择完全不能容忍,不能容忍,能容忍,完全能容忍。数据表里面的-1表示受访者对该问题的回答缺失。



    利用隐树的学习算法,我们从这个数据得到了一个如图所示的模型。叶节点对应问卷问题,即显变量。中间结点,Y0-Y8是从数据中发现的隐变量,括号里面的数字表示这个变量所取的状态个数。我们发现这些隐变量都有一定的意义,比如,Y2和问卷中的Sex,Age,Income,Education这些问题紧密连接,说明Y2应该是表示受访人的人口统计信息。Y3和问卷中的Tolerance_C_Gov和Tolerance_C_Bus紧密联系,说明Y3是反映受访者总体对于贪污的看法。


    模型中的每个隐变量表示数据聚类的一种方式。比如,变量Y2有4个值,说明Y2提示数据可以分成四个类。这种聚类主要基于Sex,Age,Income,Education这些人口统计信息相关变量的,所以可以说当我们关注人群的人口统计信息这个侧面时,我们可以根据Y2把人群分成四类。具体地研究这四类的类条件概率(Class-Conditional ProbabilityDistribution)特性,我们进一步发现它们分别代表:低收入的年轻人群,低收入的女性人群,受过高等教育的高收入人群,以及只接受初等教育的一般收入人群。同时,我们看到Y3有3个取值,这说明从人群对于贪污总体看法这个侧面出发,可以把人群分成三类,分别是对于贪污完全不能容忍的人群,对于贪污比较不能容忍的人群,对于贪污可以容忍的人群。同样地,我们的聚类也可以基于其他隐变量所代表的侧面。这样从模型中我们得到了9种聚类的方法,达到了多维同时聚类的效果。


    除了聚类,对于这个数据的分析还告诉我们一些隐藏很深的关系。比如在模型中变量Y2和Y3有连线,这表明一个人的背景信息和他对于贪污的容忍程度应该有一定的关联关系。具体地说,在Y2所表示的4类人中,你觉得哪一类是最能容忍贪污,而哪一类是最不能容忍贪污的呢?在模型中,通过对这两个变量的条件概率的分析,我们得到了一个答案,有兴趣的同学可以去论文中验证一下自己的猜测。


    (六)相关学术工作

    隐树模型在密度估计,近似推理及隐结构发现等方面都有具体的应用。在多维聚类分析的应用上,我们分析过市场学数据(COILChallenge 2000),某地区的社会调查数据(ICAC),NBA篮球运动员比赛统计数据。最近,随着算法的提速,隐树模型开始被尝试用于文本分析,比如对于网页数据,博客数据等的话题分析。隐树模型最开始的提出是为了对中医的证候分析提供统计解释,有兴趣的同学可以参考隐结构模型与中医证研究。


    最近两年,多维聚类分析引起了很多机器学习研究人员的兴趣。从2010年开始的MultiClust Workshop已经举办了两届,其中第一届是和KDD2010一起举办,第二届是和ECML/PKDD2011一起举办。而第三届也会与SDM2012一起举办。具体参考文献这儿也不罗列了。


    多维聚类分析和基于多视图的学习不应该混淆。多视图学习假设数据的多个视图已知,要求视图之间存在充分性(Sufficiency)和冗余性(Redundancy),通过协同训练等技术,主要提高半监督学习,主动学习的性能。多视图学习中针对聚类这样的无监督任务的研究很少,而且它的目标也是如何提高单一的聚类划分的质量,而不是找到多种划分方法。多视图学习也极少涉及如何发现多个视图,而不是假设他们已知。这方面南京大学周志华教授在今年的中国机器学习及其应用研讨会上提到一些初步研究。实际中,可以考虑先用多维聚类分析找到数据的多个侧面(视图),然后再应用多视图学习的方法。


    (七)总结

    对于一个复杂数据,比如文本,视频,图像,或者生物实验数据,人们可以从不同的角度去诠释这样的数据。数据分析家们已经有了这样的共识,那就是以前的单维聚类方法不再适合大数据的多样性特征。多维聚类分析通过对单维聚类问题的扩展,为复杂数据提供了一种新的探索性分析的方式。我们通过找到数据的不同侧面,按照这些侧面进行分别聚类,然后把各种聚类结果全部以一种简单的方式呈现给领域专家,由专家决定他认为最合适的聚类方法。这样的工作流程清晰定义数据科学家和领域专家的职能,通过两者的合作,提高数据的聚类结果,并且提升数据的可解释性。cda数据分析师官网

    转载于:https://www.cnblogs.com/amengduo/p/9587315.html

    展开全文
  • 由于数据量太大以及数据属性的多样性,导致经典的统计分析方法已经无法适用,必须采用以机器学习理论为基础的大数据分析方法。目前,大数据分析方法已经被广泛用于商业智能(BI)领域,并取得了令人非常满意的效果...
    1 概述
    


    随着人类社会信息化程度的不断深入,信息系统产生的数据也在呈几何级数增长。对这些数据的深入分析可以得到很多有价值的信息。由于数据量太大以及数据属性的多样性,导致经典的统计分析方法已经无法适用,必须采用以机器学习理论为基础的大数据分析方法。目前,大数据分析的方法已经被广泛用于商业智能(BI)领域,并取得了令人非常满意的效果。这种方法同样可以应用在信息安全领域,用于发现信息系统的异常情况(入侵和攻击、数据泄露等)。利用大数据分析的方法发现异常事件,需要满足几个条件:1)行为日志在内容必须足够详细,可以从日志内容上区分正常行为和异常行为。也就是假定异常行为无论在表面上看多么正常,总是在细节上与正常行为有差异。2)针对不同的分析目标,选用恰当的分析算法。3)对行为描述进行合理的建模。


    2 基于DNS日志分析的僵尸网络检测


    2.1 DNS解析请求日志的格式及说明

    不同的DNS系统及配置参数,生成DNS解析请求日志也不尽相同,这里仅用一种日志加以说明。

    Jul 22 10:59:59201307221059 GSLZ-PS-DNS-SV07-YanT '17 75 1374461999.999790 1307221059218.203.160.194 53 218.203.199.90 5826 dns 0,0,4692,0|4|5 1 www.baidu.com, 1,11 www.baidu.com,1,1,3,111.11.184.114',其中


    其中,标记位各种取值的含义如下:

    • QR是1个bit位:0代表查询报文,1代表相应报文

    • opcode是4个bit位字段:0代表标准查询,1代表反向查询,2代表服务器状态请求

    • AA是1个bit位,是Authoritative Answer的缩写,指明名字服务器是授权于该域的

    • TC是1个bit位,是Truncated的缩写,意为可截断的,指明在UDP中应答报文超过512字节时,只返回512字节

    • RD是1个bit位,是Recursion Desired的缩写,意为期望递归,期望名字服务器必须处理这个查询,而不是给出一个迭代查询服务器的列表

    • RA是1个bit位,是Recursion Available的缩写,意为可用递归,如果名字服务器支持递归查询,这会将此位设置为1

    • zero是3个bit位,设置为0

    • rcode是4个bit位,表示名字差错,0为无差错,3为有差错。当查询中指定的域不存在的时候,就返回3

    • 响应状态

    • 'NOERROR' => 0, 无错误条件.

    • 'FORMERR' => 1, 因为一个格式错误,域名服务器无法解释这个请求

    • 'SERVFAIL' => 2, 在处理这个请求时域名服务器遇到一个内部错误。例如操作系统错或转发超时。

    • 'NXDOMAIN' => 3, 某些域名应该存在而没有存在。

    • 'NOTIMPL' => 4, 域名服务器不支持这种指定的 Opcode.

    • 'REFUSED' => 5, 出于策略和安全原因域名服务器拒绝执行特定的操作。

    • 'YXDOMAIN' => 6, 某些域名不应该存在但是存在。

    • 'YXRRSET' => 7, 某些RRset不应该存在但是存在。

    • 'NXRRSET' => 8, 某些RRset应该存在但是不存在。

    • 'NOTAUTH' => 9, 域名服务器对区域名没有被授权

    • 'NOTZONE' => 10, 在预查询或更新段中一个域名没有在区域段中记录。

    2.2正常与异常DNS解析请求的对比分析

    大多数僵尸主机在最初感染的恶意程序,只是一个下载器程序,真正能完成有害操作的恶意程序要从恶意程序分发服务器上下载。因此僵尸主机安装下载器之后,首要的工作就是发起一系列域名解析请求,用来获知恶意程序分发主机的IP地址以便完成恶意程序实体的下载。在完成实体恶意程序之后,僵尸主机还会发送域名查询请求,以便获知控制服务器的IP地址并与之建立联系,等待控制服务器发送指令。为了避免分发服务器和控制服务器被网络监管人员发现并摧毁,僵尸网络的控制者采用了很多技术手段对这两类关键服务器进行保护,诸如动态域名、Fast Flux技术等。还有一类DNS查询请求本身就是僵尸主机发起的攻击,其特征也与正常的查询请求有很大区别。总之,僵尸主机会发送大量的域名查询请求,而且这些请求与正常的域名请求在诸多属性有明显的差异。


    表2-1异常查询请求与正常查询请求的差异对比

    2.3 相似性分析的一般过程

    由于正常的域名查询请求占绝大部分,且彼此之间具有明显的相似性,而僵尸主机的域名查询请求日志则有明显的差异,因此非常适合采用相似性分析的方法进行区分。相似性分析的一般步骤是:1)确定被分析对象(源IP地址或域名)。2)确定分析的属性。3)将属性量化成可分析的数值。4)将数据写入描述性矩阵。5)以描述性矩阵为输入数据,代入相似性计算公式,计算被分析对象的相似关系。

    相似性分析通常把每个数据对象看作多维空间中的一个点,对象之间的相似性可以用相似性系数或某种距离来表示。相似系数接近1或距离较近的对象性质较相似,相似系数接近0或距离较远的对象则差异较大。不同的数据类型,适用不同的相似系数计算公式。常用的相似系数或距离计算公式有:


    2-1


    2-2


    2-3

    公式(2-1)是变量Xi和Xj 的空间距离计算公式。

    公式(2-2)是相似系数计算公式。

    公式(2-3)是Jaccard相似系数计算公式。通常杰卡德相似系数处理的都是非对称二元变量。即假设A和B是两个n 维向量,而且所有维度的取值都是0或1。非对称的意思是指状态的两个输出不是同等重要的,例如,疾病检查的阳性和阴性结果。其中:

    M11 表示A 与B 的对应维度都是1 的维度的个数,

    M10 表示A与B的对应维度分别是1和0 的维度的个数

    M01表示对应维度分别是0和1 的维度的个数。

    M00表示A与B的对应维度都是0 的维度的个数。

    习惯上将较重要的输出结果也通常是出现几率较小的结果编码为1(例如HIV阳性),而将另一种结果编码为0。在某些领域,认为正匹配(M11)比负匹配(M00)更有意义。负匹配的数量M00 认为是不重要的,可以在计算时忽略。

    在分析域名查询日志时,可以把发送查询请求的主机IP地址作为对象,也可以把被查询的域名作为对象。可以针对某个属性进行分析,也可以针对一组属性进行分析。因此不同的对象和属性组合在一起可以得到很多种描述性矩阵。下面以一个具体实例来说明相似性分析的过程。在这个实例中,以域名为对象,以域名被各IP地址查询的次数作为属性,可以得到一个描述性矩阵(如表2-2)。

    表2-2域名请求行为描述矩阵

    为简单起见,将描述矩阵的数值代入公式(2-2),可以计算出各个域名之间的“距离”,从而得到相似性矩阵(如表2-3)。观察发现,域名n与其它域名的相似度最低。基本可以判定查询域名n的主机为僵尸主机。


    表2-3域名请求行为的相似性分析结果


    相似度分析的数据是一种对象-对象结构的矩阵,既可以单纯使用域名或IP地址作为对象,也可以同时使用IP地址和域名来构建矩阵。


    2.4聚类分析的一般过程

    把每个域名解析请求的属性作为一个变量,则这些属性构成一个多维向量,如表2-4,每一行是一个多维向量。对这些多维向量进行聚类分析,可以发现那些游离于聚合之外的那些向量所对应的域名,就是异常域名。这些域名解析请求很可能就是僵尸程序或WebShell发出的。可以考虑采用的属性包括:域名长度、域名相似性、TTL、域名层级数、请求发送时间间隔、请求源IP地址数、响应状态、域名对应的IP地址数量、域名查询类型。


    表2-4域名属性多维向量


    可以考虑采用分区法或K-均值算法对域名属性多维向量进行聚类分析。由于异常域名的属性值通常都与正常域名的属性有明显的差异,因此采用聚类方法通常可以获得较高的聚类质量,将异常域名从正常域名的聚类中分离开来。

    聚类分析的数据是一组对象-属性结构的多维向量,以域名为对象,以其查询请求的属性为属性。


    3 基于大数据分析的内部异常行为检测


    3.1 内部信息系统行为概述

    业内将内部信息系统的行为(以下简称内部行为)分为主机(包括服务器和终端)行为和网络行为两大类:一是主机行为,即主机本地的行为,例如创建帐号、创建文件、修改注册表、内存属性(读写、执行)变化、进程变化(启动、停止)等等。如果物理主机上运行着多个虚拟主机,主机行为还应包括一些虚拟化系统的行为。二是网络行为,即与网络访问相关的行为,例如域名解析请求、HTTP访问请求、ARP广播、收发邮件、即时消息、文件上传和下载、数据库访问等等。

    3.2 对内部行为进行大数据分析的原理基础

    早期的信息安全措施侧重对外部攻击的防护,而对内部的异常行为往往不够重视也缺少检测手段。大量信息安全实践使得内部异常行为检测的重要性在业内达成了共识。尤其是近年被披露的众多APT攻击事件,主要的攻击过程是发生在内部网络和信息系统上。通常内部异常行为都是非常隐蔽的,攻击者会可以隐藏自己的攻击行为,通常单个行为看上去都是正常的,但是一些行为关联在一起以后,这种关联的组合非常少,且行为主体不具有别的特殊性,则这种行为很可能是异常。或者某些内部行为已经被判定为异常,那么与之关联的行为也是异常的概率就会大大增加。

    3.3 关联分析的一般过程

    对内部行为的分析也适用相似性分析,但为了避免重复,这里采用关联分析算法对内部行为进行分析,来举例说明该方法的实际运用。关联分析的一般步骤是:1)以行为主体作为被分析对象(通常为IP地址或身份标识)对内部行为日志进行解析,将描述各种行为的异构日志转换成适合分析比较的行为链(如图2-4所示)。2)将行为链数据代入关联分析算法,计算出各种可能的关联关系。3)根据一定的判断规则,从计算出的多个关联关系中找出异常行为的组合。

    图3-1 行为链的构建

    关联分析的目标是从数据中找到关联规则。所谓关联规则是形如 X → Y 的蕴涵式,表示通过 X 可以推导“得到”Y,其中 X 和 Y 分别称为关联规则的前提和结果。在满足最小支持度和最小置信度的条件下才能认为“通过 X 可以推导‘得到’Y”成立。在理解算法之前,首先需要了解几个基本概念:


    • 支持度: 指的是事件X和事件Y同时发生的概率,即支持度=P(XY)

    • 置信度: 指的是发生事件X的基础上发生事件Y的概率,置信度= P(Y|X) = P(XY)/P(X)

    • 项集: B={B1, B2,……, Bm}是项的集合。

    • 行为链记录库: D={t1, t2,……, tn}

    • 行为链: 行为链t由多个项组成,t是B的非空子集

    • TID: 每一个行为链都与一个唯一的标识符对应。

    • 频繁项集:满足最小支持度阈值的项集

    为了更好的理解上面的概念,图1-1给出了更形象的描述。圆角矩形表示全部项的集合I,椭圆中蓝圆点表示X事件,菱形中绿三角表示Y事件。



    图3-2 关联分析的几个基本概念


    3-1内部行为记录库


    为叙述简单但又不失一般性,这里用9个行为主体和5种行为(记作B1~B5)组成的项集作为实例来说明关联分析算法的原理。如表3-1,行为记录库中有9条行为链记录,涉及了B1~B5等5种行为。有过某种行为,记作1,没有记作0。首先扫描记录库,得当频繁项集C1(表3-2)


    表3-2频繁项集C1

    假设最小支持度要求为2,则所有频繁项集都入选成为一阶最大项集。以B1~B5的排列组合作为二阶频繁项,扫描记录库,得到二阶频繁项集C2(表3-3)


    表3-3 二阶频繁项集C2


    去掉支持度小于2的项集,得到二阶最大项集L2(表3-4)


    表3-4 二阶最大项集L2


    对L2的项集元素排列组合来生成三阶的频繁项集合,由于频繁项集的子集也必须是频繁的,所以要从划去那些子集不频繁的组合,最后只剩下两个支持度大于2的最大频繁项集{B1,B2,B3}和{B1,B2,B5}(表3-5)。


    3-5 满足最小支持度的最大频繁项集


    对每个频繁项集B生成其所有的非空真子集S(见表3-5),然后对每个非空真子集组合的关联规则计算置信度,即支持度(B)/支持度(S),若比值大于假设的最小置信度值,则输出S(B-S),即认为S 与(B-S)关联。


    表3-5 频繁项集的非空子集



    表3-6关联规则


    至此我们得到了三个关联规则,即{B1,B5}à{B2}、{B2,B5}à{B1}和{B1}à{B2,B5}。同样对最大频繁项集{B1,B2,B5}也进行类似的计算,还可以得到相应的一组关联规则。

    3.4关联分析方法应用举例

    一个信息系统中,正常访问行为应该是绝大多数,因此异常行为的占比非常低,所以在关联分析的算法中,我们对支持度的要求不是大于某个数值,而是大于0且小于某个数值。

    例如,一个普通的客户端主机对其它IP地址的扫描显然是一种异常行为,如果利用关联分析的方法,发现这些有扫描行为的主机都查询过相同或高度相似的域名,那么这个域名查询请求也是一种异常行为,很可能是终端主机感染木马程序后的回联行为。

    再例如,一个普通的客户端主机存在高频并发域名查询的行为,如果利用关联分析的方法,发现这些终端的主机的系统函数调用行为特征非常接近,或者这些终端主机都有访问本地敏感文件(密码文件、配置文件等)的行为。则这些系统函数调用或本地敏感文件访问也是异常行为。


    4 结束语


    基于互联网的B/S架构的信息系统在运行过程中会产生大量各种类型的日志,如安全设备告警、操作系统日志、数据库日志、终端行为日志、网络流量日志、Web访问日志、DNS请求日志、外网访问日志等等。这些日志具有丰富的信息,只要采用恰当的分析算法,一定可以获得很有价值的分析结果。除了本文描述的两个应用场景以外,大数据分析还可以用于拒绝服务攻击检测、安全情报分析、态势感知、网页篡改发现、应用层攻击检测、恶意文件检测等安全分析的场景。

    成功的大数据分析依赖于三个主要因素:数据、思路和算法。面向安全的大数据分析所使用的数据主要是各种系统日志和行为。本文试图用比较接近实际的案例来介绍面向安全的大数据分析思路。可供大数据分析使用的算法有很多,但不是都适用于面向安全的应用场景。原因是系统日志和行为日志都属于低维度数据,面向高维度数据的算法基本不适用。因此只有相似性分析、关联分析、聚类等。分类算法在有足够训练数据的情况下也可以使用,但通常训练数据比较难获得,所以使用分类算法可能会受一定限制。

    除了分析算法以外,可视化也是一种非常重要且有效的分析手段。可视化既可以作为分析工具,直接以图形方式呈现数据之间的关系,提高数据可读性,又可以作为分析结果的呈现工具,使分析结果更加直观。受篇幅的限制,本文没有对可视化呈现给出描述,希望后续有机会做出补充。


    本文作者为安恒信息技术专家

    转自:http://www.360doc.com/content/16/0106/20/26186435_525993323.shtml

    展开全文
  • 数据清洗实例分析

    万次阅读 2017-02-05 10:54:18
    主要是通过分析“脏数据”的产生原因和存在形式,利用现有的数据挖掘手段和方法去清洗“脏数据”,将“脏数据”转化为满足数据质量要求或应用要求的数据,从而提高数据集的质量,满足现阶段数据分析的需求。...

    一.数据清洗工作

    数据清洗:如填充缺失数据、消除噪声数据等,主要是通过分析“脏数据”的产生原因和存在形式,利用现有的数据挖掘手段和方法去清洗“脏数据”,将“脏数据”转化为满足数据质量要求或应用要求的数据,从而提高数据集的质量,满足现阶段数据分析的需求。

    DataEye数据清洗流程如下图:
    这里写图片描述

    DataEye数据清洗方案及实践案例

    这里写图片描述

    (一)噪声数据(异常值)清洗

    1.利用数据分布特征及箱型图方法来识别单维数据集中噪声数据(异常值)

    假设一组数据如下:

    序号 1 2 3 4 … n

    数据 E1E2E3E4En

    一般情况下,对于离散程度并非非常大的数据源来说,数据自身分布将会集中在某一区域之内,所以利用数据自身分布特征来识别噪声数据,再根据箱型图的方法在数据集中域中识别离群值及异常值。

    首先,将数据集切等分成αn个区间(α可取1,10,100,1000),区间大小为

    θ=(Max{E1,E2,,En}Min{E1,E2,,En})/αn 

    截取数据分布集中的区间作为数据集中域,找到数据集中域形成新数据组E ̅。
    这里写图片描述

    [Q13IQR,Q3+3IQR][Q11.5IQR,Q3+1.5IQR]Q1Q3IQRIQR=Q3Q1

    这里写图片描述

    案例一:DataEye平均下载时长计算

    在实际情况下,现有的数据平台系统会遇到各种各样的关于指标均值计算的问题,遵循数理统计的规律,此时极大噪声数据对均值计算的负面影响是显著的。DataEye原始数据源存在一组游戏下载时长数据集如下图:

    这里写图片描述

    如果直接计算其游戏平均下载时长,得到的结果为23062.57秒,约6.4小时,与实际情况严重不符,说明这一数据集受到显著的噪声数据的影响。

    对数据集做异常值识别及剔除,将数据集等分为240300个区间,找到数据集中域[0,3266.376]

    这里写图片描述

    对取值在[0,3266.376]之间的数据做箱型图分析,对新数据组剔除离群值,得到非离群数据组[ Q_1-3IQR, Q_3+3IQR],再取非异常数据组[Q_1-1.5IQR, Q_3+1.5IQR]。
    这里写图片描述

    最后计算目标数据源的平均下载时长为192.93秒,约3.22分,符合游戏运营实际情况。通过数据分布特征及箱型图的方法来识别剔除噪声数据的方式较为快捷且效果显著,可以作为数据清洗的预清洗步骤。

    2.利用基于欧几里德距离的聚类方法来识别多维数据集中噪声数据(异常值)

    一般情况下,利用数据分布特征或业务理解来识别单维数据集中噪声数据是快捷有效,但对于聚合程度高,彼此相关的多维数据而言,通过数据分布特征或业务理解来识别异常的方法便显得无能为力。面对这种窘迫的情况,聚类方法提供了识别多维数据集中噪声数据的方法。

    在很多情况下,把整个记录空间聚类,能发现在字段级检查未被发现的孤立点。聚类就是将数据集分组为多个类或簇,在同一个簇中的数据对象(记录)之间具有较高的相似度,而不同簇中的对象的差别就比较大。散落在外,不能归并到任何一类中的数据称为“孤立点”或“奇异点”。对于孤立或是奇异的噪声数据(异常值)进行剔除处理。如下图:

    这里写图片描述

    (二)缺失值清洗

    理想情况下,数据集中的每条记录都应该是完整的。然而,存在不完整的、含噪声的数据是现有数据集的共同特点。缺失数据的出现可能有多种原因,人工输入时认为不重要而漏掉,或者被调查人不愿公布等。在数据集中,若某记录的属性值被标记为空白或“-”等,则认为该记录存在缺失值,是不完整的数据。DataEye主要使用基于k-NN近邻填充技术的算法来处理缺失数据。

    k-NN分类,训练样本用n维数值属性描述,每个样本代表n维空间的一个点,这样,所有的训练样本都存放在n维模式空间中。给定一个未知样本,k-NN分类法搜索模式空间,找出最接近未知样本的k个训练样本。这k个训练样本是未知样本的k个“近邻”。“临近性”用欧几里德距离定义,其中两个点X=(x_1,x_2,…,x_n)和Y=(y_1,y_2,…,y_n)的欧几里得距离是

    d(X,Y)=(XY)2

    设z是需要测试的未知样本,z=(x^’,y^’),所有的训练样本(x,y)∈D,未知样本的最临近样本集设为D_z,K-NN分类算法的描述如下:

    k是最临近样本的个数,D是训练样本集。对数据做无量纲处理(标准化处理),消除单位对缺失值清洗的影响。

    f(x^' )=(x^'-min⁡(x_1 x_2,x_3,…x_n)) / (max⁡(x_1 x_2,x_3,…x_n)-min⁡(x_1 x_2,x_3,…x_n))

    计算未知样本与每个训练样本(x,y)之间的距离d,得到离样本z最临近的k个训练样本集DZ 

    当确定了测试样本的k个“近邻”后,就根据这k个近邻相应的字段值的均值来替换该测试样本的缺失值。

    案例二:DataEye上报数据缺失值处理

    在DataEye实际工作中,在数据采集上,主要采用SDK接入游戏,通过SDK上报数据的方式,在复杂的数据生产环境中,由于SDK接入或数据上报接口调用等原因,缺失值往往是存在的。

    下面是一组DataEye接入游戏SDK上报的数据,很明显的可以发现,序号2及序号4在字段1上存在缺失值“-”,在数据集大的情况下,往往我们会对含缺失值的数据记录做丢弃处理,DataEye主要使用k-NN近邻算法来填充这一缺失值。

    这里写图片描述

    首先对这个数据集各个字段值做非量纲化,消除字段间单位不统一不一致的影响,得到标准化的数据矩阵。

    这里写图片描述

    对含缺失值“-”的序号2数据点做K近邻填充,取K值为5,计算序号2与其他不包含缺失值的数据点的距离矩阵,选出欧氏距离最近的5个数据点。

    这里写图片描述

    用这5个近邻的数据点对应的字段均值来填充序号2中的“-”值。得到完整序号2数据:

    这里写图片描述

    (三)重复值清洗

    字段相似度定义:根据两个字段内容计算出的表示两者相似度的度量。范围在0-1,越靠近1,相似度越大。

    布尔型字段相似度计算方法:对于布尔型字段,如果两字段相等,则相似度取0,如果不同,则相似度取1。

    数值型字段相似度计算方法:对于数值型字段,可采用计算数字的相对差异。利用公式:
    S(s_1,s_2 )=|s_1-s_2 |/(max⁡(s_1,s_2))

    字符型字段相似度计算方法:对于字符型字段,比较简单一种方法是,将进行匹配的两个字符串中可以互相匹配的字符个数除以两个字符串平均字符数。利用公式:

    S(s_1,s_2 )=|k|/((|s_1 |+|s_2 |)/2)

    其中k是匹配的字符数。例如字符串s1=“dataeye”,字符串s2=“dataeyegrg”利用字符型字段相似度计算公式得到其相似度

    S(s_1,s_2 )=7/((|7|+|10|)/2)

    设定阈值,当字段相似度大于阈值时,识别其为重复字段,并发出提醒,再根据实际业务理解,对重复数据做剔除或其他数据清洗操作。

    案例三:DataEye游戏收入破解识别(重复值识别)

    几乎所有单机游戏都面临着被破解的隐患,对于游戏厂商而言,对单机游戏是否被破解的监测能力是十分薄弱的,DataEye主要通过计算数据记录间的字段相似度,来识别重复值上报,进而根据业务理解判断单机游戏是否被破解,并进一步对重复值做清洗。
    

    下面是一组DataEye接入游戏SDK上报的数据,仔细观察会发现,在2014/9/1 0:16:40至2014/9/1 0:16:42这段时间内发生了7笔100000付费金额。

    这里写图片描述

    计算这7条数据记录的彼此的相似度:

    S(s_1,s_2 )=370/((|370|+|370|)/2)=1

    S(s_1,s_3 )=369/((|370|+|370|)/2)=0.9973

    S(s_1,s_4 )=369/((|370|+|370|)/2) 0.9973

    S(s_1,s_5 )=369/((|370|+|370|)/2) 0.9973

    S(s_1,s_6 )=369/((|370|+|370|)/2) 0.9973

    S(s_6,s_7 )=370/((|370|+|370|)/2)=1

    S(si,sj)17

    展开全文
  • 多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing)。 当然,通过多维数据模型的数据展示、...

    多维数据模型的定义和作用
    多维数据模型是为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型,其基本的应用是为了实现OLAP(Online Analytical Processing)。
    当然,通过多维数据模型的数据展示、查询和获取就是其作用的展现,但其真的作用的实现在于,通过数据仓库可以根据不同的数据需求建立起各类多维模型,并组成数据集市开放给不同的用户群体使用,也就是根据需求定制的各类数据商品摆放在数据集市中供不同的数据消费者进行采购。
    多维数据模型实例
      在看实例前,这里需要先了解两个概念:事实表和维表。事实表是用来记录具体事件的,包含了每个事件的具体要素,以及具体发生的事情;维表则是对事实表中事件的要素的描述信息。比如一个事件会包含时间、地点、人物、事件,事实表记录了整个事件的信息,但对时间、地点和人物等要素只记录了一些关键标记,比如事件的主角叫“Michael”,那么Michael到底“长什么样”,就需要到相应的维表里面去查询“Michael”的具体描述信息了。基于事实表和维表就可以构建出多种多维模型,包括星形模型、雪花模型和星座模型。
    实例:
    在这里插入图片描述
    这是一个最简单的星形模型的实例。事实表里面主要包含两方面的信息:维和度量,维的具体描述信息记录在维表,事实表中的维属性只是一个关联到维表的键,并不记录具体信息;度量一般都会记录事件的相应数值,比如这里的产品的销售数量、销售额等。维表中的信息一般是可以分层的,比如时间维的年月日、地域维的省市县等,这类分层的信息就是为了满足事实表中的度量可以在不同的粒度上完成聚合,比如2010年商品的销售额,来自上海市的销售额等。
      还有一点需要注意的是,维表的信息更新频率不高或者保持相对的稳定,例如一个已经建立的十年的时间维在短期是不需要更新的,地域维也是;但是事实表中的数据会不断地更新或增加,因为事件一直在不断地发生,用户在不断地购买商品、接受服务。
    多维数据模型的优缺点
      这里所说的多维模型是指基于关系数据库的多维数据模型,其与传统的关系模型相比有着自身的优缺点。
    优点:
      多维数据模型最大的优点就是其基于分析优化的数据组织和存储模式。举个简单的例子,电子商务网站的操作数据库中记录的可能是某个时间点,某个用户购买了某个商品,并寄送到某个具体的地址的这种记录的集合,于是我们无法马上获取2010年的7月份到底有多少用户购买了商品,或者2010年的7月份有多少的浙江省用户购买了商品?但是在基于多维模型的基础上,此类查询就变得简单了,只要在时间维上将数据聚合到2010年的7月份,同时在地域维上将数据聚合到浙江省的粒度就可以实现,这个就是OLAP的概念,之后会有相关的文章进行介绍。
    缺点:
      多维模型的缺点就是与关系模型相比其灵活性不够,一旦模型构建就很难进行更改。比如一个订单的事实,其中用户可能购买了多种商品,包括了时间、用户维和商品数量、总价等度量,对于关系模型而言如果我们进而需要区分订单中包含了哪些商品,我们只需要另外再建一张表记录订单号和商品的对应关系即可,但在多维模型里面一旦事实表构建起来后,我们无法将事实表中的一条订单记录再进行拆分,于是无法建立以一个新的维度——产品维,只能另外再建个以产品为主题的事实表。
      所以,在建立多维模型之前,我们一般会根据需求首先详细的设计模型,应该包含哪些维和度量,应该让数据保持在哪个粒度上才能满足用户的分析需求。
      这里对数据仓库的多维模型进行了简单的介绍,你是不是想到了其实你在分析数据的时候很多的数据就是复合多维模型的结构的,或者你已经用自己的方法构建出了多维模型或者实现的数据的多维化展示。

    展开全文
  • 主成分分析:步骤、应用及代码实现。 主成分分析(Principal Component Analysis)算法步骤: 设有 m 条 n 维数据: 将原始数据按列组成 n 行 m 列矩阵 X 将 X 的每一行(代表一个属性字段)进行零均值化,即减去这一...
  • 今天来讲讲数据仓库中多维数据集的构建方法,其他数据仓库系列文章请点击这里查看,这里就不多说了。多维数据集向导可以帮助我们为多维数据集定义度量值组和维度。在下面的任务中,将使用多维数据集向导来构建多维...
  • EMC中国研究院大数据实验室senior research scientist 陈弢  (一)引言 随着现实和虚拟世界的数据产生速度越来越迅猛,人们开始关注如何从这些数据中获取信息,知识...大数据分析的难点很多,比如,由于海量数...
  • 多维数据模型

    2018-12-26 13:42:16
    多维数据模型是数据仓库的一大特点,也是数据仓库应用和实现的一个重要的方面,通过在数据的组织和存储上的优化,使其更适用于分析型的数据查询和获取。 多维数据模型的定义和作用 多维数据模型是为了满足用户从多...
  • 数据仓库多维数据模型设计

    万次阅读 2017-11-09 18:14:59
    建设数据模型既然是整个数据仓库建设中一个非常重要的关键部分,...数据仓库的建模方法同样也有很多种,每一种建模方法其实代表了哲学上的一个观点,代表了一种归纳,概括世界的一种方法。 目前业界较为流行的数据...
  • 架构大数据分析应用

    万次阅读 2016-05-18 21:19:50
    这些考虑一般都是基于分析应用的日志,例如web访问日志,应用服务器日志,和数据库日志,但是也可以基于各种其他的数据源例如社交网络数据。当面对这些使用场景的时候,如果希望随着商务的增长而弹性扩展,就需要考虑...
  • R语言数据分析、展现与实例(02)

    千次阅读 2017-02-24 10:28:32
    R语言数据分析、展现与实例(02)数据输入> mydata (age=numeric(0),gender=character(0),weight=numeric(0)) #创建空数据框 > mydata (mydata) #打开编辑框进行编辑,并将结果赋值给原数据框  输入数据,直接退出...
  • 多维数据模型的定义和作用:为了满足用户从多角度多层次进行数据查询和分析的需要而建立起来的基于事实和维的数据库模型。其基本的应用是为了实现OLAP(Online Analytical Processing)。通过多维数据模型的数据展示...
  • Python数据分析之numpy的应用

    千次阅读 2020-03-05 22:15:53
    1.数组属性:ndarray(数组)是存储单一数据类型的多维数组。使用array函数创建数组时,数组的数据类型默认是浮点型。自定义数组数据,则需预先指定数据类型。 2.创建数组:numpy.array(object, dtype=None, copy=...
  • 本门课程作为电商数据分析师的开篇导论,将从数据分析师的岗位及透过岗位理解业务为切入点,讲解数据分析师的职业诉求,发展路径,及数据分析在业务中的存在价值,如何通过数据分析理解业务的价值和发现机会点。...
  • 摘要 关于如何展现多维数据集是很多从事BI项目的朋友都很关注的问题,在此笔者推荐使用Dundas公司下的OLAP组件。本文主要描述关于Dundas OLAP控件的使用,以及开发的时候需要注意的问题,还有笔者在开发...
  • 数据分析-PART0--数据分析综合

    千次阅读 多人点赞 2018-08-03 16:12:49
    ​​​​​ ... 数据分析-PART4--数据分析方法 数据分析-PART5--数据分析可视化 数据分析-PART6--数据分析能力培养 数据分析-PART 7--数据分析工具网站书籍 1、为什么要做数据的分析? ...
  • 但不得不承认多维数据模型是数据仓库的一大特点,也是数据仓库应用和实现的一个重要的方面,通过在数据的组织和存储上的优化,使其更适用于分析型的数据查询和获取。 多维数据模型的定义和作用  
  • Kylin 之对大数据量的多维分析

    千次阅读 2017-10-12 13:46:07
    Apache Kylin(http://kylin.apache.org/cn/)是一个开源的分布式分析引擎,提供Hadoop之上的SQL查询接口及多维分析(OLAP)能力以支持超大规模数据,最初由eBay 开发并贡献至开源社区。它能在亚秒内查询巨大的Hive...
  • 系列一:《python数据分析基础与实践》 章节1Python概况 课时2Python简介 章节2Python安装 课时3安装Anaconda 课时4使用Anaconda 章节3数据准备 课时5数据类型 – 布尔型 课时6数据类型 – 数值型 课时7数据类型 – ...
  • 数据分析实战

    千次阅读 2021-03-23 15:14:35
    数据分析实战数据分析基础数据分析全景图及修炼指南学习数据挖掘的最佳路径学数据分析要掌握哪些基本概念用户画像:标签化就是数据的抽象能力数据采集:如何自动化采集数据数据采集:如何用八爪鱼采集微博上的“D&...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 15,327
精华内容 6,130
关键字:

多维数据分析方法应用实例