摘 要:隨著網絡信息技術的快速發展,面對網絡中海量數據的挖掘存在著計算能力和存儲空間兩方面的限制,云計算技術可以有效地解決數據挖掘中出現的這些問題。本文介紹了云計算的關鍵技術,數據挖掘算法的分類以及云計算平臺下的數據挖掘算法。
關鍵詞:云計算;數據挖掘;MapReduce
隨著互聯網信息技術的飛速發展,網絡中的信息量、數據量越來越龐大,而且這些大量的信息數據并非簡單整齊地排列在數據庫中,它們具有動態、異構、分布廣等特點,分析與處理這些數據的復雜度高,計算能力和存儲空間方面不容易達到要求,給現有的數據挖掘帶來了難題。云計算可以有效地解決這個問題,它是數據管理技術發展的必然趨勢。
1 云計算及其關鍵技術
云計算技術是近年來新興起的共享型編程架構方法,它是由傳統的網格計算和并行計算發展而來的,本質上是一種分布式并行計算技術,它所處理的數據并不是運行在本地機器上,而是存儲在大規模服務器集群中。
云計算技術的基本原理是通過遠程服務訪問大量分布式計算機組成的服務器集群,為互聯網用戶提供計算、存儲、軟硬件等服務,云計算系統可以按照用戶的需求來分配資源并根據任務的優先級別訪問計算機和存儲系統,從而提高了對軟硬件資源的利用率。
2 數據挖掘算法分類
通過數據挖掘去發現知識的模式一般有兩種,分別是統計分析型數據挖掘和預測決策型數據挖掘,兩類挖掘模式都有各自經典的算法,并且從不同視角可以有以下不同的分類標準。
2.1 根據發現的知識種類分類
根據數據挖掘發現的知識種類可將數據挖掘算法分為:數據總結、數據聚類、關聯規則發現、序列模式發現、分類或預測模型知識發現、依賴關系或依賴模型發現、異常和趨勢發現等。
2.2 根據挖掘的數據庫種類分類
根據挖掘的數據庫種類可以分為基于各種數據庫的挖掘算法:關系型數據庫、面向對象數據庫、空間數據庫、文本數據庫、多媒體數據庫、異質數據庫、遺留數據庫等,以及基于數據倉庫和基于Web的數據挖掘算法等。
2.3 根據挖掘方法采用的技術分類
根據數據挖掘方法采用的技術可以將數據挖掘算法分為:統計分析、機器學習、模式識別、面向數據庫或數據倉庫技術、可視化技術和神經網絡等。
基于云計算的數據挖掘算法是在以上這些數據挖掘算法的基礎上,采用云計算平臺實現的數據挖掘算法。各挖掘算法對數據類型的要求是不同的,它不可能會適應所有數據類型的挖掘應用,所以我們在考慮不同數據類型的挖掘和具體的應用時,往往要結合多方面的因素來考慮算法的優缺點,以便能夠采用多種算法實現有效的數據挖掘。
3 云計算平臺下的數據挖掘算法
MapReduce是一種基于云計算的并行編程模型,它采用函數式的編程思想,將整個模型的計算過程分為映射過程Map和聚集處理過程Reduce。其中,Map階段負責數據拆分,Reduce階段負責數據歸并。想要將經典的數據挖掘算法運行在云平臺上,算法本身并不需要太大的變化,關鍵在于要將算法按照Map/Reduce框架合理的并行化,以及將并行化后的算法部署在云計算環境中,使得它可以加載云存儲環境中的數據并進行運算。
3.1 基于Map/Reduce的Apriori算法執行過程
⑴主進程基于(K-1)-項頻繁項集遍歷事務數據庫,并生成K-項候選集,然后由Map/Reduce框架將此候選集分發到各個計算節點;⑵每個Map節點處理一個數據分塊,并計算當前分配到數據分塊的K-項候選集的支持數,此時Map/Reduce框架會在數據分塊和Map節點之間持續調度,直到所有的分塊數據處理完畢為止;⑶Reduce節點合并來自所有Map節點處理的數據,獲得全局K-項候選集的支持數,并基于此支持數生成(K+1)-項頻繁項集;⑷主進程通過遍歷事務數據庫來決定該任務是否已經完成。
3.2 基于Map/Reduce的K-Means算法執行過程
⑴隨機選擇k個初始聚類中心,同時將這些初始聚類中心保存到OriginalCluster[]中,并將其進行數據分塊,根據計算節點集群的情況,將此分塊分配給各個計算節點;⑵在Map階段計算最近距離和總數,同時在Map/Reduce框架下,把鍵值對
3.3 基于Map/Reduce的PageRank算法執行過程
⑴Map階段讀入數據文件集中的每行數據,把這些數據進行簡單的格式處理,并拆分成
4 結束語
基于云計算數據挖掘是當今計算機界的熱門研究領域,其研究成果應用前景廣闊且價值巨大。隨著云計算技術的進一步發展,必將對數據挖掘帶來更多新的突破和更好的技術支持。
[參考文獻]
[1]劉鵬.云計算[M].北京:電子工業出版社,2010.
[2]李軍華.云計算及若干數據挖掘算法的MapReduce化研究[D].成都:電子科技大學,2010.