利用数据挖掘工具分析上网流量

时间:2022-10-29 05:49:36

利用数据挖掘工具分析上网流量

摘要:本论文利用SQL Server2005中的数据挖掘工具对某单位访问外网的流量及相关信息进行了分析。通过利用聚类、决策树、Naïve Bayes等模型得出了影响访问流量的几个关键属性。根据这次挖掘的结果,网管人员可在时间以及网段等方面对流量进行一定的调整,从而使网络资源得到最有效的利用。

关键词:数据挖掘;流量;SQL Server2005

中图分类号:TP311 文献标识码:A文章编号:1007-9599 (2011) 13-0000-02

Use Data Mining Tools to Analyze Internet Traffic

Zhang Jun

(Yangzhou Hongquan Hospital,Jiangdu225200,China)

Abstract:This paper use SQL Server2005 Data mining tools for a unit to access external network traffic and related information were analyzed.Through the use of clustering,decision trees,Naïve Bayes,etc.that affect the traffic model obtained several key attributes.According to the mining results,time and network administrators can segment in terms of traffic to certain adjustments,so that the network resources in the most efficient use.

Keywords:Data mining;Flow;SQL Server2005

一、主要技术和实现方法

(一)主要技术

1.数据挖掘

(1)数据挖掘的概念[1]。数据挖掘(Data Mining)从技术角度上讲就是从大量的、不完全的、有噪声的、模糊的、随机的实际应用数据中,提取隐含在其中的、人们事先不知道的、但又是潜在有用的信息和知识的过程。

(2)数据挖掘特点。数据挖掘技术具有以下特点:

处理的数据规模十分庞大,达到GB、TB数量级,甚至更大。

查询一般是决策制定者(用户)提出的即时随机查询,往往不能形成精确的查询要求,需要靠系统本身寻找其可能感兴趣的东西。

在一些应用(如商业投资等)中,由于数据变化迅速,因此要求数据挖掘能快速做出相应反应以随时提供决策支持。

数据挖掘中,规则的发现基于统计规律。因此,所发现的规则不必适用于所有数据,而是当达到某一临界值时,即认为有效。因此,利用数据挖掘技术可能会发现大量的规则。

数据挖掘所发现的规则是动态的,它只反映了当前状态的数据库具有的规则,随着不断地向数据库中加入新数据,需要随时对其进行更新。

(3)数据挖掘的主要算法。最初的数据挖掘分类应用大多都是在这些方法及基于内存基础上所构造的算法。目前数据挖掘方法都要求具有基于外存以处理大规模数据集合能力且具有可扩展能力。主要的算法有:

决策树

KNN法(K-Nearest Neighbor)

Bayes法

二、利用SQL Server2005进行数据挖掘

(一)SSAS简介

SSAS是Microsoft公司的产品。Microsoft SQL Server 2005 Analysis Services(SSAS)为商业智能应用程序提供联机分析处理(OLAP)和数据挖掘功能。Analysis Services允许用户设计、创建和管理包含从其他数据源(如关系数据库)聚合的数据的多维结构,以实现对OLAP的支持。而对于数据挖掘应用程序,Analysis Services允许用户设计、创建和可视化处理那些通过使用各种行业标准的数据挖掘算法和根据其他数据源构造出来的数据挖掘模型。SSAS是通过服务器和客户端技术的组合来提供OLAP和数据挖掘功能的[2]。

SSAS提供了用于数据挖掘的工具,用户可以借助这些工具识别出数据中的规则和模式,SSAS创建数据挖掘解决方案时,首先要创建描述业务问题的模型,然后通过生成数据的数学模型的算法运行数据,此过程称作“定型模型”。接着依据该算法直观地浏览挖掘模型或创建预测查询。Analysis Services可以使用来自关系数据库和OLAP数据库的数据集。

SSAS是基于SQL Server的一种数据挖掘工具。其实SQL Server2005已经为用户提供了从数据库、数据仓库、OLTP、OLAP、数据挖掘和商业智能等一整套的数据服务功能。

用SSAS进行数据挖掘的步骤

一个重要的概念就是生成挖掘模型是大型过程的一部分,此过程包括从定义模型要解决的基本问题到将模型部署到工作环境的所有事情。此过程可以使用下列六个基本步骤进行定义:

定义问题;准备数据;浏览数据;生成模型;浏览和验证模型;部署和更新模型

尽管过程是一个循环过程,但是每个步骤并不需要直接执行到下一个步骤。创建数据挖掘模型是一个动态、交互的过程。浏览完数据之后,您可能会发现数据不足,无法创建适当的挖掘模型,因此必须查找更多的数据。您可以生成数个模型,但可能会发现这些模型无法回答定义问题时所设定的问题,因此必须重新定义问题。您可能必须在部署模型之后对其进行更新,因为又出现了更多的可用数据。因此,了解创建数据挖掘模型是一个过程,并且为了创建一个完美的模型,此过程中的每个步骤可能需要重复多次是非常重要的。

SQL Server 2005提供用于创建和使用数据挖掘模型的集成环境,称为Business Intelligence Development Studio。该环境包括数据挖掘算法和工具,使用这些算法和工具更易于生成用于各种项目的综合解决方案。

(二)定义问题

数据挖掘过程的第一步就是明确定义业务问题。

该步骤包括分析业务需求,定义问题的范围,定义计算模型所使用的度量,以及定义数据挖掘项目的最终目标。

(三)准备数据

数据挖掘过程的第二步就是合并和清除定义问题步骤中标识的数据。

Microsoft SQL Server 2005 Integration Services(SSIS)包含完成该步骤所需的所有工具,步骤内容包括转换到自动执行数据清除和合并。

数据可以分散在公司的各个部门并以不同的格式存储,或者可能包含缺陷项或缺少项之类的不一致性。

(四)浏览数据

数据挖掘过程的第三步就是浏览已准备的数据。

您必须了解数据,以便在创建模型时做出正确的决策。浏览技术包括计算最大值和最小值,计算平均偏差和标准偏差,以及查看数据的分布。浏览完数据之后,便可确定数据集是否包含缺陷数据,然后制订纠正这些问题的策略。

BI Development Studio中的数据源视图设计器包含数种可用于浏览数据的工具。

(五)成模型

数据挖掘过程的第四步就是生成挖掘模型[3]。

在生成模型之前,必须随机将已准备的数据分离到单独的定型数据集和测试数据集。您使用定型数据集生成模型,并通过创建预测查询来使用测试数据集测试模型的准确性。您可以使用 Integration Services中的百分比抽样转换来拆分数据集。

您将使用从浏览数据步骤中获得的知识来帮助定义和创建挖掘模型。模型通常包含多个输入列、一个标识列以及一个可预测列。然后可使用数据挖掘扩展插件(DMX)语言,或BI Development Studio中的数据挖掘向导,在新的模型内定义这些列。有关如何使用DMX的详细信息,请参阅数据挖掘扩展插件(DMX)参考。有关如何使用数据挖掘向导的详细信息,请参阅数据挖掘向导。

定义完挖掘模型的结构之后,需要对其进行处理,使用说明模型的模式来填充空结构。这称为“定型”模型。模式通过利用数学算法计算原始数据而得。SQL Server 2005针对可生成的每种模型包含一种不同的算法。您可以使用参数调整每种算法。

挖掘模型由一个数据挖掘结构对象、一个数据挖掘模型对象以及一种数据挖掘算法定义。

Microsoft SQL Server 2005 Analysis Services(SSAS)包括以下算法:

Microsoft决策树算法

Microsoft聚类分析算法

Microsoft Naive Bayes算法

Microsoft关联算法

Microsoft顺序分析和聚类分析算法

Microsoft时序算法

Microsoft神经网络算法(SSAS)

Microsoft逻辑回归算法

Microsoft线性回归算法

(六)浏览和验证模型

数据挖掘过程的第五步就是浏览您已经生成的模型并测试其有效性。

您不希望在事先没有测试模型性能的情况下将模型部署到生产环境。同样,您也许已经创建了数个模型,并且必须确定性能最佳的模型。如果您在创建模型步骤中创建的所有模型都无法正常工作,则必须返回到此过程的上一个步骤,重新定义问题或重新调查原始数据集中的数据。

可以使用BI Development Studio中数据挖掘设计器内的查看器来浏览算法发现的趋势和模式。还可以使用该设计器中的工具(如,提升图和分类矩阵)来测试模型创建预测的性能。这些工具要求使用您在模型生成步骤中从原始数据集内分离的测试数据。

(七)部署和更新模型

数据挖掘过程的最后一步就是将性能最佳的模型部署到生产环境。

当生产环境中部署了挖掘模型之后,便可根据您的需求执行许多任务。下面是一些可以执行的任务:

使用模型创建预测,然后可以使用这些预测做出业务决策。SQL Server提供可用于创建预测查询的DMX语言,同时还提供有助于生成查询的预测查询生成器。

直接将数据挖掘功能嵌入到应用程序。您可以包括分析管理对象(AMO)或一个包含一组对象(应用程序可使用这组对象创建、更改、处理以及删除挖掘结构和挖掘模型)的程序集。另外,可以直接将XML for Analysis(XMLA)消息发送到Analysis Services实例。

更新模型是部署策略的一部分。随着单位传入的数据不断增多,必须重新处理模型,以便提高效用。

三、具体实现

(一)建立数据库

首先建立数据库,在数据库中建立了一个数据表,将初始数据导入数据库中。

(二)数据预处理

对登录记录清单表中的数据进行了预处理,主要包括:

1.为提高数据分析和挖掘的效率,将内容为零的属性进行了删除

由于需要分析的是流量与其他属性的关系,所以流量为零以及使用时长为零的记录没有分析价值,将这些记录进行了删除。

2.增加Log ID作为记录的唯一标识

由于使用时长对使用流量有很大的影响,为排除这一干扰因素,增加了平均流量这一属性,且属性值通过使用流量/使用时长获得。

添加了人员类别、网段、登录月、登录日等属性,对影响因素进行了分类。属性值分别由账号、IP地址、登录时间等相关属性值计算获得。

(三)利用聚类分析得出平均流量的分类

由于平均流量是一个连续值,所以要对它进行离散化。要进行离散化就要先进行分类,这里利用了SSAS中的聚类模型对平均流量进行分析(如图),得出了这样一个分类:

类别ID 平均流量值

0 0.0-1.9

1 1.9-4.9

2 4.9-15.2

3 >15.2

在登录记录清单表中增加一属性平均流量类别(Avg Flux Level),根据平均流量的值写入平均流量的类别值。这样平均流量就被转换成一个离散的值平均流量类别进行分析。

(四)利用决策树、Naïve Bayes模型得出影响流量的因素

再次导入更新后的数据源,并利用决策树和Naïve Bayes模型进行分析。这两个模型中,Log ID为Key,Avg Flux Level为预测量,Log Month、Net Segment等为输入量。

(五)得到的结果

(1)通过决策树模型的分析,我们可以得到上网时间、网段、人员类别等属性对流量的影响。

(2)通过Naïve Bayes模型,我们可以得到各个属性之间的相关性。通过将链接强弱的滑块向下移动,我们可以得知,对平均流量级别影响最大的因素是人员登录的月份。

四、讨论和评价

通过对上网记录数据的挖掘,我们得到了网段、登录时间、人员类别等主要因素对于流量的影响。通过这些结果,网络管理人员可对网络流量的设置进行一定的调整,使得网络资源的利用更加有效。

预想的获得流量与在线时间之间的关系还挖掘的不够。希望以后在增加相关数据的基础上,能对数据挖掘技术进行进一步的研究,能够等到更加实用的模型。

参考文献:

[1]Jiawei Han Micheline Kamber.数据挖掘概念与技术(第一版)[M].机械工业出版社,2001

[2]W.H.Inmon,王志海.数据仓库(第2版)[M].机械工业出版社,2000

[3]Olivia Parr Rud,朱扬勇,左子叶,张忠平.数据挖掘实践(第1版)[M].机械工业出版社,2003

[作者简介]张俊(1978.2-),男,本科,助理工程师,研究方向:医院信息化。

上一篇:汽车自燃的发生施救及预防 下一篇:蜂窝铝板新技术在双曲屋面工程中的应用