1 引言
随着数据分析、数据挖掘技术以及互联网的不断发展,人们逐渐发现了将两者结合的巨大价值。通过对Web的分析和挖掘,可以使互联网企业发现隐藏在互联网中有价值的信息,掌握海量数据中蕴藏的广阔商机,从而在竞争激烈的互联网业处于不败之地。
2 基本概念
2.1 商业智能
商业智能(Business Intelligence),又称商务智能,指通过使用数据仓库(Data Warehouse)、在线分析处理(OLAP)和数据挖掘(Data Mining)等技术,对数据进行分析,以实现商业价值。
2.2 数据仓库
数据仓库是一个面向主题的、集成的、稳定的、随时间不断变化、并且支持企业或组织的管理或决策过程的技术。“面向主题”是指一个数据仓库包含的内容通常是一个领域内的知识;“集成”是指数据仓库中的数据并不是按照原始的流水的方式存放的,而是经过分析、建模,经过抽取、转换、导入过程的结构化的数据;稳定是指数据被放入到数据仓库中后,很少会变动:随时间变化是指新的数据可以不断被入到数据仓库中;而支持决策是因为结构化的数据更有利于分析,从大量的数据中找出有价值的内容。
2.3 OLAP
OLAP (Online Analytical Processing,联机分析处理)系统是相对与OLTP(Online Transaction Processing,联机事务处理)系统而言的。
OLTP系统记录企业的日常数据,旨在处理同时输入的成百上千的事务。尽管OLTP系统擅长记录支持日常操作所需的数据,但是OLTP系统并不善于协助管理人员对数据进行汇总,以获取分析影响单位或小组的趋势所需的信息。
OLAP系统则旨在处理发现趋势和关键因素所需的查询。通常OLAP系统的查询需要更多的数据。能包括一到多个OLTP系统的数据。存在OLAP系统中的数据,不像OLTP系统中的数据那样频繁变更。OLAP数据被组织到多维数据集(cube)中,cube中的基本单元称为度量值(Measure),记录着经过处理、计算的OLTP系统中的数据。由于Measure中的数据是经过处理、计算的,并且cube可以有多个维度,因此非常便于查询、分析。
2.4 数据挖掘
数据挖掘也被成为数据库中的知识发现(Knowledge Discovery in Databases),是在OLAP或数据仓库或大型数据库的基础上,从大量的数据中分析、提取出有价值的信息,发掘数据中存在的不易被发现的模式,或依据发掘出的模式做出预测。数据挖掘中常见的算法包括关联、聚类、决策树、时间序列、序列聚类、nalve贝叶思等。
Web挖掘是数据挖掘在web领域中一个应用,主要分为三类:web内容挖掘、web结构挖掘、以及web日志挖掘。其中web日志挖掘是通过对用户浏览网站的记录进行分析与处理,得到互联网用户的偏好、习惯的使用模式等有价值的信息。这在互联网企业的业务分析、调整方面有非常重要的作用。
3 Web日志分析系统的实现
3.1 基本结构
图1 Web日志分析系统结构图
从系统的结构图中可以看出。Web日志分析系统是由4部分组成的:“数据处理”、“数据仓库”、“OLAP”和“数据挖掘”。整个流程使用Microsoft SQL Server数据转换服务(Data Transformation Services,DTS)作为流程驱动,不需要人为参与,可以按计划自动运行。
3.2 数据预处理与转换
在大型的互连网站的Web日志中,出现乱码、数据不合理等现象都是正常的,常见的原因主要有“并发访问量大,日志记录程序在并发压力较大的情况下记录出错”、“网站系统的Bug”、“新旧系统不一致”、“用户没有输入真实信息”等,同时日志中的数据格式并不一定符合分析系统的需要。所以必须先对日志进行预处理,才能导入到数据仓库系统中,也就是通常说的ETL(Extracting,Transforming,LOAding抽取、转换、加载)。
*去掉“噪声”数据
首先应当去掉日志中的乱码与明显不合理的数据,这可以通过对日志中的字符与值的范围做限定实现。其次,通过用户请求的文件的类型,可以排除掉一些对日志分析意义不大的记录。如在某些情况下,指向图片文件的点击并不代表有意义的操作。因此在这种情况下,应将这些记录清洗掉。除此之外,还会有更多的特殊情况需要清洗,有些情况是设计、开发人员预先想不到的,可以通过取出部分数据样例,经加载、处理到OLAP系统中,利用对cube中数据的查询发现特殊情况,再判断是否需要清洗掉。有一些日志分析的目的就是要找出特殊的记录,在这种情况下,清洗工作就需要谨慎的进行,以免将有意义的“噪声”清洗掉。
*IP地址反查
日志中通常会记载访问者的IP地址,这个信息可以用来得到匿名用户所属的地区。但IP地址对于业务分析人员并不直观,因此可以利用IP地址对照表,将IP对应到所属地区。通过IP地址的反查,也可部分弥补注册会员在注册时输入不真实信息的影响,为分析人员多提供一种参考。
*用户识别
登陆的会员可以用用户名来确认身份,但对于匿名访问的情况,则较难处理。由于动态IP的存在,也很难通过IP地址来判断操作是否属于同一个用户。目前比较通用的解决办法是使用SessionID。有些网站通过cookie等方式,可以确保一段时间内,同一台电脑对该网站的访问使用相同的SessionID。在用户没有禁用cookie的情况下。这种方法极大的方便了用户身份的确认。当然,也不能仅仅依靠SessionID做出判断,比如SessionID相同,但登陆的用户名不同,或操作系统版本不同的情况,就明显不是同一个访问者。
*访问路径识别
判断哪些操作是属于用户的同一次访问路径。以及这些操作的顺序,对于分析用户的浏览习惯是很重要的。通常的做法是设定一个时间阀值δ。当同一用户的两条记录之间的间隔超过δ,则可认为这两条记录属于不同的路径。同时也应该参考其它因素,例如虽然两条记录之间的时间间隔并没有超过δ,但已经使用不同的SessionID,则这两条记录应属于不同的访问路径。
用来进行日志分析的路径,应该是“最大前向路径”,例如实际的访问路径为ABCDABEAF,则应用来进行分析的“最大前向路径”有3条:ABCD、ABE和AF。
在识别访问路径过程中,可能会遇到“补全访问路径”的问题。例如,通过时间阀值、SessionID等条件判断出ABCD是用户的一个访问路径。但从页面C没有到页面D的直接链接,而页面B有,则很可能用户通过浏览器的“后退”按钮退回到B页面然后链接到D页面的,因此实际的访问路径为ABCBD。这种补全方法需要对网站的结构做出分析,才能够做出正确的补全。
目前有些网站出于安全性或其它考虑,不将链接的地址直接放在页面上,而是通过POST的方式,从服务器端进行跳转。如果这种网站能够将每一次点击的起点和目标均记录在日志中,则对路径识别有很大帮助。
鉴于本文项目的需求,经过预处理的数据被分成了三种文本文件。一种是维度文件。这种文件中记录着需求中要求的各种维度的信息,例如在记录屏幕分辨率维度信息的文件中,存储着“800×600”、“1024×768”等内容。如果最初给的样本数据有一定代表性。则维度文件将很少变动。第二类文件是事实数据文件,存储着将被更新到数据仓库的事实表中的数据。这类文件的内容将随着日志的更新而更新。第三类是辅助数据挖掘工作的文件,如访问路径文件等。这三类文件将被导入到数据仓库中。导入的过程以及前面的日志预处理过程,均可由DTS来驱动自动完成。
3.3 数据仓库
针对本文项目的需求与特点,数据仓库按照如下方式建立:
事实表有2个,分别是:
表1 事实表名称与含义
维度表共有18个,分别为:
表2 维度表名称与含义
除此之外还有一些表和视图,辅助后续的数据挖掘工作。
3.4 OLAP
根据数据仓库结构,在OLAP服务器上建立了17个共享维度,对应于数据仓库中除DimMember外的17个维度表。由于一般大型网站的会员数量庞大,如果将会员作为cube的一个维度,将会影响处理与查询的效率,而且针对每一个会员个体的查询意义并不是很大。在本文项目中虽然在数据仓库中建立会员的维度表,但是在OLAP中只将会员维度作为一个可选项。
本文项目中。为了查询方便,总共建立了5个cube,分别为“访客事实”、“会员事实”、“会员事实一独立用户”、“全部会员事实”、“全部事实”。其中“全部会员事实”与“全部事实”为虚拟cube。虚拟cube与其它3个cube的关系依图2所示。其中“访客事实”与“会员事实”中的度量值为Count人次数,而“会员事实_独立用户”中的度量值为依会员用户名的“独立计数”。通过一些客户端软件,我们可以查看OLAP中的信息。
图2 cube之间的关系
3.5 数据挖掘
3.5.1 栏目的用户重合度分析
栏目的用户重合度分析是要找出栏目之间的关联程度。通过应用“决策树(Decision Trees)”算法和“关联规则(Association Rules)”算法,可以实现这个目标。
在重合度分析中,使用SessionID列表和SessionID对各个栏目的访问次数列表作为案例和嵌套案例。在嵌套案例中去掉了访问次数很低的记录,既可以减少偶然性(例如点错了点到该栏目)的情况,又加快了处理的速度。决策树分析可以利用依赖网络视图展现数据挖掘结果,也可以用决策树视图展现,而关联规则分析只能用依赖网络视图展现,不过关联规则分析的速度比决策树分析要快。从依赖网络视图中可以看出各个栏目之间的依赖程度,通过改变查看器中的阀值,可以找出依赖关系最强的几个栏目,在决策树视图中,可以浏览某一个栏目是否被访问的影响因素。
图3 依赖网络视图
图4 决策树视图
3.5.2 浏览习惯聚类
浏览习惯的聚类是为了从大量的数据中找出普遍的模式,发现用户的浏览习惯,可以分为静态聚类与动态聚类。静态聚类挖掘的是用户的汇总信息,而动态聚类挖掘的是用户的浏览过程。也就是在数据预处理阶段准备的访问路径信息。
静态聚类采用“聚类(Clustering)”算法。以访问者的个人信息与访问各个栏目次数的列表为案例,进行挖掘,得到结果如图5所示。案例中的访问者被分为几类,每一类都有其特征。
图5 聚类算法的聚类外观视图
动态聚类采用“序列聚类(Sequence Clustering)”算法,以访问者列表为案例表,以访问者以及访问路径为嵌套案例表进行挖掘,得到结果如图6所示。从结果中可以看出,不同聚类的浏览习惯有着明显的不同。
图6 序列聚类算法的聚类外观视图
3.5.3 预测访客个人信息
预测的过程分为两步,首先通过“决策树算法”分析会员个人信息的相关因素,找出具备哪些因素的会员具有什么样的个人信息,再利用得到的决策树挖掘模型和访客日志中的相关因素,预测访客的个人信息。这种预测方式经某网站的实际数据验证,得到了较好的效果。
3.6 项目实现
本文项目选用.Net Framework,Microsoft 2000 DTS,Microsoft 2000 Analysis Service,Microsoft SQL Server 2005 BI Workbench实现,在实际检验中取得了很好的效果。在P4 3.0、1G内存、Windows 2000的环境下,对约1.2G大小的原始日志文件进行操作。从最初的预处理到将数据处理到cube中,只用了8分钟的时间,而且整个流程由DTS驱动,不需要人为参与。这样的处理能力对于一般大型网站每天的日志量和服务器的配置来说,是可以接受的。通过数据分析、数据挖掘得到的结果,对于互联网企业的业务分析与调整,是有很大帮助的。
4 思考
有数据表明,自20世纪90年代以来,人类积累的数据量以每月高于15%的速度增长。仅仅依靠人力。要理解这些数据,将其变为有用的“知识”,几乎是不可能的。商业智能(数据仓库、OLAP与数据挖掘),是能够将海量的数据变为“知识”的有效方法。数据仓库用于抽取、整合、分布、存储有用的信息;OLAP用于全方位分析现状,通过前端展现工具,将“知识”从多种角度以多种形式展现给管理人员。在此基础结构之上,数据挖掘通过“描述”与“预测”两种方式,更进一步的展现海量数据中存在的“知识”。
本文中,针对互联网日志分析业务提出的解决方案,也可以类似的用到其它业务领域。例如,在银行信贷领域,可以将用户的还款行为作为事实数据,将用户的个人信息,如年龄、职业、收入等作为维度数据建立数据仓库与多维数据集,在此基础上进行数据挖掘的“描述”与“预测”,从而对贷款者的还款能力做出分析。商业智能的技术在国防、军事领域也有着很大作用,例如在“反恐”中,可以通过对嫌疑人个人信息以及行为的分析。判断嫌疑人是恐怖分析的可能性以及其危险性。另一方面,在战场上,可以通过实时的数据挖掘对战场上发生的复杂情况做出分析,进而对敌军的行动做出预测,对战场形式做出正确判断。除了上面举的几个例子之外,商业智能技术在各种领域中,都可以发挥出巨大作用。
5 结束语
本文在综合利用商业智能技术,从网站的点击日志中分析、挖掘有价值信息的过程做了初步探索。本文项目仍然存在着很多值得改进的方面,例如,可以充分利用SQL Server 2005数据挖掘算法可扩充的特性,将一些更适合Web日志挖掘具体情况的算法应用到这个系统中。相信随着技术的日趋完善,商业智能将在互联网业中发挥更大的作用。
核心关注:拓步ERP系统平台是覆盖了众多的业务领域、行业应用,蕴涵了丰富的ERP管理思想,集成了ERP软件业务管理理念,功能涉及供应链、成本、制造、CRM、HR等众多业务领域的管理,全面涵盖了企业关注ERP管理系统的核心领域,是众多中小企业信息化建设首选的ERP管理软件信赖品牌。
转载请注明出处:拓步ERP资讯网http://www.toberp.com/
本文标题:商业智能在互联网业务分析中的研究与应用