1 引言
隨著數(shù)據(jù)分析、數(shù)據(jù)挖掘技術(shù)以及互聯(lián)網(wǎng)的不斷發(fā)展,人們逐漸發(fā)現(xiàn)了將兩者結(jié)合的巨大價(jià)值。通過(guò)對(duì)Web的分析和挖掘,可以使互聯(lián)網(wǎng)企業(yè)發(fā)現(xiàn)隱藏在互聯(lián)網(wǎng)中有價(jià)值的信息,掌握海量數(shù)據(jù)中蘊(yùn)藏的廣闊商機(jī),從而在競(jìng)爭(zhēng)激烈的互聯(lián)網(wǎng)業(yè)處于不敗之地。
2 基本概念
2.1 商業(yè)智能
商業(yè)智能(Business Intelligence),又稱商務(wù)智能,指通過(guò)使用數(shù)據(jù)倉(cāng)庫(kù)(Data Warehouse)、在線分析處理(OLAP)和數(shù)據(jù)挖掘(Data Mining)等技術(shù),對(duì)數(shù)據(jù)進(jìn)行分析,以實(shí)現(xiàn)商業(yè)價(jià)值。
2.2 數(shù)據(jù)倉(cāng)庫(kù)
數(shù)據(jù)倉(cāng)庫(kù)是一個(gè)面向主題的、集成的、穩(wěn)定的、隨時(shí)間不斷變化、并且支持企業(yè)或組織的管理或決策過(guò)程的技術(shù)!懊嫦蛑黝}”是指一個(gè)數(shù)據(jù)倉(cāng)庫(kù)包含的內(nèi)容通常是一個(gè)領(lǐng)域內(nèi)的知識(shí);“集成”是指數(shù)據(jù)倉(cāng)庫(kù)中的數(shù)據(jù)并不是按照原始的流水的方式存放的,而是經(jīng)過(guò)分析、建模,經(jīng)過(guò)抽取、轉(zhuǎn)換、導(dǎo)入過(guò)程的結(jié)構(gòu)化的數(shù)據(jù);穩(wěn)定是指數(shù)據(jù)被放入到數(shù)據(jù)倉(cāng)庫(kù)中后,很少會(huì)變動(dòng):隨時(shí)間變化是指新的數(shù)據(jù)可以不斷被入到數(shù)據(jù)倉(cāng)庫(kù)中;而支持決策是因?yàn)榻Y(jié)構(gòu)化的數(shù)據(jù)更有利于分析,從大量的數(shù)據(jù)中找出有價(jià)值的內(nèi)容。
2.3 OLAP
OLAP (Online Analytical Processing,聯(lián)機(jī)分析處理)系統(tǒng)是相對(duì)與OLTP(Online Transaction Processing,聯(lián)機(jī)事務(wù)處理)系統(tǒng)而言的。
OLTP系統(tǒng)記錄企業(yè)的日常數(shù)據(jù),旨在處理同時(shí)輸入的成百上千的事務(wù)。盡管OLTP系統(tǒng)擅長(zhǎng)記錄支持日常操作所需的數(shù)據(jù),但是OLTP系統(tǒng)并不善于協(xié)助管理人員對(duì)數(shù)據(jù)進(jìn)行匯總,以獲取分析影響單位或小組的趨勢(shì)所需的信息。
OLAP系統(tǒng)則旨在處理發(fā)現(xiàn)趨勢(shì)和關(guān)鍵因素所需的查詢。通常OLAP系統(tǒng)的查詢需要更多的數(shù)據(jù)。能包括一到多個(gè)OLTP系統(tǒng)的數(shù)據(jù)。存在OLAP系統(tǒng)中的數(shù)據(jù),不像OLTP系統(tǒng)中的數(shù)據(jù)那樣頻繁變更。OLAP數(shù)據(jù)被組織到多維數(shù)據(jù)集(cube)中,cube中的基本單元稱為度量值(Measure),記錄著經(jīng)過(guò)處理、計(jì)算的OLTP系統(tǒng)中的數(shù)據(jù)。由于Measure中的數(shù)據(jù)是經(jīng)過(guò)處理、計(jì)算的,并且cube可以有多個(gè)維度,因此非常便于查詢、分析。
2.4 數(shù)據(jù)挖掘
數(shù)據(jù)挖掘也被成為數(shù)據(jù)庫(kù)中的知識(shí)發(fā)現(xiàn)(Knowledge Discovery in Databases),是在OLAP或數(shù)據(jù)倉(cāng)庫(kù)或大型數(shù)據(jù)庫(kù)的基礎(chǔ)上,從大量的數(shù)據(jù)中分析、提取出有價(jià)值的信息,發(fā)掘數(shù)據(jù)中存在的不易被發(fā)現(xiàn)的模式,或依據(jù)發(fā)掘出的模式做出預(yù)測(cè)。數(shù)據(jù)挖掘中常見(jiàn)的算法包括關(guān)聯(lián)、聚類、決策樹(shù)、時(shí)間序列、序列聚類、nalve貝葉思等。
Web挖掘是數(shù)據(jù)挖掘在web領(lǐng)域中一個(gè)應(yīng)用,主要分為三類:web內(nèi)容挖掘、web結(jié)構(gòu)挖掘、以及web日志挖掘。其中web日志挖掘是通過(guò)對(duì)用戶瀏覽網(wǎng)站的記錄進(jìn)行分析與處理,得到互聯(lián)網(wǎng)用戶的偏好、習(xí)慣的使用模式等有價(jià)值的信息。這在互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)分析、調(diào)整方面有非常重要的作用。
3 Web日志分析系統(tǒng)的實(shí)現(xiàn)
3.1 基本結(jié)構(gòu)
圖1 Web日志分析系統(tǒng)結(jié)構(gòu)圖
從系統(tǒng)的結(jié)構(gòu)圖中可以看出。Web日志分析系統(tǒng)是由4部分組成的:“數(shù)據(jù)處理”、“數(shù)據(jù)倉(cāng)庫(kù)”、“OLAP”和“數(shù)據(jù)挖掘”。整個(gè)流程使用Microsoft SQL Server數(shù)據(jù)轉(zhuǎn)換服務(wù)(Data Transformation Services,DTS)作為流程驅(qū)動(dòng),不需要人為參與,可以按計(jì)劃自動(dòng)運(yùn)行。
3.2 數(shù)據(jù)預(yù)處理與轉(zhuǎn)換
在大型的互連網(wǎng)站的Web日志中,出現(xiàn)亂碼、數(shù)據(jù)不合理等現(xiàn)象都是正常的,常見(jiàn)的原因主要有“并發(fā)訪問(wèn)量大,日志記錄程序在并發(fā)壓力較大的情況下記錄出錯(cuò)”、“網(wǎng)站系統(tǒng)的Bug”、“新舊系統(tǒng)不一致”、“用戶沒(méi)有輸入真實(shí)信息”等,同時(shí)日志中的數(shù)據(jù)格式并不一定符合分析系統(tǒng)的需要。所以必須先對(duì)日志進(jìn)行預(yù)處理,才能導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)系統(tǒng)中,也就是通常說(shuō)的ETL(Extracting,Transforming,LOAding抽取、轉(zhuǎn)換、加載)。
*去掉“噪聲”數(shù)據(jù)
首先應(yīng)當(dāng)去掉日志中的亂碼與明顯不合理的數(shù)據(jù),這可以通過(guò)對(duì)日志中的字符與值的范圍做限定實(shí)現(xiàn)。其次,通過(guò)用戶請(qǐng)求的文件的類型,可以排除掉一些對(duì)日志分析意義不大的記錄。如在某些情況下,指向圖片文件的點(diǎn)擊并不代表有意義的操作。因此在這種情況下,應(yīng)將這些記錄清洗掉。除此之外,還會(huì)有更多的特殊情況需要清洗,有些情況是設(shè)計(jì)、開(kāi)發(fā)人員預(yù)先想不到的,可以通過(guò)取出部分?jǐn)?shù)據(jù)樣例,經(jīng)加載、處理到OLAP系統(tǒng)中,利用對(duì)cube中數(shù)據(jù)的查詢發(fā)現(xiàn)特殊情況,再判斷是否需要清洗掉。有一些日志分析的目的就是要找出特殊的記錄,在這種情況下,清洗工作就需要謹(jǐn)慎的進(jìn)行,以免將有意義的“噪聲”清洗掉。
*IP地址反查
日志中通常會(huì)記載訪問(wèn)者的IP地址,這個(gè)信息可以用來(lái)得到匿名用戶所屬的地區(qū)。但I(xiàn)P地址對(duì)于業(yè)務(wù)分析人員并不直觀,因此可以利用IP地址對(duì)照表,將IP對(duì)應(yīng)到所屬地區(qū)。通過(guò)IP地址的反查,也可部分彌補(bǔ)注冊(cè)會(huì)員在注冊(cè)時(shí)輸入不真實(shí)信息的影響,為分析人員多提供一種參考。
*用戶識(shí)別
登陸的會(huì)員可以用用戶名來(lái)確認(rèn)身份,但對(duì)于匿名訪問(wèn)的情況,則較難處理。由于動(dòng)態(tài)IP的存在,也很難通過(guò)IP地址來(lái)判斷操作是否屬于同一個(gè)用戶。目前比較通用的解決辦法是使用SessionID。有些網(wǎng)站通過(guò)cookie等方式,可以確保一段時(shí)間內(nèi),同一臺(tái)電腦對(duì)該網(wǎng)站的訪問(wèn)使用相同的SessionID。在用戶沒(méi)有禁用cookie的情況下。這種方法極大的方便了用戶身份的確認(rèn)。當(dāng)然,也不能僅僅依靠SessionID做出判斷,比如SessionID相同,但登陸的用戶名不同,或操作系統(tǒng)版本不同的情況,就明顯不是同一個(gè)訪問(wèn)者。
*訪問(wèn)路徑識(shí)別
判斷哪些操作是屬于用戶的同一次訪問(wèn)路徑。以及這些操作的順序,對(duì)于分析用戶的瀏覽習(xí)慣是很重要的。通常的做法是設(shè)定一個(gè)時(shí)間閥值δ。當(dāng)同一用戶的兩條記錄之間的間隔超過(guò)δ,則可認(rèn)為這兩條記錄屬于不同的路徑。同時(shí)也應(yīng)該參考其它因素,例如雖然兩條記錄之間的時(shí)間間隔并沒(méi)有超過(guò)δ,但已經(jīng)使用不同的SessionID,則這兩條記錄應(yīng)屬于不同的訪問(wèn)路徑。
用來(lái)進(jìn)行日志分析的路徑,應(yīng)該是“最大前向路徑”,例如實(shí)際的訪問(wèn)路徑為ABCDABEAF,則應(yīng)用來(lái)進(jìn)行分析的“最大前向路徑”有3條:ABCD、ABE和AF。
在識(shí)別訪問(wèn)路徑過(guò)程中,可能會(huì)遇到“補(bǔ)全訪問(wèn)路徑”的問(wèn)題。例如,通過(guò)時(shí)間閥值、SessionID等條件判斷出ABCD是用戶的一個(gè)訪問(wèn)路徑。但從頁(yè)面C沒(méi)有到頁(yè)面D的直接鏈接,而頁(yè)面B有,則很可能用戶通過(guò)瀏覽器的“后退”按鈕退回到B頁(yè)面然后鏈接到D頁(yè)面的,因此實(shí)際的訪問(wèn)路徑為ABCBD。這種補(bǔ)全方法需要對(duì)網(wǎng)站的結(jié)構(gòu)做出分析,才能夠做出正確的補(bǔ)全。
目前有些網(wǎng)站出于安全性或其它考慮,不將鏈接的地址直接放在頁(yè)面上,而是通過(guò)POST的方式,從服務(wù)器端進(jìn)行跳轉(zhuǎn)。如果這種網(wǎng)站能夠?qū)⒚恳淮吸c(diǎn)擊的起點(diǎn)和目標(biāo)均記錄在日志中,則對(duì)路徑識(shí)別有很大幫助。
鑒于本文項(xiàng)目的需求,經(jīng)過(guò)預(yù)處理的數(shù)據(jù)被分成了三種文本文件。一種是維度文件。這種文件中記錄著需求中要求的各種維度的信息,例如在記錄屏幕分辨率維度信息的文件中,存儲(chǔ)著“800×600”、“1024×768”等內(nèi)容。如果最初給的樣本數(shù)據(jù)有一定代表性。則維度文件將很少變動(dòng)。第二類文件是事實(shí)數(shù)據(jù)文件,存儲(chǔ)著將被更新到數(shù)據(jù)倉(cāng)庫(kù)的事實(shí)表中的數(shù)據(jù)。這類文件的內(nèi)容將隨著日志的更新而更新。第三類是輔助數(shù)據(jù)挖掘工作的文件,如訪問(wèn)路徑文件等。這三類文件將被導(dǎo)入到數(shù)據(jù)倉(cāng)庫(kù)中。導(dǎo)入的過(guò)程以及前面的日志預(yù)處理過(guò)程,均可由DTS來(lái)驅(qū)動(dòng)自動(dòng)完成。
3.3 數(shù)據(jù)倉(cāng)庫(kù)
針對(duì)本文項(xiàng)目的需求與特點(diǎn),數(shù)據(jù)倉(cāng)庫(kù)按照如下方式建立:
事實(shí)表有2個(gè),分別是:
表1 事實(shí)表名稱與含義
維度表共有18個(gè),分別為:
表2 維度表名稱與含義
除此之外還有一些表和視圖,輔助后續(xù)的數(shù)據(jù)挖掘工作。
3.4 OLAP
根據(jù)數(shù)據(jù)倉(cāng)庫(kù)結(jié)構(gòu),在OLAP服務(wù)器上建立了17個(gè)共享維度,對(duì)應(yīng)于數(shù)據(jù)倉(cāng)庫(kù)中除DimMember外的17個(gè)維度表。由于一般大型網(wǎng)站的會(huì)員數(shù)量龐大,如果將會(huì)員作為cube的一個(gè)維度,將會(huì)影響處理與查詢的效率,而且針對(duì)每一個(gè)會(huì)員個(gè)體的查詢意義并不是很大。在本文項(xiàng)目中雖然在數(shù)據(jù)倉(cāng)庫(kù)中建立會(huì)員的維度表,但是在OLAP中只將會(huì)員維度作為一個(gè)可選項(xiàng)。
本文項(xiàng)目中。為了查詢方便,總共建立了5個(gè)cube,分別為“訪客事實(shí)”、“會(huì)員事實(shí)”、“會(huì)員事實(shí)一獨(dú)立用戶”、“全部會(huì)員事實(shí)”、“全部事實(shí)”。其中“全部會(huì)員事實(shí)”與“全部事實(shí)”為虛擬cube。虛擬cube與其它3個(gè)cube的關(guān)系依圖2所示。其中“訪客事實(shí)”與“會(huì)員事實(shí)”中的度量值為Count人次數(shù),而“會(huì)員事實(shí)_獨(dú)立用戶”中的度量值為依會(huì)員用戶名的“獨(dú)立計(jì)數(shù)”。通過(guò)一些客戶端軟件,我們可以查看OLAP中的信息。
圖2 cube之間的關(guān)系
3.5 數(shù)據(jù)挖掘
3.5.1 欄目的用戶重合度分析
欄目的用戶重合度分析是要找出欄目之間的關(guān)聯(lián)程度。通過(guò)應(yīng)用“決策樹(shù)(Decision Trees)”算法和“關(guān)聯(lián)規(guī)則(Association Rules)”算法,可以實(shí)現(xiàn)這個(gè)目標(biāo)。
在重合度分析中,使用SessionID列表和SessionID對(duì)各個(gè)欄目的訪問(wèn)次數(shù)列表作為案例和嵌套案例。在嵌套案例中去掉了訪問(wèn)次數(shù)很低的記錄,既可以減少偶然性(例如點(diǎn)錯(cuò)了點(diǎn)到該欄目)的情況,又加快了處理的速度。決策樹(shù)分析可以利用依賴網(wǎng)絡(luò)視圖展現(xiàn)數(shù)據(jù)挖掘結(jié)果,也可以用決策樹(shù)視圖展現(xiàn),而關(guān)聯(lián)規(guī)則分析只能用依賴網(wǎng)絡(luò)視圖展現(xiàn),不過(guò)關(guān)聯(lián)規(guī)則分析的速度比決策樹(shù)分析要快。從依賴網(wǎng)絡(luò)視圖中可以看出各個(gè)欄目之間的依賴程度,通過(guò)改變查看器中的閥值,可以找出依賴關(guān)系最強(qiáng)的幾個(gè)欄目,在決策樹(shù)視圖中,可以瀏覽某一個(gè)欄目是否被訪問(wèn)的影響因素。
圖3 依賴網(wǎng)絡(luò)視圖
圖4 決策樹(shù)視圖
3.5.2 瀏覽習(xí)慣聚類
瀏覽習(xí)慣的聚類是為了從大量的數(shù)據(jù)中找出普遍的模式,發(fā)現(xiàn)用戶的瀏覽習(xí)慣,可以分為靜態(tài)聚類與動(dòng)態(tài)聚類。靜態(tài)聚類挖掘的是用戶的匯總信息,而動(dòng)態(tài)聚類挖掘的是用戶的瀏覽過(guò)程。也就是在數(shù)據(jù)預(yù)處理階段準(zhǔn)備的訪問(wèn)路徑信息。
靜態(tài)聚類采用“聚類(Clustering)”算法。以訪問(wèn)者的個(gè)人信息與訪問(wèn)各個(gè)欄目次數(shù)的列表為案例,進(jìn)行挖掘,得到結(jié)果如圖5所示。案例中的訪問(wèn)者被分為幾類,每一類都有其特征。
圖5 聚類算法的聚類外觀視圖
動(dòng)態(tài)聚類采用“序列聚類(Sequence Clustering)”算法,以訪問(wèn)者列表為案例表,以訪問(wèn)者以及訪問(wèn)路徑為嵌套案例表進(jìn)行挖掘,得到結(jié)果如圖6所示。從結(jié)果中可以看出,不同聚類的瀏覽習(xí)慣有著明顯的不同。
圖6 序列聚類算法的聚類外觀視圖
3.5.3 預(yù)測(cè)訪客個(gè)人信息
預(yù)測(cè)的過(guò)程分為兩步,首先通過(guò)“決策樹(shù)算法”分析會(huì)員個(gè)人信息的相關(guān)因素,找出具備哪些因素的會(huì)員具有什么樣的個(gè)人信息,再利用得到的決策樹(shù)挖掘模型和訪客日志中的相關(guān)因素,預(yù)測(cè)訪客的個(gè)人信息。這種預(yù)測(cè)方式經(jīng)某網(wǎng)站的實(shí)際數(shù)據(jù)驗(yàn)證,得到了較好的效果。
3.6 項(xiàng)目實(shí)現(xiàn)
本文項(xiàng)目選用.Net Framework,Microsoft 2000 DTS,Microsoft 2000 Analysis Service,Microsoft SQL Server 2005 BI Workbench實(shí)現(xiàn),在實(shí)際檢驗(yàn)中取得了很好的效果。在P4 3.0、1G內(nèi)存、Windows 2000的環(huán)境下,對(duì)約1.2G大小的原始日志文件進(jìn)行操作。從最初的預(yù)處理到將數(shù)據(jù)處理到cube中,只用了8分鐘的時(shí)間,而且整個(gè)流程由DTS驅(qū)動(dòng),不需要人為參與。這樣的處理能力對(duì)于一般大型網(wǎng)站每天的日志量和服務(wù)器的配置來(lái)說(shuō),是可以接受的。通過(guò)數(shù)據(jù)分析、數(shù)據(jù)挖掘得到的結(jié)果,對(duì)于互聯(lián)網(wǎng)企業(yè)的業(yè)務(wù)分析與調(diào)整,是有很大幫助的。
4 思考
有數(shù)據(jù)表明,自20世紀(jì)90年代以來(lái),人類積累的數(shù)據(jù)量以每月高于15%的速度增長(zhǎng)。僅僅依靠人力。要理解這些數(shù)據(jù),將其變?yōu)橛杏玫摹爸R(shí)”,幾乎是不可能的。商業(yè)智能(數(shù)據(jù)倉(cāng)庫(kù)、OLAP與數(shù)據(jù)挖掘),是能夠?qū)⒑A康臄?shù)據(jù)變?yōu)椤爸R(shí)”的有效方法。數(shù)據(jù)倉(cāng)庫(kù)用于抽取、整合、分布、存儲(chǔ)有用的信息;OLAP用于全方位分析現(xiàn)狀,通過(guò)前端展現(xiàn)工具,將“知識(shí)”從多種角度以多種形式展現(xiàn)給管理人員。在此基礎(chǔ)結(jié)構(gòu)之上,數(shù)據(jù)挖掘通過(guò)“描述”與“預(yù)測(cè)”兩種方式,更進(jìn)一步的展現(xiàn)海量數(shù)據(jù)中存在的“知識(shí)”。
本文中,針對(duì)互聯(lián)網(wǎng)日志分析業(yè)務(wù)提出的解決方案,也可以類似的用到其它業(yè)務(wù)領(lǐng)域。例如,在銀行信貸領(lǐng)域,可以將用戶的還款行為作為事實(shí)數(shù)據(jù),將用戶的個(gè)人信息,如年齡、職業(yè)、收入等作為維度數(shù)據(jù)建立數(shù)據(jù)倉(cāng)庫(kù)與多維數(shù)據(jù)集,在此基礎(chǔ)上進(jìn)行數(shù)據(jù)挖掘的“描述”與“預(yù)測(cè)”,從而對(duì)貸款者的還款能力做出分析。商業(yè)智能的技術(shù)在國(guó)防、軍事領(lǐng)域也有著很大作用,例如在“反恐”中,可以通過(guò)對(duì)嫌疑人個(gè)人信息以及行為的分析。判斷嫌疑人是恐怖分析的可能性以及其危險(xiǎn)性。另一方面,在戰(zhàn)場(chǎng)上,可以通過(guò)實(shí)時(shí)的數(shù)據(jù)挖掘?qū)?zhàn)場(chǎng)上發(fā)生的復(fù)雜情況做出分析,進(jìn)而對(duì)敵軍的行動(dòng)做出預(yù)測(cè),對(duì)戰(zhàn)場(chǎng)形式做出正確判斷。除了上面舉的幾個(gè)例子之外,商業(yè)智能技術(shù)在各種領(lǐng)域中,都可以發(fā)揮出巨大作用。
5 結(jié)束語(yǔ)
本文在綜合利用商業(yè)智能技術(shù),從網(wǎng)站的點(diǎn)擊日志中分析、挖掘有價(jià)值信息的過(guò)程做了初步探索。本文項(xiàng)目仍然存在著很多值得改進(jìn)的方面,例如,可以充分利用SQL Server 2005數(shù)據(jù)挖掘算法可擴(kuò)充的特性,將一些更適合Web日志挖掘具體情況的算法應(yīng)用到這個(gè)系統(tǒng)中。相信隨著技術(shù)的日趨完善,商業(yè)智能將在互聯(lián)網(wǎng)業(yè)中發(fā)揮更大的作用。
核心關(guān)注:拓步ERP系統(tǒng)平臺(tái)是覆蓋了眾多的業(yè)務(wù)領(lǐng)域、行業(yè)應(yīng)用,蘊(yùn)涵了豐富的ERP管理思想,集成了ERP軟件業(yè)務(wù)管理理念,功能涉及供應(yīng)鏈、成本、制造、CRM、HR等眾多業(yè)務(wù)領(lǐng)域的管理,全面涵蓋了企業(yè)關(guān)注ERP管理系統(tǒng)的核心領(lǐng)域,是眾多中小企業(yè)信息化建設(shè)首選的ERP管理軟件信賴品牌。
轉(zhuǎn)載請(qǐng)注明出處:拓步ERP資訊網(wǎng)http://www.ezxoed.cn/
本文標(biāo)題:商業(yè)智能在互聯(lián)網(wǎng)業(yè)務(wù)分析中的研究與應(yīng)用
本文網(wǎng)址:http://www.ezxoed.cn/html/support/1112185433.html