畢業(yè)論文Web聚類Hamming算法與K均值算法的研究與實現(xiàn)
《畢業(yè)論文Web聚類Hamming算法與K均值算法的研究與實現(xiàn)》由會員分享,可在線閱讀,更多相關《畢業(yè)論文Web聚類Hamming算法與K均值算法的研究與實現(xiàn)(32頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、 本科生畢業(yè)設計(論文) 題 目: Web聚類Hamming算法與K均值算法的 研究與實現(xiàn) 姓 名: 陳云峰 學 號: 030300714 學 院: 數(shù)學與計算機科學學院 專 業(yè):
2、 年 級: 2003級 指導教師: (簽名) 2007 年 6 月 16 日 Web聚類Hamming算法與K均值算法的研究與實現(xiàn) 摘要 聚類分析也稱群分析、點群分析,它是研究分類的一種多元統(tǒng)計方法。我們所研究的樣品或指標之間存在程度不同的相似性。于是根據(jù)一批樣品的多個觀測指標,具體找出一些能夠度量樣品或指標之間相似程度的統(tǒng)計量,以這些統(tǒng)計量為劃分類型的依據(jù)。把一些相似程度較大的樣品或指
3、標聚合為一類,把另外一些彼此之間相似程度較大的樣品或指標又聚合為另一類,關系密切的聚合到一個小的分類單位,關系疏遠的聚合到一個大的分類單位,直到把所有的樣品或指標聚合完畢,這就是聚類的基本思想。隨著科學技術的不斷發(fā)展,網(wǎng)絡成為了人們生活中必不可少的重要組成部分。因此,關于網(wǎng)頁數(shù)據(jù)的種種研究都有著其重要的現(xiàn)實意義。特別是網(wǎng)頁聚類,它關系著人們網(wǎng)上獲取信息效率的高低,同時也是網(wǎng)頁信息組織的主要依據(jù)。本文通過對Web日志數(shù)據(jù)的挖掘研究,應用兩種聚類的算法,Hamming算法和K均值算法,將用戶所訪問的網(wǎng)頁進行聚類。在這兩種算法中,首先以Web站點URL為行,UserID為列建立URL-UserID關
4、聯(lián)矩陣.兩種不同算法構(gòu)造的矩陣中的元素值不同,文中會詳細說明,然后對行向量進行相似性分析,可以得到相似的Web群體類,從而完成對Web網(wǎng)頁的聚類。 關鍵詞:網(wǎng)頁聚類, 數(shù)據(jù)挖掘, Web日志, K均值算法, Hamming算法 Web Polymerization: The Reaserch and Realization of Hamming Algorithms and Kmeans Algorithms Abstract Cluster analysis is also called cluster analysis, cluster analysis
5、point, it is a classification study of multivariate statistical methods. The samples or indicators we studies exist different degrees of similarity. In accordance with the number of samples over observation indicators, we can find some specific samples to measure or indicator the degree of similarit
6、y between the statistics which are treated the basis for the type of division. Some sample or indicators which have the high similar functions divided into the same polymerization, another similarity samples also do the same thing. Lower polymerization is classified into a small unit, while the clos
7、ing polymerization is put into a large unit, until polymerization of all the samples or indicators are finished --that is the basic idea of clustering. With scientific and technological development, network has become the essential component of peoples live. Therefore, the data on the website of the
8、 various studies have important practical significance. Particularly in the filed of website clustering, which related to the efficiency of people getting the information on the website, is the basis of website information organization. Based on web log data mining research and application of the tw
9、o polymerization algorithm, Hamming algorithms and kmeans algorithmms,polymerizing the websites which users visited. In both algorithms, making the URL of web site as line and Users’ ID as row for the establishment of URL-Users’ ID correlation matrix. Two different algorithms give birth to different
10、 values of the matrix elements which will be explained in detail in the text, and then analysis the similarity among them to get the similar web category. And that is the end of web polymerization. Keywords : Web Clustering, Data Mining, Web Log, K-Means Algorithm, The Algorithm H
11、amming 第1章 緒論 1.1 聚類和聚類分析的概念及其相關分類 1.1.1 聚類和聚類分析的相關概念 所謂類,通俗地說,就是指相似元素的集合。 那么我們所講的聚類,從字面上就可以看出,就是將某個領域內(nèi)的一些同一屬性的事物,根據(jù)它們個體之間的相似性,將其分為幾個群集[1]。聚類分析又稱群分析,它是研究(樣品或指標)分類問題的一種多元統(tǒng)計方法。嚴格的數(shù)學定義是較麻煩的,在不同問題中類的定義是不同的。聚類分析起源于分類學,在考古的分類學中,人們主要依靠經(jīng)驗和專業(yè)知識來實現(xiàn)分類。隨著生產(chǎn)技術和科學的發(fā)展,人類的認識不斷加深,分類越來越細,要求也越來越高,有時光憑經(jīng)驗和專業(yè)知識
12、是不能進行確切分類的,往往需要定性和定量分析結(jié)合起來去分類,于是數(shù)學工具逐漸被引進分類學中,形成了數(shù)值分類學[2]。后來隨著多元分析的引進,聚類分析又逐漸從數(shù)值分類學中分離出來而形成一個相對獨立的分支。 在社會經(jīng)濟領域中存在著大量分類問題,比如對我國30個省市自治區(qū)獨立核算工業(yè)企業(yè)經(jīng)濟效益進行分析,一般不是逐個省市自治區(qū)去分析,而較好地做法是選取能反映企業(yè)經(jīng)濟效益的代表性指標,如百元固定資產(chǎn)實現(xiàn)利稅、資金利稅率、產(chǎn)值利稅率、百元銷售收入實現(xiàn)利潤、全員勞動生產(chǎn)率等等,根據(jù)這些指標對30個省市自治區(qū)進行分類,然后根據(jù)分類結(jié)果對企業(yè)經(jīng)濟效益進行綜合評價,就易于得出科學的分析。又比如若對某些大城市的
13、物價指數(shù)進行考察,而物價指數(shù)很多,有農(nóng)用生產(chǎn)物價指數(shù)、服務項目價指數(shù)、食品消費物價指數(shù)、建材零售價格指數(shù)等等。由于要考察的物價指數(shù)很多,通常先對這些物價指數(shù)進行分類??傊枰诸惖膯栴}很多,因此聚類分析這個有用的數(shù)學工具越來越受到人們的重視,它在許多領域中都得到了廣泛的應用。[3] 1.1.2 聚類分析算法的分類 聚類分析是數(shù)據(jù)挖掘中的一個很活躍的研究領域,在這個領域里人們已經(jīng)提出并實現(xiàn)了許多不同的聚類算法。這些算法可以被分為劃分方法、層次方法、基于密度方法、基于網(wǎng)格方法和基于模型方法[4]。 1 、劃分方法(PAM:Partitioning method)[5], 首先創(chuàng)建k個
14、劃分,k為要創(chuàng)建的劃分個數(shù),然后利用一個循環(huán)定位技術通過將對象從一個劃分移到另一個劃分來幫助改善劃分質(zhì)量。典型的劃分方法包括k-means,k-medoids,CLARA(Clustering LARge Application), CLARANS(Clustering Large Application based upon RANdomized Search)EM(Expectation Maximization)則是不將對象明顯地分到幾個簇,而是根據(jù)表示可能性的權(quán)來分配對象. 2、 層次方法(hierarchical method),創(chuàng)建一個層次以分解給定的數(shù)據(jù)集。該方法可以分為自上
15、而下(分解)和自下而上(合并)兩種操作方式。為彌補分解與合并的不足,層次合并經(jīng)常要與其它聚類方法相結(jié)合,如循環(huán)定位[6]。典型的這類方法中第一個是BIRCH(Balanced Iterative Reducing and Clustering using Hierarchies) 方法,它首先利用樹的結(jié)構(gòu)對對象集進行劃分;然后再利用其它聚類方法對這些聚類進行優(yōu)化。第二個是CURE(Clustering Using REprisentatives) 方法,它利用固定數(shù)目代表對象來表示相應聚類,然后對各聚類進行收縮處理。第三個是ROCK方法,它利用聚類間的連接進行聚類合并。最后一個CHEMALOE
16、N,它則是在層次聚類時構(gòu)造動態(tài)模型。 3、 基于密度方法,根據(jù)密度完成對象的聚類[7]。它根據(jù)對象周圍的密度(如DBSCAN)不斷增長聚類。典型的基于密度方法包括:GDBSCAN,DBCLASD,DENCLUE(DENsity-based CLUstEring),DBSCAN(Densit-based Spatial Clustering of Application with Noise)。DBSCAN算法通過不斷生長足夠高密度區(qū)域來進行聚類,它能從含有噪聲的空間數(shù)據(jù)庫中發(fā)現(xiàn)任意形狀的聚類。此方法將一個聚類定義為一組“密度連接”的點集。OPTICS(Ordering Points To I
17、dentify the Clustering Structure)并不明確產(chǎn)生一個聚類,而是為自動交互的聚類分析計算出一個增強聚類順序[8]。 4、 基于網(wǎng)格方法,首先將對象空間劃分為有限個單元以構(gòu)成網(wǎng)格結(jié)構(gòu);然后利用網(wǎng)格結(jié)構(gòu)完成聚類。STING(STatistical INformation Grid) 就是一個利用網(wǎng)格單元保存的統(tǒng)計信息進行基于網(wǎng)格聚類的方法[9]。CLIQUE(Clustering In QUEst)和Wave-Cluster 則是一個將基于網(wǎng)格與基于密度相結(jié)合的方法。 5、基于模型方法,它假設每個聚類的模型并發(fā)現(xiàn)適合相應模型的數(shù)據(jù)[10]。典型的基于模型方法有統(tǒng)計方
18、法COBWEB,它是一個常用的且簡單的增量式概念聚類方法。它的輸入對象是采用符號量(屬性-值)對來加以描述的。采用分類樹的形式來創(chuàng)建一個層次聚類。CLASSIT是COBWEB的另一個版本。它可以對連續(xù)取值屬性進行增量式聚類。它為每個結(jié)點中的每個屬性保存相應的連續(xù)正態(tài)分布(均值與方差),并利用一個改進的分類能力描述方法,即不像COBWEB那樣計算離散屬性(取值)而是對連續(xù)屬性求積分[11]。但是CLASSIT方法也存在與COBWEB類似的問題。因此它們都不適合對大數(shù)據(jù)庫進行聚類處理.還有就是AutoClass,它采用貝葉斯統(tǒng)計分析來估算結(jié)果簇的數(shù)目. 1.1.3 本次設計所用算法介紹 本次設
19、計中,主要用到兩個聚類算法,一個就是以上提到的K均值聚類算法,而別一個則是Hamming聚類算法[12]。 K均值算法:有多個對象組成的數(shù)據(jù)集,將其劃分為k個類,k是人為指定的。先隨機地從數(shù)據(jù)集中取出k個對象,每個對象初始地代表一個簇的平均值(或中心點)。對剩下的每個對象,根據(jù)與各中心的距離,將其賦給最近的簇。每個簇就增加了一些對象,用每個簇這些對象重新計算每個簇平均值,得到新的簇平均值,再重新計算每個對象到各新平均值的距離,每個對象重新分簇,直到對象重新分簇不再變化。 Hamming算法:我們認為一些網(wǎng)頁頁面具有相似性,可以歸為一類,而這種分類是根據(jù)這些網(wǎng)頁之間的Hamming距離的大
20、小來進行衡量的。我們說一個URL-UserID關聯(lián)矩陣可以構(gòu)造出一個URL-URL關聯(lián)矩陣,此矩陣又能根據(jù)一定的算法算出一個閾值。如果根據(jù)算出的兩個元素間的hamming距離小于這個閾值,我們便認為這兩個頁面具有相似性,可以歸為一類。下面說明一下hamming距離的定義式: 設X,Y為n維向量,其中,分別表示n維向量X,Y的第i個元素的值,而Hamming距離H(X,Y)可以表示為 (X,Y)= 所以這次設計的主要算法之一也就是上面所介紹的hamming聚類算法,我們算出URL-UserID關聯(lián)矩陣中每兩個URL向量間的hamming距離,再與算出的閾值做比較,如果小于此閾值,我們便把這
21、兩個頁面認為是相似的,歸為同一類,聚為同一個類別。 1.2 數(shù)據(jù)挖掘技術的發(fā)展研究現(xiàn)狀 數(shù)據(jù)挖掘是一個新興的邊緣學科,它匯集了來自機器學習、模式識別、數(shù)據(jù)庫、統(tǒng)計學、人工智能以及管理信息系統(tǒng)等各學科的成果。多學科的相互交融和相互促進,使得這一新學科得以蓬勃發(fā)展,而且已初具規(guī)模。[13]人工智能研究領域的科學家也普遍認為,下一個人工智能應用的重要課題之一,將是以機器學習算法為主要工具的大規(guī)模的數(shù)據(jù)庫知識發(fā)現(xiàn)。盡管數(shù)據(jù)挖掘還是一個很新的研究課題,但它所固有的為企業(yè)創(chuàng)造巨大經(jīng)濟效益的潛力,已使其很快有了許多成功的應用,具有代表性的應用有市場預測、投資、制造業(yè)、銀行、通訊等幾個方面。美國鋼鐵公司和
22、神戶鋼鐵公司利用基于數(shù)據(jù)挖掘技術的ISPA系統(tǒng),研究分析產(chǎn)品性能規(guī)律和進行質(zhì)量控制,取得了顯著效果。[14]通用電器公司(GE)與法國飛機發(fā)動機制造公司(sNEcMA),利用數(shù)據(jù)挖掘技術研制了CASSIOP.EE質(zhì)量控制系統(tǒng),被三家歐洲航空公司用于診斷和預測波音737的故障,帶來了可觀的經(jīng)濟效益。 而在這些數(shù)據(jù)挖掘的技術中,Web日志數(shù)據(jù)挖掘的研究逐漸被人們所關注。特別是計算機網(wǎng)絡技術的高術發(fā)展,對Web日志進行數(shù)據(jù)挖掘顯得越來越重要。當今社會,網(wǎng)絡已經(jīng)成為人們生活中的重要組成部分,網(wǎng)絡是人們獲取信息的一個相當重要的途徑,隨著電子網(wǎng)務技術的發(fā)展,網(wǎng)上購物也逐漸被人們所接納且終將成為世界經(jīng)濟發(fā)
23、展的廣闊市場。所以人們對網(wǎng)頁相關科技的發(fā)展也越來越關注。網(wǎng)頁聚類技術,作為當前網(wǎng)絡科技研究的一大方向,一直都因有著巨大的作用而被人們關注。 一個正確的,高效的網(wǎng)頁聚類方案的實現(xiàn),將從根本上解決大部分的網(wǎng)絡獲取信息中遇到的難題。比如,網(wǎng)頁松散而又海量,人們有時難以從這樣海量的數(shù)據(jù)中尋找自己要的信息。即使有搜索工具進行輔助,也必須有好的預處理網(wǎng)頁的聚類方案,才能使搜索更加準確而有效,所以Web聚類技術的研究雖然發(fā)展不是很久,但處在這樣一個科技高速發(fā)展的形式下,倍受人們的關注。 1.3 設計出發(fā)點及主要設計任務和目標 為便于從大量組織松散動態(tài)性強的Web網(wǎng)頁中快速有效地發(fā)現(xiàn)知識,很早人們便提
24、出了網(wǎng)頁搜索技術,但是由于網(wǎng)上信息的海量、動態(tài)和無結(jié)構(gòu)性,使得用戶信息迷向,影響檢索效率。這是因為:搜索引擎無法覆蓋全部萬維網(wǎng)信息;萬維網(wǎng)具有動態(tài)性,搜索引擎索引中包含的“斷鏈接”和“過時網(wǎng)頁”削弱了搜索引擎的作用;搜索引擎返回的結(jié)果中相關信息和無關信息混雜;自然語言中存在的“一義多詞”與“一詞多義”現(xiàn)象,也導致用戶提出的查詢信息往往不能清楚地表達自己的真正需要。 于是人們便開始提出用聚類的方法自動組織搜索引擎的搜索結(jié)果,同時個性化服務于該系統(tǒng),主動對外界反饋信息做出響應,方便用戶發(fā)現(xiàn)真正需要的萬維網(wǎng)信息。 所以本次設計的主要任務是以聚類算法為核心,根據(jù)若干用戶訪問網(wǎng)頁的Web日志信息,將
25、這些網(wǎng)頁通過具體的聚類算法進行分類。通過聚類得到的若干個網(wǎng)頁的類體,這些類型的網(wǎng)頁有著不同程度的某種相關性,在此基礎上我們可以實現(xiàn)如何安排網(wǎng)頁連接,使用戶用起來更方便,更有效率。同時,對兩種聚類算法得出的分類結(jié)果進行對比分析,列出其異同點,指出各算法的不足之處,希望能對現(xiàn)實生活中的工作需求有所幫助,從而使本次的設計有其現(xiàn)實的意義。 1.4 論文的組織 本論文主要有以下五個部分: 第1章 緒論。主要介紹關于web聚類分析的概念和發(fā)展現(xiàn)狀、課題任務等。 第2章 開發(fā)環(huán)境技術背景。主要介紹課題的開發(fā)環(huán)境和技術背景。 第3章 設計部分。主要介紹課題的概要設計和詳細設計。 第4章 系統(tǒng)實
26、現(xiàn)及結(jié)果分析。主要介紹系統(tǒng)的具體實現(xiàn)和核心代碼段和聚類分析。 最后 致謝與參考文獻 第2章 開發(fā)環(huán)境和技術背景 2.1 開發(fā)技術 本課題是利用VC++語言完成的。主要用到了數(shù)據(jù)存儲技術、MFC編程框架技術等。利用MFC編程框架可以比較方便的調(diào)用MFC庫來產(chǎn)生Windows環(huán)境下的可視化界面。 2.2 關鍵技術 2.2.1 MFC編程框架 MFC (Microsoft Foundation Class)中的各種類結(jié)合起來構(gòu)成了一個應用程序框架,它的目的就是讓程序員在此基礎上來建立Windows下的應用程序,這是一種相對SDK來說更為簡單的方法。因為總體上,MFC
27、框架定義了應用程序的輪廓,并提供了用戶接口的標準實現(xiàn)方法,程序員所要做的就是通過預定義的接口把具體應用程序特有的東西填入這個輪廓。Microsoft Visual C++提供了相應的工具來完成這個工作:AppWizard可以用來生成初步的框架文件(代碼和資源等);資源編輯器用于幫助直觀地設計用戶接口;ClassWizard用來協(xié)助添加代碼到框架文件;最后,編譯,則通過類庫實現(xiàn)了應用程序特定的邏輯。 (1)封裝性 構(gòu)成MFC框架的是MFC類庫。MFC類庫是C++類庫。這些類或者封裝了Win32應用程序編程接口,或者封裝了應用程序的概念,或者封裝了OLE特性,或者封裝了ODBC和DAO數(shù)據(jù)
28、訪問的功能,等等。 (2)繼承性 首先,MFC抽象出眾多類的共同特性,設計出一些基類作為實現(xiàn)其他類的基礎。這些類中,最重要的類是CObject和CCmdTarget。CObject是MFC的根類,絕大多數(shù)MFC類是其派生的,包括CCmdTarget。 針對每種不同的對象,MFC都設計了一組類對這些對象進行封裝,每一組類都有一個基類,從基類派生出眾多更具體的類。這些對象包括以下種類:窗口對象,基類是CWnd;應用程序?qū)ο螅愂荂winThread;文檔對象,基類是Cdocument,等等。 (3)虛擬函數(shù)和動態(tài)約束 MFC以“C++”為基礎,自然支持虛擬函數(shù)和動態(tài)約束[15]。但是作
29、為一個編程框架,有一個問題必須解決:如果僅僅通過虛擬函數(shù)來支持動態(tài)約束,必然導致虛擬函數(shù)表過于臃腫,消耗內(nèi)存,效率低下。MFC建立了消息映射機制,以一種富有效率、便于使用的手段解決消息處理函數(shù)的動態(tài)約束問題。這樣,通過虛擬函數(shù)和消息映射,MFC類提供了豐富的編程接口。程序員繼承基類的同時,把自己實現(xiàn)的虛擬函數(shù)和消息處理函數(shù)嵌入MFC的編程框架。 (4)MFC的宏觀框架體系 如前所述,MFC實現(xiàn)了對應用程序概念的封裝,把類、類的繼承、動態(tài)約束、類的關系和相互作用等封裝起來。這樣封裝的結(jié)果對程序員來說,是一套開發(fā)模板(或者說模式)。針對不同的應用和目的,程序員采用不同的模板。 2.3 課題
30、開發(fā)環(huán)境和技術綜述 本課題是在Microsoft Visual C++ 6.0 開發(fā)環(huán)境下利用C++語言和MFC編程框架完成的。由于MFC編程框架技術的穩(wěn)定性和簡易性,將會使程序更加健壯和便于維護。 第3章 設計部分 本部分包括概要設計和詳細設計部分。 3.1 概要設計 網(wǎng)頁聚類分析的設計算法有很多種,以上概論中已經(jīng)有詳細的說明。而本次設計采取了兩種算法來進行網(wǎng)頁的聚類和分析。分析的結(jié)果精確度和所取的數(shù)據(jù)量的大小有很大的關系,數(shù)據(jù)量越大,聚類的結(jié)果就越準確,越有應用價值。 由于需要處理的數(shù)據(jù),數(shù)據(jù)量很大,我們需要對數(shù)據(jù)進行預處理。當數(shù)據(jù)處理完后,進行數(shù)據(jù)的輸入,進而在編程環(huán)
31、境下進行編程實現(xiàn)對數(shù)據(jù)的分類,即對網(wǎng)頁進行聚類,當結(jié)果出來后,對相應算法的結(jié)果進行分析和對比,闡述兩種算法的優(yōu)缺點和現(xiàn)實應用價值,對以后的科學研究和應用提供一點參考。 設計的概要框架如圖3-0所示: 圖3-0 設計概要框架圖 3.2 詳細設計 3.2.1 數(shù)據(jù)預處理與數(shù)據(jù)存儲 3.2.1.1 Log日志的源數(shù)據(jù)格式及包含的信息 網(wǎng)絡日志LOG文件記錄了,用戶訪問網(wǎng)頁的詳細信息,是我們研究網(wǎng)頁聚類和用戶聚類的一個很有價值的數(shù)據(jù)資源。本次設計所用的處理數(shù)據(jù)就是網(wǎng)絡日志,從對網(wǎng)絡日志進行數(shù)據(jù)挖掘,來對網(wǎng)頁進行聚類分析。下面是本次設計所用網(wǎng)絡日志文件中源數(shù)據(jù)的截圖和信息說明,如圖3
32、-1: 圖3-1 Log日志源文件截圖 我們發(fā)現(xiàn)每條日志記錄都包含了幾塊相同的信息: 1.訪問用戶的IP,在第一條記錄的開頭都記錄訪問用的IP地址,如“125.41.34.6” 2.用戶訪問的具體時間及訪問端口號,包括年,月,日,時,分,秒的精確表示,如“[30/Apr/2007:00:00:02 +0800]” 3.用戶訪問網(wǎng)頁的URL地址,如: "GET /skins/green/images/fzuc2007_green_search_01.gif HTTP/1.1" 4.訪問請求是否成功的代碼表示等信息. 3.2.1.2 數(shù)據(jù)預處理 從上面的LOG
33、日志文件中我們看到,這些文件中有本次設計所需要的兩大塊信息,用戶IP和用戶訪問的網(wǎng)頁的URL地址,而其它的信息對我們來講就是多余的,不必要的。又因為數(shù)據(jù)量非常之大,本次設計所用的網(wǎng)絡日志文件有7萬多條記錄。如果不進行數(shù)據(jù)的預處理,將造成程序運行相當緩慢,所以數(shù)據(jù)預處理這一塊是本次設計工作量比較大的一部分。 本次的數(shù)據(jù)預處理過程分為以下幾個步聚: 1.將用戶訪問的URL地址用數(shù)字代號(以#XXXX表示,如#0001)一一對映的進行替換,同時將URL地址與對應的數(shù)字代碼存儲在txt文檔中,以便后續(xù)聚類結(jié)果分析的對比分析。如下圖3-2和3-3所示: 圖3-2 URL整理替換后的源數(shù)據(jù)
34、 圖3-3 URL與對應的編號 2.將用戶IP地址用數(shù)字代號(以@XXXX表示,如@0001)一一對映的進行替換,同時將IP地址與對應的數(shù)字代碼存儲在txt文檔中,以便后續(xù)聚類結(jié)果分析的對比分析。如圖3-4和3-5所示: 圖3-4 用戶IP整理后的源數(shù)據(jù) 圖3-5 用戶IP與對應的編號 3.最后去掉不需要的多余數(shù)據(jù),剩下用戶IP編碼和其訪問的URL地址編碼,如圖3-6所示: 圖3-6 最終輸入數(shù)據(jù) 整理完成后,對用戶IP和URL進行統(tǒng)計,共有IP地址1506個,URL地址1700個,去掉訪問請求未成功的記錄,一共有訪
35、問記錄5萬多條。 3.2.1.3 數(shù)據(jù)存儲 數(shù)據(jù)存儲方式:本次設計采用矩陣存儲的方式進行數(shù)據(jù)存儲,首先定義一個足夠大的靜態(tài)整形二維數(shù)組做為URL-IP數(shù)據(jù)存儲矩陣URL-IP[ ][ ]。 其中矩陣元素的初值根據(jù)不同算法有不同的要求: 1.K均值算法中URL-IP矩陣元素的初值: 我們知道,同一個URL可能被同一個IP訪問多次,從本是否被訪問的角度上來講,我們只要考慮該URL_i是否有被IP_j訪問,若有則置URL-IP[i][j]=1,若無則置URL-IP[i][j]=0;而K均值聚類的算法還將訪問頻率,即被訪問的次數(shù)做為分類的參考因子,所以在K均值聚類中URL-IP矩陣元素
36、值URL-IP[i][j]為URL_i被IP_j訪問的次數(shù),相應的代碼如圖3.5所示: 2.Hamming算法中URL-IP矩陣元素的初值: 在Hamming算法中,我們只考慮URL_i是否有被IP_j訪問過,若有,不管訪問幾次只要有被訪問就將URL-IP矩陣元素值URL-IP[i][j]置1,若無則置0. 3.2.2 URL地址存儲 本次網(wǎng)頁聚類系統(tǒng)的設計中,對于聚類結(jié)果的顯示,本設計可以顯示每個分類中具體的URL編號對應的具體的URL地址,所以在初始化編程數(shù)據(jù)時,需要對URL對應編號進行存儲,以便要顯示具體URL地址時的查找與調(diào)用顯示。 3.2.3 各模塊功能介紹 3.2.3.
37、1 K均值聚類算法實現(xiàn)模塊 該模塊主要是在K均值初始化的數(shù)據(jù)矩陣的基礎上,通過計算URL-IP矩陣的行向量間的距離將所有網(wǎng)頁歸入事先定義好的類別中,而后重新計算出每一類也就是自定義類別中URL(,,…)的平均值,再進行分類,直到分類不再變化為止,即分類結(jié)束。 3.2.3.2 Hamming聚類算法實現(xiàn)模塊 該模塊是與K均值聚類算法的實現(xiàn)不一樣,沒有事先自定義分為幾類,而是在初始化矩陣的數(shù)據(jù)基礎上,構(gòu)造出一個新的URL-URL矩陣,其中每個元素的值URL-URL[i][j]為URLi和URLj中不同元素的個數(shù),而后算出Hamming閾值,然后根據(jù)閾值來進行URL聚類,如果大元素值URL-
38、URL[i][j]小于閾值,則URLi和URLj為一類。 3.2.3.3 聚類結(jié)果顯示模塊 由于聚類的結(jié)果是要將分類后的URL顯示給用戶,然而我們知道URL一共有1700個,如果全部一起顯示給用戶會使用戶無法清晰地分析聚類的結(jié)果,所以我們先在LIST中顯示出分類后的URL代號,每一類的URL都顯示在LIST中的一行,由于顯示的窗口大小有限,所以有些類含URL很多無法在一行中全部顯示給用戶,所以用戶雙擊這一行,則會顯示出全部的URL代號,而后點擊詳細顯示,則顯示詳細的URL編號與地址。 第4章 系統(tǒng)實現(xiàn) 本章主要包括兩種聚類算法K均值聚類和Hamming聚類的實現(xiàn),以及聚類結(jié)果的
39、分析顯示,還有相關的數(shù)據(jù)處理的詳細過程和代碼分析。 4.1 初始化數(shù)據(jù)模塊 4.1.1 數(shù)據(jù)結(jié)構(gòu)的選擇 數(shù)組是存儲數(shù)據(jù)的一種典型而又簡單可靠的數(shù)據(jù)結(jié)構(gòu),數(shù)組在進行查找,排序操作是很方便的,而且數(shù)組可以動態(tài)分配這一方法又使數(shù)組的靈活性有所提高。數(shù)組一般用在順序存儲中。順序存儲表示是將數(shù)據(jù)元素存放于一個連續(xù)的存儲空間,利用物理相鄰來表示邏輯關系,實現(xiàn)順序存取或(按下標)直接存取。它的存儲效率高,存取速度快。但它的空間大小如果是靜態(tài)分配的,一經(jīng)定義,在整個程序運行期間不會發(fā)生變化,因此,它不易擴充。同時,由于在插入或刪除時,為保持原有順序,平均需要移動一半(或近一半)元素,修改效率不高。
40、 鏈式存儲[15]表示的存儲空間一般在程序運行過程中動態(tài)分配和釋放,且只要存儲器中還有空間,就不會產(chǎn)生溢出的問題。同時在插入和刪除時不需要保持數(shù)據(jù)元素的原有物理順序,只需要保持原有的邏輯順序就行了,故不必移動元素,只需修改它們的鏈接指針,修改效率高。但在存取表中的數(shù)據(jù)元素時,只能循鏈順序進行訪問,且需要額外的指針,存儲效率和訪問效率低于順序存儲表示。 而本次設計主要的數(shù)據(jù)處理都是順序存儲的,而且關聯(lián)到很多的順序?qū)\算,用數(shù)組進行數(shù)據(jù)存儲是最優(yōu)的選擇。 現(xiàn)給出本次設計中數(shù)據(jù)初始化中相關數(shù)組的定義,程序代碼描述如下: 幾個全局靜態(tài)數(shù)組的定義: Define int URl-IP[2
41、000][2000]: K均值初始化矩陣 define float HamU-I[2000][2000]: Hamming初始化矩陣 extern CString url[2000]: URL地址存儲字符串數(shù)組 4.1.2 兩種算法的矩陣數(shù)據(jù)初始化 4.1.2.1 K均值算法矩陣數(shù)據(jù)初始化 根據(jù)K值聚類的算法描述,我們知道K均值聚類算法中的影響因子有數(shù)據(jù)量大小,也就是URL地址數(shù)目和用戶IP數(shù)目的大小和同一IP訪問同一URL的次數(shù),也就是訪問頻率兩個方面。其數(shù)據(jù)矩陣初始化的編程代碼表示如圖4-1: 圖4-1 K均值數(shù)據(jù)矩陣初始化代碼 4.1.2.2 Hamming聚類
42、算法矩陣數(shù)據(jù)初始化 和K均值算法不一樣,Hamming算法所進么分類的標準主要是此URL是否被某IP訪問,有被訪問則置1,否則置0. 其數(shù)據(jù)矩陣初始化的編程代碼表示如圖4-2: 圖4-2 Hamming數(shù)據(jù)矩陣初始化代碼 4.1.2.3 URL地址字符串數(shù)組數(shù)據(jù)初始化 由于聚類的結(jié)果是要將分類后的URL顯示給用戶,然而我們知道URL數(shù)目很多,很難一起顯示給用戶,或者說會使用戶無法清晰地分析聚類的結(jié)果,所以我們先在LIST中顯示出分類后的URL代號,再顯示出對應的具體的URL地址,因而我們需要對URL地址與其對應的編號以字符串數(shù)組的形式進行存儲,以便要顯示具體URL地址時查
43、找,調(diào)用和顯示。其數(shù)據(jù)矩陣初始化的編程代碼表示如圖4-3: 圖4-3 url存儲數(shù)組初始化代碼 4.2 K均值算法的實現(xiàn) 4.2.1 分配一個URL向量到每個類中作為初始化類的平均URL向量 按照K均值算法的描述,我們要事人為指定分類的個數(shù)K,并隨機地抽取其中的K個向量做為每一類的平均向量,因為第一次分配后每個分類中只有一個向量,所以這K個向量便為K個類的平均向量。在本次設計中并沒有真正隨機分配,而是將第1,N,2N,…n個分別作為第一次初始化的各類的平均向量。在系統(tǒng)中的程序編碼實現(xiàn)如圖4-4: 圖4-4 K均值初始化的各類的中心向量代碼 以上代碼段中,變量kjm代
44、表要進行分類的URL個數(shù),定義兩個m_knum維的字符串數(shù)組*kstr,*kstr1,是由于在后面的分類過程中需要循環(huán)地將kim個URL行向量分配到m_knum個類中,在這個基礎上要再次計算分配后的每個類的向量的平均值,就需要知道分配到每個類的的URL行向量是哪幾個,其中*kstr1記錄的是變化后的各類中URL行向量的序號,而*kstr記錄的是變化前各類中的URL行向量的序號。同時這兩個數(shù)組也是后面判斷循環(huán)結(jié)束的條件因子之一。 4.2.2 循環(huán)迭代分類過程 給定每一分類的初始URL行向量后,我們就可以將kjm個URL行向量進行篩選分配到每個類中,并且計算每個新類的平均URL行向量,記下分類
45、的情況,之而要進行新類與舊類的對比,若分類有更新說明聚類過程仍未結(jié)束,則繼續(xù)循環(huán)迭代進行分類,直到分類結(jié)束。其中編程代碼如圖4-5所示: 圖4-5 K均值循環(huán)分類過程代碼 上面的程序段中包含兩段代碼用一句話帶過,具體的實現(xiàn)方式在下列進行說明: 進行一次遍歷,將URL分配到各個相應的類中的代碼段如圖4-6所示: 圖4-6 URL分配到各個相應的類中的代碼 計算平均值向量的過程,從前面定義的字符串數(shù)組*str中取出對應的第j類中包含的URL行向量對應的行號,將其取出,將j類中包含的所有URL行向量的對應元素值相加再除以URL的個數(shù)算出分配后類j的平均向量的每個元素
46、值,從而得出分配后每個類的平均向量,為下一次分配作準備,其編程代碼實現(xiàn)如圖4-7: 圖4-7 計算分配后各類的平均向量 4.2.3 聚類結(jié)果顯示 最后完成聚類,并進行結(jié)果顯示,顯示的結(jié)果如圖4-8所示,因為軟件第上顯示窗口無法將分類全部顯示出來,只好進行再次顯示,雙擊每一條分類,則進行完全顯示,在二次結(jié)果顯示的窗口中單擊“詳細URL地址列表”則進行對應的詳細的URL地址顯示,其運行結(jié)果及界面如圖4-8所示: 圖4-8 K均值運行結(jié)果顯示窗口 我們看到第三行中分類后含的URL個數(shù)沒能完全顯示出來,雙擊此行則出現(xiàn)二次顯示窗口,如圖4-9: 圖4-9 K均值二
47、次顯示窗口 在二次查看窗口中,我們?nèi)允侵荒芸捶诸惡?,每個類中包含的URL的對應編號,而未能查看具體的URL地址,單擊“詳細URL列表”,則進行URL編號和地址的詳細顯示,如圖4-10: 圖4-10 K均值具體url顯示窗口 4.3 Hamming聚類算法實現(xiàn) 4.3.1 Hamming算法描述 如前所述,URL-IP矩陣M的行向量M[.,j]反映了客戶對本站點的不同頁面的訪問情況,如果客戶對某些頁面的訪問情況相同或相似,那么,這些頁面理應為相關頁面,可以聚為一類。 聚類時,同樣先對URL-IP關聯(lián)矩陣 M進行預處理,去掉所含元素值都為0的行向量,在本次設計中無考慮此情況,因
48、為如果行向量值為0,則說明沒有任何用戶訪問此網(wǎng)頁,那就不在我們的考慮之內(nèi),我們所研究的是用戶所訪問的網(wǎng)頁的聚類。對于M[i,j]>0,可先令M[i,j]=1,再根據(jù)hamming距離公式計算并構(gòu)造出行向量間的距離矩陣。在此矩陣中,表示第i個行向量和第j個行向量之間的Hamming距離,對角元素值為0. 接下來根據(jù)閾值公式求URL-URL關聯(lián)矩陣的閾值: 對于,如果<,那么就將第i個URL和所有滿足這個條件的第j個URL劃分為一個類。 4.3.2 構(gòu)造行向量間的距離矩陣 由于本次設計不考慮URL行向量值為0的情況,所以可以根據(jù)HamU_I矩陣通過Hamming距離公式直接構(gòu)造出UR
49、L行向量間的距離矩陣,其編程實現(xiàn)過程如圖4-11所示: 圖4-11 構(gòu)造URL-URL關聯(lián)矩陣代碼 4.3.3 求URL行向量間距離矩陣的閾值 從已經(jīng)構(gòu)造好的行向量間距離矩陣中,根據(jù)閾值的計算公式,我們可以算出URL行向量矩陣的閾值,閾值是整個聚類過程的唯一,重要的參考指標,所以說閾值取值情況將決定Hamming聚類的結(jié)果的精確與否。所以在閾值的求解上,我們將公式可調(diào)化,也就是說閾值的求值公式中的某些參數(shù)的值可以由用戶來進行調(diào)整,使聚類的結(jié)果滿足用戶的最終需求,其編程中的實現(xiàn)過程如圖4-12所示: 圖4-12 Hamming閾值求解代碼 4.3.4 Hammi
50、ng聚類算法核心代碼段 由于Hamming算法是一個需要對分類中的每個值進行對應向量代號進行循環(huán)再分類,其工作時間復雜度較高,因此,本次設計從i=0著手分出第一類,然后作一次數(shù)據(jù)優(yōu)化,去掉被其包含的子類。由于i=0對應的行向量kcl[0][j]所包含的元素個素是最多的,有hjm-1個,如果元素值kcl[0][j]為1的數(shù)目多,則分出的第一類元素個數(shù)就比較多,可能包含的子類就更多,進行的數(shù)據(jù)優(yōu)化的效果就越好。下面是求出第一類的代碼分析,如圖4-13所示: 圖4-13 求出第一類的代碼 求出第一個類后,我們對數(shù)據(jù)矩陣進行優(yōu)化,我們把存在不屬于第一個類的行向量i作記號kcl[i][
51、i]=1,而行向量j上所含元素都在第一類中已存在的,我們說它完全包含于第一類,我們也作標記kcl[j][ji]=0;經(jīng)過數(shù)據(jù)優(yōu)化后,我們只對kcl[i][i]值為1的行向量進行分類,同時當分出第二類時我們也作同樣的數(shù)據(jù)優(yōu)化,再次排除掉無效的行直到分類結(jié)束。下面是編程代碼的解析,如圖4-14所示: 圖4-14 分出第一類后的數(shù)據(jù)優(yōu)化代碼 中間分類及分類后的數(shù)據(jù)優(yōu)化代碼這里省略,原理和第一個類的分類過程是一樣的。 4.3.5 Hamming聚類的結(jié)果顯示 結(jié)果顯示與K均值的顯示界面及功能都基本相同,這里不再闡訴設計思想。顯示如圖4-15,圖4-16,圖4-17所示: 圖4
52、-15 Hamming聚類窗口 圖4-16 Hamming聚類結(jié)果顯示窗口 圖4-17 Hamming聚類二次顯示窗口 4.4聚類結(jié)果分析 4.4.1 聚類的精確度分析 根據(jù)實現(xiàn)的結(jié)果,本次設計將用戶訪問的URL地址分為以下9個大類: (1.)"GET /skins/……" (2.)"GET /images/……" (3.)"GET /zh/……" (4.)"GET /xywz/……" (5.)"GET /h……" (6.)"GET /xxq/……" (7.)"GET / pqu /……" (8.)"GET /fujian/……" (9.)其它
53、我們根據(jù)URL地址的基本結(jié)構(gòu),自定義一個衡量聚類精確度的方法:設聚類的結(jié)果分為n類,去掉只含一個元素的類,誤分率大于50%的類和含大量元素的類(因為如果只含一個元素也就沒有正確與否之說,更不用談什么精確度了,如果誤分率大于50%,則我們不會去利用這樣的分類結(jié)果,而含有大量元素的類,我們說這種類在本設計的兩種算法中都會出現(xiàn),是不可避免的,特別是在數(shù)據(jù)量巨大時,由于這樣的類含的元素太多,肯定會包含以上所說的多種URL地址,這樣的情況下,我們也無法去解析它的精確度),剩下的分類數(shù)為N,我們把分析的對象定為含有一定數(shù)量元素的這樣一些類。設類i中共有y個URL,其中有x個URL與類中其它大部分元素是不同
54、的,我們說這x個URL被錯分到類i中,這樣我們定義一個精確度值=1-x/y,=x/y,而總的分類精確度 下面我們進行兩種聚類算法的精確度分析: 1.Hamming聚類精確度計算:根據(jù)聚類結(jié)果顯示:當輸入數(shù)據(jù)為“Ip_Url.txt”時,結(jié)果總共分為46類,其中去掉大量元素類7個,剩下可分析類39個,下面列出各類的精確度(未寫出的都是全部正確的): w=1/11; w=1/11; w=1/6; w=2/18; w=1/3; w=1/10; w=1/34; w=3/39; 計算得出R97.4% 2.K均值聚類精確度計算:根據(jù)聚類結(jié)果顯示:當輸入數(shù)據(jù)為“Ip_Url.tx
55、t”時,與Hamming分類數(shù)一樣設為46類,其中去掉大量元素類和單元素類17個,剩下可分析類29個,下面列出各類的精確度(未寫出的都是全部正確的): w=4/17; w=2/11; w=7/43; w=2/15; w=1/36; w=8/38; w=1/21; w=2/11; w=6/23 w=2/17; w=3/10; w=1/40; w=5/26; w=6/21; 計算得出R91.8% 為了使比較更為直觀,我們將兩個算法精度曲線描繪出來,如下圖4-18分類精確度曲線所示: 圖4-18 Kmeans與Hamming聚類確精度對比曲線 其中
56、縱坐標為每一分類中的分類精確度,最高為1,最小為0.5。前面定義精確度的時候說過,如果分類精確度小于0.5,也就是誤分率大于50%,那么這一分類我們認為是不理想的,不會采納,所以排除在分析對象之外。橫坐標為上面所對應的可分析分類的類號,相互比較,我們清楚地看到在本設計相同的輸入中,當分類的個數(shù)一樣時,Hamming聚類的精確度比K均值聚類的精確度要高,同時,我們也看到二者的精確度都在90%以上,這說明兩種聚類的算法都是有效的,都能夠較好地將具有相同或相似的URL聚在同一類。 4.4.2 Hamming閾值對聚類結(jié)果的影響 前面我們提到Hamming閾值是分類過程中唯一也是最重要的衡量指
57、標,那么閾值的變化對整個聚類的結(jié)果會有什么樣的影響呢?下面跟據(jù)實驗數(shù)據(jù)的對比和分析,我們將指出Hamming閾值的變化對聚類結(jié)果的具體影響。 我們分3種情況,第一種為閾值與公式計算所得一樣不發(fā)生改變和調(diào)整;第二種為通過系統(tǒng)提供的閾值調(diào)整功能讓閾值變小;第三各為通過系統(tǒng)提供的閾值調(diào)整功能讓閾值變大. 下面比較三種情況下聚類的情況: 閾值不變:此時分類數(shù)目為46,閾值為2.07301,閾值參數(shù)未作調(diào)整,如圖4-19所示: 圖4-19 閾值不變時的Hamming聚類結(jié)果 此時分析聚類的結(jié)果,去掉大量元素類7個,剩下可分析類39個,下面給出可分析類的精確
58、度曲線,如圖4-20所示: 圖4-20 閾值不變時Hamming聚類精確度曲線 2.閾值變大:通過對閾值參數(shù)N作調(diào)整使閾值變大,調(diào)整參數(shù)N為1.5,閾值為3.10952,分類數(shù)目43如圖-21所示: 圖4-21 閾值變大后Hamming聚類的結(jié)果 此時分析聚類的結(jié)果,去掉大量元素類7個,誤分率超過50%的少量元素類3個,剩下可分析類33個,下面給出可分析類的精確度曲線,如圖4-22所示: 圖4-22 閾值變大后Hamming聚類的精確度曲線 3.閾值變小:通過調(diào)整閾值參數(shù)N使閾值變小,調(diào)整參數(shù)N為0.85,閾值為1.76206,分類的數(shù)目為85,如圖4-2
59、3所示: 圖4-23 閾值變小后的Hamming聚類結(jié)果 此時分析聚類的結(jié)果,去掉誤分率大于50%的少量元素類3個,大量元素類30個,剩下可分析類52個,下面給出可分析類的精確度曲線,如圖4-24所示: 圖4-24 閾值變小后Hamming聚類的精確度曲線 通過對三種情況的分類精確度的分析,我們看到,當閾值變大時,分類的數(shù)目減少了,這說明分類變得比較粗糙,因此有可能造成分類精確度較低。通過精確度曲線圖也證實了精確度比較差;而如果調(diào)小閾值,我們發(fā)現(xiàn)分類的數(shù)目變大,且幅度比較高,但是同時產(chǎn)生的大量元素類的數(shù)目也有較大的提高,這說明分類雖然多了,詳細了,但也使非利用類
60、的數(shù)目變大(這是非利用類指的是大量元素類),可分析類的數(shù)目也有提高,而且從精確度曲線圖上,我們可以看出大部分分類的精確度都在90%以上,整條曲線比較平穩(wěn),精確度較高,可以達到較為理想的聚類效果。下面我們用一個表較為直觀地顯示三者的對比結(jié)果,如表4-25所示: 表4-1 閾值的變化對分類精確度的影響情況 閾值變化 總分類數(shù)變化 可析類數(shù)變化 大量元素類數(shù) 誤分率高類數(shù) 分類精確度 變小 85變大 52變大 30變大 3 較好 不變 46 39 7 0 一般 變大 43 33 7 3 較差 4.4.3 分類數(shù)目變化對K均值聚類結(jié)果的影響
61、 由于K均值聚類是根據(jù)我們自定義的數(shù)目來進行分類的,但是因為我們隨機分配給每個類的初始量不一定就是不現(xiàn)于其它類的量,有可能在第一次分配時就使這一類為空,這樣就使分類無法正常進行,于是在本設計中,如果某次分配后發(fā)現(xiàn)有空的類,則會把初始分量再次賦給它,等待下次的分配,其編程代碼在上文有說明,參看圖4-5。那么下面我們將根據(jù)實驗得出的數(shù)據(jù)對分類數(shù)目進行三種變化,從而分析分類數(shù)目變化對K均值聚類結(jié)果的影響。為了能和Hamming聚類結(jié) 果進行比較,K均值分類的數(shù)目將和上面Hamming聚類三種情況下分類的數(shù)目取相同的數(shù)據(jù)。 分類數(shù)目不變:分類數(shù)目為46,如圖4-25所示: 圖4-25 分
62、類數(shù)目不變時的K均值聚類結(jié)果 下面我們對分類的精確度進行分析,去掉大量元素類1,單元素類13,誤分率較大類3,剩下可分析類29,其精確度曲線如圖4-26所示: 圖4-26 分類數(shù)目不變時的K均值聚類精確度曲線 分類數(shù)目變大:分類數(shù)目為85,如圖4-27所示: 圖4-27 分類數(shù)目變大時的K均值聚類結(jié)果 下面我們對分類的精確度進行分析,去掉大量元素類1,單元素類32,誤分率較大類4,剩下可分析類43,其精確度曲線如圖4-28所示: 圖4-28 分類數(shù)目變大時的K均值聚類精確度曲線 3.分類數(shù)目變小:分類數(shù)為43,如圖4-29所示: 圖4-2
63、9 分類數(shù)目變小時的K均值聚類結(jié)果 下面我們對分類的精確度進行分析,去掉大量元素類1,單元素類14,誤分率較大類6,剩下可分析類22,其精確度曲線如圖4-30所示: 圖4-30 分類數(shù)目變小時的K均值聚類精確度曲線 通過三種情況的對比分析,我們可以看到,當分類數(shù)目變大時單元素類大量增加,但是分類的精確度確是有所提高,分類精確度曲線出現(xiàn)的都較陡的坡度,這說明很少有連續(xù)的誤分類,只有個別誤分類穿插出現(xiàn);而當分類數(shù)目變小時,精確度并不是有很大的變化,但是從坡度上我們可以看出坡度都較緩,這說明會有大量的連續(xù)的誤分類,所以其實上當分類數(shù)變小時精確度有所下降。下面用表格較為直觀地進行說明
64、,如表4-2所示: 表4-2 分類數(shù)目的變化對分類精確度的影響 分類數(shù)目變化 單元素類數(shù) 大量元素類數(shù) 可分析類數(shù) 誤分率高類數(shù) 分類精確度 43變小 14無明顯變化 1無變化 22減小 6增大 降代 46不變 13 1 29 3 一般 85變大 32大量增多 1無變化 43增多 4變化不大 增高 4.4.4 兩種聚類方法的對比總結(jié) 通過以上對兩種聚類方法的結(jié)果進行詳細的對比和分析,我們看到,在相同分類數(shù)的情況下,Hamming聚類的精確度要比K均值的分類精確度高。但是兩種聚類的算法,在相應的參數(shù)選擇好的情況下,如Hamming閾值
65、的調(diào)整,和K均值的分類數(shù)目,如果參數(shù)選得好都可以達到較為滿意的聚類結(jié)果。此次通過兩種算法K均值算法和Hamming算法分別來對網(wǎng)頁進行分類,其中Hamming算法的設計是參照宋擒豹 沈鈞毅關于Web日志高效多能挖掘算法中的Hamming聚類算法[12].在本次實驗中,對于原作者對Hamming閾值的計算公式進行了調(diào)整。在實驗過程中,根據(jù)實驗的數(shù)據(jù),若根據(jù)原來的Hamming閾值計算公式求閾值,會導致最后的分類數(shù)目極少,甚至只有一類。因此,在本次實驗中,原作者所提的閾值公式 [12] 在本次設計中并不合適,在調(diào)適運行過程中,本次設計對其公式進行改進 最后使分類能夠順利進行,而且效果也比
66、較理想。此次驗證性實驗證時,Hamming算法中的閾值是要根據(jù)不同情況下的輸入進行相應的調(diào)節(jié),才能使分類更加精準有效,同時本次設計及實驗結(jié)果也說明了兩種算法都是有效的聚類算法,都可以較理想地進行聚類分析。 致謝 在這次畢業(yè)設計過程中,首先感謝白清源教授在算法上的詳細解釋,在算法資料上的提供,在論文格式及要求上的檢查和改正。感謝林鑫顯在系統(tǒng)實現(xiàn)過程的幫助,感謝身邊同學在設計過程中的鼓勵與幫助。 參考文獻 [1] 高新波.模糊聚類分析及其應用.西安:西安電子科技大學出版社.2004:23-45. [2] 李恒峰,李國輝.基于內(nèi)容的音頻檢索與分類.計算機工程與應用.2000.7. [3](加)韓家煒,堪博 著,范明,孟小峰 譯.數(shù)據(jù)挖掘概念與技術.北京:機械工業(yè)出版社.2007:18-90. [4]劉書香,盧才武.數(shù)據(jù)挖掘中的客戶聚類分析及其算法實現(xiàn).《信息技術》.2004年1月,第28卷第1期,PP.4-10. [5] 尹松,周永叔,李陶深.數(shù)據(jù)聚
- 溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 市教育局冬季運動會安全工作預案
- 2024年秋季《思想道德與法治》大作業(yè)及答案3套試卷
- 2024年教師年度考核表個人工作總結(jié)(可編輯)
- 2024年xx村兩委涉案資金退還保證書
- 2024年憲法宣傳周活動總結(jié)+在機關“弘揚憲法精神推動發(fā)改工作高質(zhì)量發(fā)展”專題宣講報告會上的講話
- 2024年XX村合作社年報總結(jié)
- 2024-2025年秋季第一學期初中歷史上冊教研組工作總結(jié)
- 2024年小學高級教師年終工作總結(jié)匯報
- 2024-2025年秋季第一學期初中物理上冊教研組工作總結(jié)
- 2024年xx鎮(zhèn)交通年度總結(jié)
- 2024-2025年秋季第一學期小學語文教師工作總結(jié)
- 2024年XX村陳規(guī)陋習整治報告
- 2025年學校元旦迎新盛典活動策劃方案
- 2024年學校周邊安全隱患自查報告
- 2024年XX鎮(zhèn)農(nóng)村規(guī)劃管控述職報告