時間:2023-03-17 18:10:52
導言:作為寫作愛好者,不可錯過為您精心挑選的10篇數據挖掘論文,它們將為您的寫作提供全新的視角,我們衷心期待您的閱讀,并希望這些內容能為您提供靈感和參考。
隨著信息技術迅速發展,數據庫的規模不斷擴大,產生了大量的數據。但大量的數據往往無法辨別隱藏在其中的能對決策提供支持的信息,而傳統的查詢、報表工具無法滿足挖掘這些信息的需求。因此,需要一種新的數據分析技術處理大量數據,并從中抽取有價值的潛在知識,數據挖掘(DataMining)技術由此應運而生。
一、數據挖掘的定義
數據挖掘是指從數據集合中自動抽取隱藏在數據中的那些有用信息的非平凡過程,這些信息的表現形式為:規則、概念、規律及模式等。它可幫助決策者分析歷史數據及當前數據,并從中發現隱藏的關系和模式,進而預測未來可能發生的行為。數據挖掘的過程也叫知識發現的過程。
二、數據挖掘的方法
1.統計方法。傳統的統計學為數據挖掘提供了許多判別和回歸分析方法,常用的有貝葉斯推理、回歸分析、方差分析等技術。貝葉斯推理是在知道新的信息后修正數據集概率分布的基本工具,處理數據挖掘中的分類問題,回歸分析用來找到一個輸入變量和輸出變量關系的最佳模型,在回歸分析中有用來描述一個變量的變化趨勢和別的變量值的關系的線性回歸,還有用來為某些事件發生的概率建模為預測變量集的對數回歸、統計方法中的方差分析一般用于分析估計回歸直線的性能和自變量對最終回歸的影響,是許多挖掘應用中有力的工具之一。
2.關聯規則。關聯規則是一種簡單,實用的分析規則,它描述了一個事物中某些屬性同時出現的規律和模式,是數據挖掘中最成熟的主要技術之一。關聯規則在數據挖掘領域應用很廣泛適合于在大型數據集中發現數據之間的有意義關系,原因之一是它不受只選擇一個因變量的限制。大多數關聯規則挖掘算法能夠無遺漏發現隱藏在所挖掘數據中的所有關聯關系,但是,并不是所有通過關聯得到的屬性之間的關系都有實際應用價值,要對這些規則要進行有效的評價,篩選有意義的關聯規則。
3.聚類分析。聚類分析是根據所選樣本間關聯的標準將其劃分成幾個組,同組內的樣本具有較高的相似度,不同組的則相異,常用的技術有分裂算法,凝聚算法,劃分聚類和增量聚類。聚類方法適合于探討樣本間的內部關系,從而對樣本結構做出合理的評價,此外,聚類分析還用于對孤立點的檢測。并非由聚類分析算法得到的類對決策都有效,在運用某一個算法之前,一般要先對數據的聚類趨勢進行檢驗。
4.決策樹方法。決策樹學習是一種通過逼近離散值目標函數的方法,通過把實例從根結點排列到某個葉子結點來分類實例,葉子結點即為實例所屬的分類。樹上的每個結點說明了對實例的某個屬性的測試,該結點的每一個后繼分支對應于該屬性的一個可能值,分類實例的方法是從這棵樹的根結點開始,測試這個結點指定的屬性,然后按照給定實例的該屬性值對應的樹枝向下移動。決策樹方法是要應用于數據挖掘的分類方面。
5.神經網絡。神經網絡建立在自學習的數學模型基礎之上,能夠對大量復雜的數據進行分析,并可以完成對人腦或其他計算機來說極為復雜的模式抽取及趨勢分析,神經網絡既可以表現為有指導的學習也可以是無指導聚類,無論哪種,輸入到神經網絡中的值都是數值型的。人工神經元網絡模擬人腦神經元結構,建立三大類多種神經元網絡,具有非線形映射特性、信息的分布存儲、并行處理和全局集體的作用、高度的自學習、自組織和自適應能力的種種優點。
6.遺傳算法。遺傳算法是一種受生物進化啟發的學習方法,通過變異和重組當前己知的最好假設來生成后續的假設。每一步,通過使用目前適應性最高的假設的后代替代群體的某個部分,來更新當前群體的一組假設,來實現各個個體的適應性的提高。遺傳算法由三個基本過程組成:繁殖(選擇)是從一個舊種群(父代)選出生命力強的個體,產生新種群(后代)的過程;交叉〔重組)選擇兩個不同個體〔染色體)的部分(基因)進行交換,形成新個體的過程;變異(突變)是對某些個體的某些基因進行變異的過程。在數據挖掘中,可以被用作評估其他算法的適合度。
7.粗糙集。粗糙集能夠在缺少關于數據先驗知識的情況下,只以考察數據的分類能力為基礎,解決模糊或不確定數據的分析和處理問題。粗糙集用于從數據庫中發現分類規則的基本思想是將數據庫中的屬性分為條件屬性和結論屬性,對數據庫中的元組根據各個屬性不同的屬性值分成相應的子集,然后對條件屬性劃分的子集與結論屬性劃分的子集之間上下近似關系生成判定規則。所有相似對象的集合稱為初等集合,形成知識的基本成分。任何初等集合的并集稱為精確集,否則,一個集合就是粗糙的(不精確的)。每個粗糙集都具有邊界元素,也就是那些既不能確定為集合元素,也不能確定為集合補集元素的元素。粗糙集理論可以應用于數據挖掘中的分類、發現不準確數據或噪聲數據內在的結構聯系。
8.支持向量機。支持向量機(SVM)是在統計學習理論的基礎上發展出來的一種新的機器學習方法。它基于結構風險最小化原則上的,盡量提高學習機的泛化能力,具有良好的推廣性能和較好的分類精確性,能有效的解決過學習問題,現已成為訓練多層感知器、RBF神經網絡和多項式神經元網絡的替代性方法。另外,支持向量機算法是一個凸優化問題,局部最優解一定是全局最優解,這些特點都是包括神經元網絡在內的其他算法所不能及的。支持向量機可以應用于數據挖掘的分類、回歸、對未知事物的探索等方面。
事實上,任何一種挖掘工具往往是根據具體問題來選擇合適挖掘方法,很難說哪種方法好,那種方法劣,而是視具體問題而定。
三、結束語
1.2CPU/GPU協同并行計算在諸多適用于高性能計算的體系結構中,采用通用多核CPU與定制加速協處理器相結合的異構體系結構成為構造千萬億次計算機系統的一種可行途徑。而在眾多異構混合平臺中,基于CPU/GPU異構協同的計算平臺具有很大的發展潛力。在協同并行計算時,CPU和GPU應各取所長,即CPU承擔程序控制,而密集計算交由GPU完成。另外,除管理和調度GPU計算任務外,CPU也應當承擔一部分科學計算任務[12]。新型異構混合體系結構對大規模并行算法研究提出了新的挑戰,迫切需要深入研究與該體系結構相適應的并行算法。事實上,目前基于GPU加速的數據挖掘算法實現都有CPU參與協同計算,只是討論的重點多集中在為適應GPU而進行的并行化設計上。實踐中,需要找出密集計算部分并將其遷移到GPU中執行,剩余部分仍然由CPU來完成。
1.3CUDA為了加速GPU通用計算的發展,NVIDIA公司在2007年推出統一計算設備架構(ComputeUnifiedDeviceArchitecture,CUDA)[10,13]。CUDA編程模型將CPU作為主機,GPU作為協處理器,兩者協同工作,各司其職。CPU負責進行邏輯性強的事務處理和串行計算,GPU則專注于執行高度線程化的并行處理任務。CUDA采用單指令多線程(SIMT)執行模式,而內核函數(kernel)執行GPU上的并行計算任務,是整個程序中一個可以被并行執行的步驟。CUDA計算流程通常包含CPU到GPU數據傳遞、內核函數執行、GPU到CPU數據傳遞三個步驟。CUDA不需要借助于圖形學API,并采用了比較容易掌握的類C/C++語言進行開發,為開發人員有效利用GPU的強大性能提供了條件。CUDA被廣泛應用于石油勘探、天文計算、流體力學模擬、分子動力學仿真、生物計算和圖像處理等領域,在很多應用中獲得了幾倍、幾十倍,乃至上百倍的加速比[13]。
1.4并行編程語言和模型過去幾十年里,人們相繼提出了很多并行編程語言和模型,其中使用最廣泛的是為可擴展的集群計算設計的消息傳遞接口(MessagePassingInterface,MPI)和為共享存儲器的多處理器系統設計的OpenMP[14]。OpenMP最初是為CPU執行而設計的。OpenACC[15]是計算機廠商為異構計算系統提出的一種新編程模型,其主要優勢是為抽象掉許多并行編程細節提供了編譯自動化和運行時系統支持。這使得應用程序在不同廠商的計算機和同一廠商不同時代的產品中保持兼容性。然而,學習OpenACC需要理解所有相關的并行編程細節。在MPI編程模型中,集群中的計算節點之間相互不共享存儲器;節點之間的數據共享與交互都通過顯式傳遞消息的方式實現。MPI成功應用于高性能科學計算(HPC)領域。現在很多HPC集群采用的是異構的CPU/GPU節點。在集群層次上,開發人員使用MPI進行編程,但在節點層次上,CUDA是非常高效的編程接口。由于計算節點之間缺乏共享存儲器機制,要把應用程序移植到MPI中需要做大量針對性分析和分解工作。包括蘋果公司在內的幾大公司在2009年共同開發了一套標準編程接口,稱之為OpenCL[16]。與CUDA類似,OpenCL編程模型定義了語言擴展和運行時API,使程序員可以在大規模并行處理中進行并行管理和數據傳遞。與CUDA相比,OpenCL更多地依賴API,而不是語言的擴展,這允許廠商快速調整現有編譯器和工具來處理OpenCL程序。OpenCL和CUDA在關鍵概念和特性上有諸多相似之處,因此CUDA程序員可以很快掌握OpenCL。
1.5MATLAB因提供豐富的庫函數庫以及諸多其他研究者貢獻和共享的函數庫,MATLAB是研究人員實現算法的常用平臺。通過封裝的數據容器(GPUArrays)和函數,MATLAB允許沒有底層CUDA編程能力的研究人員可以較容易獲得GPU計算能力,因此MATLAB較OpenCL更容易上手。截止準備本文時,2014版本的MATLAB提供了226個內置的GPU版本的庫函數。對于有CUDA編程經驗的人員,MATLAB允許直接集成CUDA內核進MATLAB應用。本文第四節的實驗亦基于MATLAB實現。
1.6JACKET引擎JACKET[17]是一個由AccelerEyes公司開發專門用于以MATLAB為基礎的基于GPU的計算引擎,其最新版本已經包含了高層的接口,完全屏蔽了底層硬件的復雜性,并支持所有支持CUDA的GPU計算,降低了進行CUDA開發的門檻。JACKET是MATLAB代碼在GPU上運行的插件。JACKET允許標準的MATLAB代碼能夠在任何支持CUDA的GPU上運行,這使得廣大的MATLAB及C/C++用戶可以直接使用GPU強大的計算能力進行相關應用領域的快速原型開發。JACKET包含了一套運行于MATLAB環境中優化并行計算的基礎函數庫。并且支持MATLAB數據類型,可將任何存儲于MATLABCPU內存中的變量數據轉換為GPU上的數據類型,對以往的MATLAB程序來說,只需更改數據類型,就能遷移到GPU上運行。本文的第四節的實驗亦基于JACKET在MATLAB上實現。
2相關工作綜述
2.1基于CPU的數據挖掘算法實現數據挖掘算法的研究一直很活躍,許多成熟和經典的算法已經實現在諸多研究或商用軟件包/平臺,例如開源的Weka[18]和KNIME,以及商用的IBM公司的PASWModeler(即之前SPSS公司的Clementine®)。這些軟件默認都是單機版本,可運行在普通PC或高性能服務器上,基于CPU的計算能力。為了適應目前大規模的計算,出現了基于Google公司提出的MapReduce[19]計算框架實現的開源數據挖掘平臺Mahout[20]。相關的研究起源于斯坦福大學AndrewNg研究組2006年的經典論著[21]。由于現有的算法需要先找到可“遷移”到MapReduce的方式,因此目前Mahout平臺上僅有幾個能支持分布式部署的數據挖掘算法,包括用于分類的樸素貝葉斯、隨機森林,用于聚類的k-Means,基于項目的協同過濾等。目前Mahout仍然是基于CPU的計算能力。
2.2聚類算法聚類是數據挖掘中用來發現數據分布和隱含模式的一種無監督學習,每個訓練元組的類標號是未知的,并且要學習的個數或集合也可能事先不知道。對于給定的數據集,聚類算法按照一定的度量,將數據對象分組為多個簇,使得在同一個簇中的對象之間具有較高的相似度,而不同簇中的對象差別很大[22-23]。k-Means算法是經典的基于距離/劃分的聚類分析算法,也是應用得最廣泛的算法之一,采用距離作為相似性的評價指標,即認為兩個對象距離越近,其相似度就越大。k-Means算法的流程如下[24]:輸入:簇的數目k和包含n個對象數據集D。輸出:k個簇的集合。方法:1)從D中任意選擇k個對象作為初始簇中心。計算每個數據對象到各簇中心的歐氏距離,將每個數據對象分配到最相似的簇中。2)重新計算每個簇中對象的均值。3)循環執行步驟2-3兩個步驟,直到各個簇內對象不再變化。上述算法步驟2屬于計算密度最大的部分,且具備并行化的條件。計算各個數據對象到各簇中心的歐氏距離和將數據對象分配到最近的簇的時候,數據對象之間都是相互獨立的,不需要進行交換,且沒有先后順序,后計算的對象不需要等待前一次計算的結果,僅在完成全部分配過程之后,才需要進行一次數據匯總。所以文獻[25]的作者們使用GPU并行優化了一維數據的k-Means算法的步驟2,并使用帶緩存機制的常數存儲器保存中心點數據,能獲得更好的讀取效率。文獻中還展示了實驗結果,在8600GT上取得了14倍左右的加速效果。DBSCAN屬于基于密度的聚類算法中最常被引用的,G-DBSCAN是它的一個GPU加速版本[26]。文獻[26]的實驗顯示較DBSCAN可以實現高達112倍的加速。BIRCH是經典的基于層次的聚類算法,文獻[27]中基于CUDA實現的GPU加速版本在實驗中獲得了高達154倍的加速。
2.3分類算法分類是數據挖掘中應用領域極其廣泛的重要技術之一,至今已經提出很多算法。分類算法[28]是一種監督學習,通過對已知類別訓練集的分析,從中發現分類規則,以此預測新數據的類別。分類算法是將一個未知樣本分到幾個已存在類的過程,主要包含兩個步驟:首先,根據類標號已知的訓練數據集,訓練并構建一個模型,用于描述預定的數據類集或概念集;其次,使用所獲得的模型對新的數據進行分類。近年來,許多研究已經轉向實現基于GPU加速分類算法,包括k-NN(k近鄰)分類算法[29],支持向量機分類算法[30],貝葉斯分類算法[31-32]等。kNN算法[33]是數據挖掘中應用最廣泛的一種分類算法,簡單易實現。它是一種典型的基于實例的學習法,將待判定的檢驗元組與所有的訓練元組進行比較,挑選與其最相似的k個訓練數據,基于相應的標簽和一定的選舉規則來決定其標簽。在ShenshenLiang等人的文章[34]指出,由于kNN算法是一種惰性學習法,對于每個待分類的樣本,它都需要計算其與訓練樣本庫中所有樣本的距離,然后通過排序,才能得到與待分類樣本最相鄰的k個鄰居。那么當遇到大規模數據并且是高維樣本時,kNN算法的時間復雜度和空間復雜度將會很高,造成執行效率低下,無法勝任大數據分析任務。所以加速距離的計算是提高kNN算法的核心問題。因為每個待分類的樣本都可以獨立地進行kNN分類,前后之間沒有計算順序上的相關性,因此可以采用GPU并行運算方法解決kNN算法串行復雜度高的問題。將計算測試集和訓練集中點與點之間的距離和排序一步采用GPU并行化完成,其余如判斷類標號一步難以在GPU上高效實現,由CPU完成。文獻[34]通過GPU并行化實現kNN算法,讓kNN算法時間復雜度大幅度減少,從而說明GPU對kNN算法的加速效果是非常明顯的。
2.4關聯分析算法關聯規則挖掘是數據挖掘中較成熟和重要的研究方法,旨在挖掘事務數據庫頻繁出現的項集。因此,挖掘關聯規則的問題可以歸結為挖掘頻繁項集[35]。關聯分析算法首先找出所有的頻繁項集,然后根據最小支持度和最小置信度從頻繁項集中產生強關聯規則。Apriori算法[36]是最有影響力的挖掘布爾關聯規則頻繁項目集的經典算法。Apriori算法使用逐層搜索的迭代方法產生頻繁項目集,即利用k頻繁項集來產生(k+1)項集,是一種基于生成候選項集的關聯規則挖掘方法。在劉瑩等人的文章[37]中指出,產生候選項和計算支持度,占據Apriori的大部分計算量。產生候選項的任務是連接兩個頻繁項集,而這個任務在不同線程之間是獨立的,所以這個過程適合在GPU上被并行化。通過掃描交易數據庫,計算支持度程序記錄一個候選項集出現的次數。由于每個候選項集的計數與其他項集的計數相對獨立,同樣適合于多線程并行。所以文獻[37]的作者們在實現Apriori時使用GPU并行化了產生候選項和計算支持度這兩個過程,取得了顯著的加速效果。文獻[38]是目前發現的對于在GPU上實現頻繁項集挖掘最全面細致的研究。他們使用的是早期的CUDA平臺,采用了bitmap和trie兩種數據結構來實現GPU的挖掘算法,并且根據不同數據集和支持度進行了算法性能的對比,均相對于CPU版本的算法獲得的一定的加速比。
2.5時序分析由于越來越多的數據都與時間有著密切的關系,時序數據作為數據挖掘研究的重要分支之一,越來越受到人們的重視。其研究的目的主要包括以下兩個方面:一是學習待觀察過程過去的行為特征;二是預測未來該過程的可能狀態或表現。時序數據挖掘主要包含以下幾個主要任務:數據預處理,時序數據表示,分割,相似度度量,分類,聚類等。這些任務中很多都涉及到相當大的計算量。由于問題規模的不斷擴大,并且對于實時性能的要求,時序數據挖掘的任務就必須要求充分地提高計算速度或者通過優化減少計算量。時序數據的表示有時候會采取特征來表示,這就涉及到了特征提取問題,當特征數量龐大的時候就需要進行維數約簡,主要的方法有奇異值分解法,離散小波變換。這些計算都涉及到很大的時間復雜度,為了減少計算的時間消耗,SheetalLahabar等人使用GPU加速SVD的計算,獲得了60多倍的加速效果[39]。動態時間彎曲(DynamicTimeWarping,DTW)起初被應用于文本數據匹配和視覺模式識別的研究領域,是一種相似性度量算法。研究表明這種基于非線性彎曲技術的算法可以獲得很高的識別、匹配精度。Berndt和Clifford提出了將DTW的概念引入小型時間序列分析領域,在初步的實驗中取得了較好的結果[40]。隨著問題規模的擴大,對于DTW的計算成為了時序數據挖掘的首先要處理的問題。在DTW中,搜索需要找出與訓練數據最近距離的樣本,這就需要搜索與每個訓練樣本的距離,這就可以很好的利用GPU進行并行化處理。DorukSart等人在對DTW加速的處理中,獲得了兩個數量級的加速效果[41]。而對于分類和聚類任務的加速,上面已經提到,這里不再累贅。
2.6深度學習深度學習雖然隸屬機器學習,但鑒于機器學習和數據挖掘領域的緊密聯系,深度學習必定將在數據挖掘領域獲得越來越多的應用。從2006年Hinton和他的學生Salakhutdinov在《科學》上發表的文章[42]開始,深度學習在學術界持續升溫。深度學習的實質是通過構建具有很多隱層的機器學習模型和海量的訓練數據,來學習更有用的特征,從而最終提升分類預測的準確性[43]。如何在工程上利用大規模的并行計算平臺來實現海量數據訓練,是各個機構從事深度學習技術研發首先要解決的問題。傳統的大數據平臺如Hadoop,由于數據處理延遲太高而不適合需要頻繁迭代的深度學習。神經網絡一般基于大量相似的神經元,故本質上可以高度并行化訓練;通過映射到GPU,可以實現比單純依賴CPU顯著地提升。谷歌搭建的DistBelief是一個采用普通服務器的深度學習并行計算平臺,采用異步算法,由很多計算單元獨立更新同一個參數服務器的模型參數,實現了隨機梯度下降算法的并行化,加快了模型訓練速度。百度的多GPU并行計算平臺克服了傳統SGD訓練不能并行的技術難題,神經網絡的訓練已經可以在海量語料上并行展開。NVIDIA在2014年9月推出了深度學習GPU加速庫cuDNN,可以方便地嵌入高層級機器學習框架中使用,例如Caffe[45]。cuDNN支持NVIDIA的全系列GPU,包括低端的TegraK1和高端的TeslaK40,并承諾可向上支持未來的GPU。
2.7小結并行化能帶來多少倍的加速取決于算法中可并行化的部分。例如,如果可并行部分的時間占整個應用程序執行時間的20%,那么即使將并行部分加速100倍,總執行時間也只能減少19.8%,整個應用程序的加速只有1.247倍;即使無限加速也只能減少約20%的執行時間,總加速不會超過1.25倍。對于一個數據挖掘(學習和預測)算法進行GPU加速實現,首先要思考是否存在可并行執行的部分,之后再結合GPU的架構特點進行針對性實現優化。然而,由于數據挖掘算法普遍是數據密集型計算,而GPU片內存儲容量有限,如何降低與內存交換數據集是一個要解決的關鍵問題。通過以上相關工作的分析,可以發現數據挖掘算法在GPU上的加速具有數據獨立,可并行化共同特征。本文提出數據挖掘算法在GPU上加速實現的一種解決思路:在大數據下,分析算法的性能瓶頸,從而確定算法中耗時大,時間復雜度高的部分,將此部分在GPU上執行,不耗時部分在CPU上串行執行,以達到加速效果。為了更充分利用GPU的并行計算的體系結構,可深入分析耗時大的部分,將具有數據獨立,可并行化的部分在GPU上并行執行,達到更進一步的加速效果。
3實踐和分析:協同過濾推薦
當前主要的協同過濾推薦算法有兩類:基于用戶(r-based)和基于項目(item-based)的協同過濾推薦算法。基于項目的協同過濾推薦算法[46-50]認為,項目間的評分具有相似性,可以通過用戶對目標項目的若干相似項目的評分來估計該項目的分值。基于用戶的協同過濾推薦算法認為,如果用戶對一些項目的評分比較相似,那么他們對其他項目的評分也比較相似。本文根據以上總結的算法特征圍繞兩種經典協同過濾算法的實現,通過大規模數據的實驗來驗證GPU相對于傳統CPU的優勢。
3.1算法實現
3.1.1基于CPU實現協同過濾推薦的兩類經典算法本文基于MATLAB實現CPU版本的基于用戶和基于項目的兩種經典協同過濾推薦算法。實現的步驟:1)數據表示:收集用戶的評分數據,并進行數據清理、轉換,最終形成一個mn的用戶-項目評分矩陣R,m和n分別代表矩陣中的用戶數和項目數,矩陣中的元素代表用戶對項目的評分值。2)最近鄰居搜索:主要完成對目標用戶/項目的最近鄰居的查找。通過計算目標用戶/項目與其他用戶/項目之間的相似度,算出與目標用戶/項目最相似的最近鄰居集。該過程分兩步完成:首先采用協同過濾推薦算法中運用較多的度量方法“Pearson相關系數”計算用戶/項目之間的相似度得到相應的相似度矩陣,其次是采用最近鄰方法找到目標用戶/項目的最近的K個鄰居,這些鄰居是由與目標相似度最高的一些用戶/項目組成的。3)產生推薦:根據之前計算好的用戶/項目之間的相似度,并使用相應的預測評分函數對用戶未打分的項目進行預測,得到預測評分矩陣,然后選擇預測評分最高的Top-n項推薦給目標用戶。4)性能評估:本研究擬采用平均絕對誤差MAE作為評價推薦系統預測質量的評價標準。MAE可以直觀地對預測質量進行度量,是最常用的一種方法。MAE通過計算預測的用戶評分與實際評分之間的偏差度量預測的準確性;MAE越小,預測質量越高。
3.1.2基于GPU實現協同過濾推薦的兩類經典算法在大數據下,協同過濾算法中主要的時間消耗在于相似度計算模塊,占了整個算法的大部分時間,且每個用戶/項目之間的相似度可以被獨立計算,不依靠其他用戶/項目,具備并行化的條件,所以在以下的實驗中,將相似度計算模塊在GPU上執行,其他部分在CPU上執行,進而提高整個算法的執行效率。使用MATLAB編程技術和JACKET編程技術在GPU上分別實現基于用戶和基于項目的兩種經典協同過濾推薦算法。實現步驟如下:1)數據表示:收集用戶的評分數據,并進行數據清理、轉換,最終形成用戶-項目評分矩陣。2)將收集的數據從CPU傳輸至GPU。3)對傳輸到GPU上的數據執行GPU操作,調用相關函數庫,采用公式(1)和(2)分別計算并獲取用戶/項目間的相似度矩陣。4)將GPU計算結果返回CPU中以便后續操作。5)采用公式(3)和(4)在CPU上分別獲取兩種經典算法的評分預測矩陣。6)選擇預測評分最高的Top-n項推薦給目標用戶。7)采用公式(5)求兩種經典算法的平均絕對誤差MAE。
3.2實驗結果與分析
3.2.1實驗環境本實驗所用的CPU是IntelXeonE52687W,核心數量是八核,主頻率是3.1GHz,內存大小是32GB;所使用的GPU是NVIDIAQuadroK4000,顯存容量是3GB,顯存帶寬是134GB/s核心頻率是811MHz,流處理器數是768個。使用Windows764位操作系統,編程環境使用最新的CUDA。
3.2.2實驗數據本實驗使用目前比較常用的MovieLens[56]數據集作為測試數據,該數據集從MovieLens網站采集而來,由美國Minnesota大學的GroupLens研究小組提供,數據集1包含943個用戶對1682部電影約10萬的評分數據,數據集2包含6040個用戶對3952部電影約100萬的評分數據,其中每個用戶至少對20部電影進行了評分。評分的范圍是1~5,1表示“很差”,5表示“很好”。實驗需要將每個數據集劃分為一個訓練集和一個測試集,每次隨機選出其中80%的評分數據用作訓練集,另20%用作測試集。
3.2.3實驗結果與分析本文采用加速比來比較算法的CPU實現和GPU實現的運行效率。計算加速比的方法如式(6)所示:在公式中,TimeCPU表示算法在CPU上的平均運行時間,TimeGPU表示算法在GPU上的平均運行時間。所有實驗中均取最近鄰居數為20,且各實驗結果均為5次獨立測試的平均值。圖2是關于兩個算法核心步驟的加速效果,而圖3則展示了算法整體加速效果。可以看出,(1)整體加速效果取決于核心步驟的加速效果,(2)GPU版本的算法在性能上較CPU版本有較顯著地優勢,且面對大數據集的加速效果更為明顯。例如在基于100萬條數據集時,Item-based的整體算法的加速比達到了14倍左右,而面對10萬條數據集時,加速比不到8倍。這可以解釋為GPU的多核優勢在面對大數據集時被更為充分地得到釋放;(3)算法對r-based和Item-based兩種算法的加速比相近。圖4是關于算法預測效果的評估,可以看出基于GPU加速的兩類經典協同過濾算法與基于CPU的兩類經典協同過濾算法在預測效果上相近。如果結合圖2和圖3,可獲得結論-能夠基于GPU獲得得可觀的計算加速而不犧牲應用效果。
3.3小結
本文通過使用JACKET加快開發過程。目前國內還缺少對JACKET的了解和應用,JACKET的出現為科學領域進行大規模計算仿真提供了新的研究方法,并使得研究人員可以在熟悉的MATLAB平臺上實現相關算法。
主要采用關聯規則與頻次分析相結合的數據挖掘方法,關聯規則旨在提示處方中存在的兩個或兩個以上腧穴之間的配伍形式,頻次分析能夠提供針灸治療某一疾病選用的腧穴及其頻繁程度。羅玲等在全面采集古代針灸治療中風文獻基礎上,重點進行了選穴的經絡癥狀關聯分析,發現針刺治療中風半身不遂使用腧穴頻次最多的為曲池、肩等手陽明經穴;肩、曲池、足三里、百會、風池配伍是最常用處方;多選用足少陽經和手足陽明經穴位。針刺治療中風不省人事使用腧穴頻次最多的為督脈百會穴、心包經中沖穴;風池、百會、曲池配伍或大椎、百會、風池配伍是最常用處方;經脈多選用督脈和足少陽、手陽明等陽經穴位。以上表明針灸治療中風遵循了辨證循經取穴的處方規律。何冬鳳等在全面采集現代針灸治療心絞痛臨床文獻基礎上,重點進行了選穴的經絡部位關聯分析。結果發現,心絞痛選穴分布在心包經、膀胱經、任脈、心經最多;選穴主要分布在上肢部、背部、胸部,上肢部用穴中近90%分布于心包經和心經,背部用穴近95%分布于膀胱經,胸部用穴全分布于任脈和心經。以上表明針灸治療心絞痛遵循了辨位循經取穴的處方規律。數據挖掘結果證實了古代、現代取穴規律和特點與針灸臨床理論的一般規律和特點是基本相符的。經絡辨證提示了經穴效應的循經性,特定穴的選用提示了經氣會聚狀態是腧穴發揮效應特異性的關鍵。
1.2腧穴運用規律的研究
1)神經系統疾病:趙凌等收錄了從先秦至清末的偏頭痛針灸專著,采用多層關聯規則挖掘算法,計算腧穴項集的支持度和置信度,發現手足少陽經脈的穴位絲竹空、風池、率谷、頷厭、頭臨泣出現頻次最高,偏頭痛處方配伍中以合谷一風池出現的頻次最高,少陽經的交會穴選用最多。楊潔等發現針灸治療貝爾面癱中,手足陽明經穴選用最多,重視局部穴位,配合遠端選穴,地倉穴為使用頻次最多經穴,交會穴、五輸穴、下合穴等特定穴運用廣泛。吳糧葶等挖掘針灸治療中風后遺癥的現代文獻,表明針灸治療中風后遺癥選穴以循經為基礎,首選陽經腧穴,分布主要在四肢,陽明經與少陽經的配伍關系最為常用,特定穴為選穴的主體,特別重視交會穴及肘膝關節以下的特定穴。李旗等挖掘出針刺治療格林巴利綜合征所選腧穴以足三里、合谷、曲池、陽陵泉、外關、三陰交使用頻率最高,經絡則以手足陽明經最為常用。CongMen等以不同針刺手法刺激小鼠足三里,構筑神經元混沌放電的復雜網絡來刻畫神經元放電時間序列的時變特性。
2)消化系統疾病:任玉蘭等通過多維、多層的關聯規則分析針刺治療功能性消化不良的古文獻,發現足三里、中脘、脾俞、胃俞、內關是治療FD最常用的主要腧穴,足三里與中脘相配是最主要穴位組配方式;取穴以循經為基礎,主要集中在任脈、膀胱經、脾胃經上;所選腧穴以特定穴為主體,遵循局部與遠端取穴相結合原則。張勇等以古文獻中治療鼓脹的經穴為原始數據,運用頻數統計及關聯規則算法,統計出古代治療鼓脹最常用經穴為足三里、水分、氣海等,通過2次priori關聯結果,最終確認組穴1(復溜,中風)和組穴2(復溜,脾俞)在臨床應用中具有強關聯性。鄭華斌等發現在治療腸易激綜合征中,特定穴的使用廣泛,其中以足三里為最,其次為天樞、上巨虛、中脘等,臟腑辨證取穴為針刺治療腸易激綜合征的重要原則,以足陽明胃經的足三里和天樞為主。
3)心血管系統疾病:何冬鳳等收集從先秦至清末有關胸痹的文獻,挖掘結果為歷代針灸治療胸痹以心包經選用頻次最高,陰經使用最為頻繁,特定穴的選用占有絕對優勢,如五輸穴原穴絡穴等,體現了循經取穴原則。高麗美通過頻次分析及關聯規則算法挖掘現代穴位貼敷治療心絞痛文獻,結果表明心俞、膻中、內關、厥陰俞使用頻次最多,腧穴選用以特定穴為主,俞募配伍使用最多。腧穴分部以胸腹部、背部腧穴為主;以足太陽膀胱經、任脈、手厥陰心包經選用頻次較高。
4)其他系統疾病:王洪彬等借鑒文獻計量學及數據挖掘的相關方法,對針灸治療更年期綜合征的常用腧穴及經絡進行描述性統計。發現現代治療女性更年期綜合征所選取的穴位中以三陰交、腎俞、關元、足三里使用頻率最高,膀胱經、任脈、脾經腧穴應用最為廣泛。王靜等發現源于149篇文獻的186條數據元素組成的阿片類藥依賴針灸治療數據庫中,用穴頻次居于前五的經穴足三里、三陰交、內關、合谷和神門構成了穴—穴,癥—穴,研究對象—穴,—穴和戒毒分期—穴等關聯規則中的穴位主體。
1.3刺灸方法的應用規律研究
賈春生等提出建立刺灸法文獻數據庫并設計文獻數據應用平臺,在此基礎上分析數據資料,建立刺灸法數據挖掘模型。此后,各學者運用數據挖掘方法對穴位注射、火針、穴位敷貼、穴位埋線、刺絡放血等刺灸法進行了特異性規律及特點的研究。刺灸法挖掘技術的應用中,頻次分析最為常用,能夠提供各類刺灸法治療不同疾病的頻繁程度,篩選其治療的優勢病種。張選平等發現穴位埋線療法主要優勢病種是內科的胃脘痛、肥胖病、癇證、哮喘、腹痛、面癱、便秘;外科的腰腿痛;皮膚科的牛皮癬和五官科的重瞼術。劉新等總結出放血針具共涉及9種,以三棱針使用頻次最高,將放血量人為分為6個等級,其中放血量為少許(少于0.1mL)的出現頻次最高,為401次。許曉康等發現水針療法在內科疾病治療中出現頻次最高,其次為外科疾病,相對于其他疾病,呃逆出現頻次最高。
1.4腧穴疾病譜的研究
吳糧葶等通過規范病癥、腧穴名稱,統計中風后遺癥所屬病癥的針灸病癥譜及總結針灸治療中風后遺癥的腧穴譜,結果顯示針灸病癥譜分布呈偏向性,腧穴譜遍布十四經脈,首選陽經腧穴,常用腧穴以陽明少陽經穴為主。邢晶晶等通過文獻比例、疾病比例對內關及其常見配伍的針刺病譜進行分析,總結出內關針刺病譜主要分布于脾胃系和心系;單穴內關針刺病譜中冠心病文獻比例最高;內關配伍足三里針刺病譜中呃逆文獻比例最高;內關配伍三陰交針刺病譜中焦慮抑郁文獻比例較高。黃宗雄等通過對清代及清以前昆侖穴相關文獻的整理,挖掘得出:昆侖單穴主治病證33種,篩選出2種優勢病證;配伍主治病證45種,篩選出19種優勢病證及其高頻配伍處方。陳文修等統計出百會單穴主治病證73種,篩選出22種優勢病證;配伍主治病證106種,篩選出21種優勢病證及其高頻配伍處方。
1.5名老中醫經驗挖掘
張華等對田從豁教授臨床病歷資料進行整理,發現田從豁教授臨床應用穴方共19個,陰交、肓俞、水分配伍使用頻次最多。陳裕收集當代名中醫針灸治療偏頭痛醫案247篇,總結出臨床與肝陽上亢型關聯密切的是足少陽膽經,血瘀阻絡型是手少陽三焦經,風邪上擾型是足太陽膀胱經,氣血不足型是足陽明胃經。并且,根據關聯規則挖掘提出的基本配穴規律與中醫經絡理論相契合。
1.6針灸臨床決策支持系統構建
針灸臨床決策支持系統對于實現針灸臨床決策模式的轉變有重大意義,基于數據挖掘方法,各學者在此方向進行了有益的探索。任玉蘭等提出建立疾病癥狀、證候癥狀關系的樣本數據庫、概率數學模型;再通過遺傳算法進行針灸治療最優方案的選擇,構建具有人工智能特征的針灸臨床循證診療決策輔助支持平臺。王佑林等利用復雜網絡的K核心思想并改進來尋找針灸治療疾病所用穴位的主穴信息,使其更好地適應中醫決策系統并提供支持。李云松等發現在決策系統中,使用一元字串和二元字串的特征更適合腧穴處方的自動生成,提出了一種基于K近鄰方法的腧穴處方自動生成算法,通過分析病歷庫中與目標現病史最相似K條病歷的穴位配方,來自動給出患者針灸治療的推薦方案。胡綠慧等提出使用Weka平臺進行編程,分析穴位的支持度與置信度,找出適用于針灸臨床方案決策研究的最好方法,用以指導臨床醫生的方案決策。
2分析與展望
2.1數據挖掘結果能夠與傳統的中醫學理論相契
合并提供新知《席弘賦》云:“凡欲行針須審穴。”可見臨證選穴及配伍的重要性。查閱近幾年針灸數據挖掘的結果,不難發現,針灸處方的配伍仍大量選用“原絡配穴”“俞募配穴”“八脈交會配穴”“合募配穴”“遠近配穴”等傳統配穴方法,遵循著“循經取穴”的規則,體現了“經脈所過,主治所及”“腧穴所在,主治所及”的規律。數據挖掘在驗證傳統的中醫學理論的同時,還能在海量的文獻中發掘出新知,如趙凌等挖掘偏頭痛文獻時即發現古代針灸治療該病多采用同名經的配穴方法,發生疾病時即可在相聯系的手足同名經的相應部位針刺;趙華等挖掘田從豁教授治療痹癥經驗的結果提示上肢疼痛與寒凝、血瘀相關,風寒痹阻與下肢發涼相關。這些新的治療方法、不易發現的疾病、證候、癥狀之間的聯系,通過數據挖掘為臨床提供了新的思路與治療模式。
2.2數據挖掘在針灸領域存在的不足及展望
二、在部隊食品采購系統中的應用以及其價值評價
在部隊食品采購系統實際應用工程中,其實可以運用MicrosoftSQLServerAnalysisServices來對數據進行分析,并且在數據挖掘過程中對多維數據進行描述與查找起到一定作用。因為多維數據比較復雜,增長的也比較快,因此,進行手動查找是很困難的,數據挖掘技術提供的計算模式可以很好的對數據進行分析與查找。在建設部隊食品采購倉庫數據的時候,數據內容主要包括了人員的健康、兵員的飲食以及訓練等,進行數據挖掘主要包括以下內容:第一,把每個主題信息數據進行收集、匯總、分析等,對人員情況、健康、飲食、訓練等進行合理分析;第二,多維分析數據信息。根據部隊的實際情況,利用數據挖掘技術對部隊人員健康、飲食、訓練等數據信息進行多維分析,其中包含上鉆、切片、下鉆等;第三,挖掘健康與飲食之間的內在關系。根據數據庫中許多面向主題的歷史數據,采用數據挖掘技術進行分析與演算得到部隊人員的訓練和健康情況與部隊飲食之間內在關系,以便于為部隊食品采購提供合理的、有效的保障,從而提高部隊整體人員的健康水平、身體素質以及訓練質量,對提高我國部隊戰斗力有著深遠的意義。
由于信息技術的迅速發展,現代的檔案管理模式與過去相比,也有了很大的變化,也讓如今的檔案管理模式有了新的挑戰。讓人們對信息即時、大量地獲取是目前檔案管理工作和檔案管理系統急切需要解決的問題。
一、數據挖掘概述
(一)數據挖掘技術。數據挖掘是指從大量的、不規則、亂序的數據中,進行分析歸納,得到隱藏的,未知的,但同時又含有較大價值的信息和知識。它主要對確定目標的有關信息,使用自動化和統計學等方法對信息進行預測、偏差分析和關聯分析等,從而得到合理的結論。在檔案管理中使用數據挖掘技術,能夠充分地發揮檔案管理的作用,從而達到良好的檔案管理工作效果。(二)數據挖掘技術分析。數據挖掘技術分析的方法是多種多樣的,其主要方法有以下幾種:1.關聯分析。指從已經知道的信息數據中,找到多次展現的信息數據,由信息的說明特征,從而得到具有相同屬性的事物特征。2.分類分析。利用信息數據的特征,歸納總結相關信息數據的數據庫,建立所需要的數據模型,從而來識別一些未知的信息數據。3.聚類分析。通過在確定的數據中,找尋信息的價值聯系,得到相應的管理方案。4.序列分析。通過分析信息的前后因果關系,從而判斷信息之間可能出現的聯系。
二、數據挖掘的重要性
在進行現代檔案信息處理時,傳統的檔案管理方法已經不能滿足其管理的要求,數據挖掘技術在這方面確有著顯著的優勢。首先,檔案是較為重要的信息記錄,甚至有些檔案的重要性大到無價,因此對于此類的珍貴檔案,相關的檔案管理人員也是希望檔案本身及其價值一直保持下去。不過越是珍貴的檔案,其使用率自然也就越高,所以其安全性就很難得到保障,在檔案管理中運用數據挖掘技術,可以讓檔案的信息數據得到分析統計,歸納總結,不必次次實物查閱,這樣就極大地提升了檔案相關內容的安全性,降低檔案的磨損率。并且可以對私密檔案進行加密,進行授權查閱,進一步提高檔案信息的安全性。其次,對檔案進行鑒定與甄別,這也是檔案工作中較困難的過程,過去做好這方面的工作主要依靠管理檔案管理員自己的能力和水平,主觀上的因素影響很大,但是數據挖掘技術可以及時對檔案進行編碼和收集,對檔案進行數字化的管理和規劃,解放人力資源,提升檔案利用的服務水平。第三,數據挖掘技術可以減少檔案的收集和保管成本,根據檔案的特點和規律建立的數據模型能為之后的工作人員建立一種標準,提升了檔案的鑒定效率。
三、檔案管理的數據挖掘運用
(一)檔案信息的收集。在實施檔案管理工作時,首先需要對檔案信息數據的收集。可以運用相關檔案數據庫的數據資料,進行科學的分析,制定科學的說明方案,對確定的數據集合類型和一些相關概念的模型進行科學說明,利用這些數據說明,建立準確的數據模型,并以此數據模型作為標準,為檔案信息的快速分類以及整合奠定基礎。例如,在體育局的相關網站上提供問卷,利用問卷來得到的所需要的信息數據,導入數據庫中,讓數據庫模型中保有使用者的相關個人信息,通過對使用者的信息數據進行說明,從而判斷使用者可能的類型,提升服務的準確性。因此,數據挖掘技術為檔案信息的迅速有效收集,為檔案分類以及后續工作的順利展開,提供了有利條件,為個性化服務的實現提供了保證。(二)檔案信息的分類。數據挖掘技術具有的屬性分析能力,可以將數據庫中的信息進行分門別類,將信息的對象通過不同的特征,規劃為不同的分類。將數據挖掘技術運用到檔案管理中時,可以簡單快速地找到想要的檔案數據,能根據數據中使用者的相關數據,找尋使用者在數據庫中的信息,使用數據模型的分析能力,分析出使用者的相關特征。利如,在使用者上網使用網址時,數據挖掘技術可以充分利用使用者的搜索數據以及網站的訪問記錄,自動保存用戶的搜索信息、搜索內容、下載次數、時間等,得到用戶的偏好和特征,對用戶可能存在的需求進行預測和分類,更加迅速和準確的,為用戶提供個性化的服務。(三)檔案信息的整合。數據挖掘技術可以對新舊檔案的信息進行整合處理,可以較為簡單地將“死檔案”整合形成為“活檔案”,提供良好的檔案信息和有效的檔案管理。例如,對于企事業單位而言,培訓新員工的成本往往比聘請老員工的成本要高出很多。對老員工的檔案信息情況進行全體整合,使檔案資源充分發揮作用,將檔案數據進行總結和規劃,根據數據之間的聯系確定老員工流失的原因,然后建立清晰、明白的數據庫,這樣可以防止人才流失,也能大大提高檔案管理的效率。
四、結語
綜上所述,在這個信息技術迅速跳躍發展的時代,將數據挖掘技術運用到檔案管理工作中是時展的需求與必然結果。利用數據挖掘技術,可以使檔案管理工作的效率大大提升,不僅減少了搜索檔案信息的時間,節省人力物力,避免資源的浪費,還能幫助用戶在海量的信息數據中,快速找到所需的檔案數據信息。數據挖掘技術的運用,使靜態的檔案信息變成了可以“主動”為企事業單位的發展,提供有效的個性化服務的檔案管家,推動了社會的快速發展。
作者:于然 單位:揚州市體育局辦公室
【參考文獻】
1.1數據信息的準備準備部分又可以分成數據的選取、數據信息的預處理.對數據進行選取的主要目的就是對操作對象進行確定,即是對目標數據進行確定,所謂的目標數據是在經過對用戶的需要進行細致分析之后,對最有可能得到有利用價值的信息的那些從數據庫中抽取出來的數據.獲取到這些數據以后需要進行預處理,主要包含數據的去噪、計算缺值數據的推導、數據類型的轉換,數據類型轉換舉個例子來說比如把連續型數據轉化成離散數據,以方便進行符號的歸納.
1.2挖掘過程數據信息的挖掘階段是在上一步的基礎之上,即在目標數據已經確定,并且已經完成了初始化的基礎之上,需要確定數據挖掘的目的與挖掘的類型.在對挖掘任務的目標確定之后,要根據數據挖掘的知識類型選取合適的數據挖掘方法,最終完成數據挖掘具體操作即采用特定的數據挖掘方法從數據倉庫中抽取所需的挖掘目標.
1.3挖掘結果的解釋和評價數據挖掘的結果的解釋和評價是在完成數據挖掘階段之后對發現的知識,進行評估,對于冗余或者無關的知識要進行刪除;對于獲得的知識不符合用戶的要求的要進行重新的挖掘.與此同時,因為數據挖掘需要面臨用戶,所以,在得到目標知識以后還需要對所挖掘的知識附加相關解釋,來用一種便于用戶理解的方式供用戶使用.綜上所述,整個數據信息的挖掘在實際情況下是一個不斷地循環與反復的過程,所以要對所挖掘出來的知識不斷求精和深化,最終要獲得用戶所需要的結果.
2電子商務中數據挖掘的特點
由于電子商務自身的某些獨特的特點,同其他的應用于普通商業領域中的數據挖掘相比,應用于電子商務的數據挖掘具有如下幾個特點:(1)應用于電子商務的數據挖掘的最終目的主要表現在企業與客戶之間的關系管理方面,電子商務利用因特網的技術能夠使企業和客戶之間的關系處理變得更加方便.所以,其主要的功能是怎樣使企業采用這些頻繁的交流信息,快速的掌握客戶的趨向、改善與客戶交流情況或者獲取交流方向等;(2)電子商務本身就是一個信息化程度比較高的系統,其自身累積的數據信息會存放在電子商務數據庫內,用戶可以比較便捷地得到這些信息,所以對于電子商務的數據挖掘的數據信息的準備階段的相關工作就變得相對容易;(3)電子商務領域的數據挖掘的主要目標一般是使電子商務系統得到有效的改進.例如為客戶提供個性化頁面、把用戶比較感興趣的信息展現在網站首頁或得到哪一些商品比較受到客戶的歡迎等.
3電子商務中的數據挖掘運用
首先要講的是關聯規則在電子商務中的運用,利用比較通俗的語言來講,從一個事件的發生與否方面進行解釋,所謂的關聯規則法在大量的事件發生或者不發生的條件下,對這些事件中的任意兩個或者多個事件提取出來,通過一定的統計分析算法,最終確定兩個或者多個事件的發生與否是否存在著某種關系,而這種可能存在的管理,我們稱之為關聯規則.列舉一個有趣的故事,就是在一個超市里面,店家把小孩的尿布同啤酒放到了一起,來供購買者進行購買,結果是二者的銷量都提升了一倍,其實這就是因為二者之間有著某種潛在聯系,店家通過數據挖掘的方法發現的這個規則,并對這一關聯規則進行了實際的運用,從中得到了益處.同樣在電子商務中通過數據挖掘得到關聯規則,有著類似的意義.其次在電子商務中數據挖掘聚類分析方法的應用.在大量數據倉庫中,數據與數據之間,往往會有某些性質的類型相似,同樣也會有某些性質或者特點相異,我們把這些性質或者特點稱為觀察指標,聚類分析就是對于某一個特點指標而言,把指標相差不多的數據劃分為同一個類型,若相差較大則要劃分為不同的類型、這種操作的主要意義就是將具有某種特定的相似特性的客戶或者數據分成一個類.在電子商務活動中,這一方法的應用主要集中在市場細分的工作之中.分類分析系統的建立以生物的遺傳算法為基礎,屬于其中的自學習的一種,它一般會包含三個子系統,第一個是以串規則為基礎的并行生成子系統、第二個是規則評價子系統.第三個是遺傳算法子系統.分類分析可以說是電子商務中運用到數據挖掘最多的一種挖掘方式.主要原因就是在于其能夠形成一種預測模型能夠對一些營銷方式或者其他的一些商業措施做出正確的預測.
4數據挖掘在電子商務中的應用
更高效的利用企業現有資源以及開發新資源是當代企業發展的關鍵.電子商務通過采用數據挖掘的技術,能夠更加及時和正確的獲得企業當前所有資源的具體使用情況,而且通過數據挖掘的技術可以分析以往的各種企業數據,比如說企業財務數據、企業庫存數據或者企業交易數據,能夠較為及時的發現企業資源過度消耗的主要問題所在,或者能夠得到各種商務活動的投入與產出的比例,來為企業領導進行經營決策提供有力的根據[6].另外在企業的經營過程中,人們不斷推崇“以客戶為中心”的經營理念,在這一趨勢下,如何正確快速的分析和了解客戶的需求已成為企業提高自身市場競爭力的一大課題.通過把數據挖掘應用到電子商務之中,能夠使企業最準確的分析客戶資源并最有效的利用企業客戶資源,通過對已有客戶行為進行相關性分析,可以形成潛在客戶資源的預測模型.除此之外在企業經營過程中,利用數據挖掘可以解決另外一個嚴重影響了商業正常秩序的重要問題.即當前時區商務活動中的地下的信用狀況問題,這一問題的嚴重程度已經引起了人們的廣泛關注.在電子商務經營過程中,因為網上詐騙公司或者企業財務的現象屢見不鮮,信用危機已經成為影響其快速正常發展的一個重要因素.而通過在電子商務中采用數據挖掘技術實現對企業經營活動的跟蹤,在此基礎上實現企業的資產評估、利潤收益分析以及發展潛力預測分析等,為電子商務在經營過程中提供了完善的安全保障體系,同時利用數據挖掘實現企業網上全程監控.另外通過實現基于數據挖掘的信用評估模型,可以在很大程度上進行防范或者化解信用風險,從而提高企業的信用度以及應對風險能力.
1.1Hadoop平臺的具體操作流程
(1)對物聯網中的RFID數據進行過濾、轉換、合并的處理,并在分布式系統HDFS中保存PML文件形式的數據。同時,可采取副本策略來處理PML文件,在同一機構的不同節點或不同機構的某一節點上保存PML文件中的2-3個副本,進而可實現對存儲、處理、節點失效問題的有效解決。
(2)在執行任務過程中,創建和管理控制是Master(主控程序)的主要工作,當Worker處于空閑狀態時會接收到有關的分配任務,需與Map/Reduce互相合作實現操作處理,處理的最終結果由Master來歸并,同時將反饋結果傳送給用戶。
1.2Map/Reduce的具體操作流程
(1)根據參數在Map/Reduce思想指導下對輸入文件進行分割處理,使其細化為M塊(16-64M大小范圍)。
(2)Master、Worker、Map操作(M個)、Reduce操作(R個)是構成執行程序的主要部分,其中Map/Reduce的處理任務會由Master伴隨物聯網的快速發展和廣泛應用,人們可以有效利用物聯網來實現信息交換和通信的目的,不過物聯網海量數據的日益增多大大降低了物聯網服務的質量。在此,對基于Apriori算法進行物聯網數據挖掘研究。摘要將其分配給空閑的Worker。
(3)在處理Map任務時,Worker會讀取處理中的數據,并向Map函數傳送<key,value>,而后產生中間結果在內存中緩存且定時向本地硬盤傳送。此外,依據分區函數將中間結果分割為R塊區,利用Master將本地硬盤接收到的數據位置信息傳送給Reduce函數。
(4)ReduceWorker根據Master所傳送的文件信息采用遠程讀取方式來操作,以在本地文件中找到對應的文件,對文件的中間key進行有序排列,并利用遠程發送信息給具體執行的Reduce。
(5)ReduceWorker依據key排序后的中間數據向Reduce函數傳送與key對應的中間結果集,而最后的結果需采取最終輸出文件來進行編寫。
(6)當Map、Reduce的任務全部完成之后,MapReduce將回歸到用戶程序的調用點處,同時以Master對用戶程序進行激活。
2基于Apriori算法的物聯網數據挖掘
2.1Apriori數據挖掘原理和操作流程
Apriori是提升物聯網數據挖掘功能的一種最有效算法,其原理是在K項集中以逐層搜索迭代的方式來探索。具體的操作流程包括:
(1)掃描數據集以生成頻繁1-項集L1。
(2)通過L1來探索頻繁項集L2,采用不斷迭代的方式來持續探索,直至頻繁項集是空集。
2.2K次循環搜索后的數據挖掘流程
當已完成了K次循環搜索時,還需要進行2個數據挖掘的操作流程:(1)在LK-1生成CK(候選集)之后,開展JOIN操作。(2)支持度統計和剪枝的操作依據Apriori性質來進行,而后使得CK生成LK(頻繁集)。為提高物聯網數據挖掘的效率,節省系統的時間和內存消耗,在Apriori算法基礎上還需要借鑒和移植云計算平臺的分布式并行計算性質。如此以實現Hadoop架構的建立,在掃描數據庫查找頻繁項集中得到的并聯規則需要存儲在Hadoop架構中。同時,為取得各個計算節點上的局部頻繁項集,各個DataNode節點需要經歷并行操作的掃描處理,并使用Master來統計和確定實際全局的支持度、頻繁項集。
2.3Apriori算法Map/Reduce化的處理流程
上述提及基于Apriori算法的物聯網數據挖掘需借助于Map/Reduce模式,其數據挖掘功能的實現還應Map/Reduce化Apriori算法。主要的處理流程包括:
(1)用戶提出挖掘服務的請求,且由用戶來設置Apriori所需的數據,如最小支持度、置信度。
(2)當Master接收到請求后,通過NameNode來進行PML文件的申請,而后逐步完成訪問空閑節點列表、向空閑的DataNode分配任務、調度和并行處理各個DataNode需要的存儲節點算法。
(3)運用Map函數來處理每個DataNode的<key,value>對映射、新鍵值對,以CnK(用1表示每一個CnK的支持度)來表示所產生的一個局部候選頻繁K項集。
(4)通過Reduce函數來實現調用計算,對每個DataNode節點上相同候選項集的支持度進行累加,以產生一個實際的支持度,將其與最小支持度(用戶申請時所設置)進行比較,進而用LnK表示所生成的局部頻繁K項集的集合。
(5)對所有的處理結果進行合并,從而實現全局頻繁K項集LK的生成。
發現的是用戶感興趣的知識;發現的知識應當能夠被接受、理解和運用。也就是發現全部相對的知識,是具有特定前提與條件,面向既定領域的,同時還容易被用戶接受。數據挖掘屬于一種新型的商業信息處理技術,其特點為抽取、轉化、分析商業數據庫中的大規模業務數據,從中獲得有價值的商業數據。簡單來說,其實數據挖掘是一種對數據進行深入分析的方法。因此,可以描述數據挖掘為:根據企業設定的工作目標,探索與分析企業大量數據,充分揭示隱藏的、未知的規律性,并且將其轉變為科學的方法。數據挖掘發現的最常見知識包括:
1.1.1廣義知識體現相同事物共同性質的知識,是指類別特點的概括描述知識。按照數據的微觀特點對其表征的、具有普遍性的、極高概念層次的知識積極發現,是對數據的高度精煉與抽象。發現廣義知識的方法與技術有很多,例如數據立方體和歸約等。
1.1.2關聯知識體現一個事件與其他事件之間形成的關聯知識。假如兩項或者更多項之間形成關聯,則其中一項的屬性數值就能夠借助其他屬性數值實行預測。
1.1.3分類知識體現相同事物共同特點的屬性知識與不同事物之間差異特點知識。
1.2數據挖掘過程
1.2.1明確業務對象對業務問題清楚定義,了解數據挖掘的第一步是數據挖掘目的。挖掘結果是無法預測的,但是研究的問題是可預見的,僅為了數據挖掘而數據挖掘一般會體現出盲目性,通常也不會獲得成功。基于用戶特征的電子商務數據挖掘研究劉芬(惠州商貿旅游高級職業技術學校,廣東惠州516025)摘要:隨著互聯網的出現,全球范圍內電子商務正在迅速普及與發展,在這樣的環境下,電子商務數據挖掘技術應運而生。電子商務數據挖掘技術是近幾年來數據挖掘領域中的研究熱點,基于用戶特征的電子商務數據挖掘技術研究將會解決大量現實問題,為企業確定目標市場、完善決策、獲得最大競爭優勢,其應用前景廣闊,促使電子商務企業更具有競爭力。主要分析了電子商務內容、數據挖掘技術和過程、用戶細分理論,以及基于用戶特征的電子商務數據挖掘。
1.2.2數據準備第一選擇數據:是按照用戶的挖掘目標,對全部業務內外部數據信息積極搜索,從數據源中獲取和挖掘有關數據。第二預處理數據:加工選取的數據,具體對數據的完整性和一致性積極檢查,并且處理數據中的噪音,找出計算機丟失的數據,清除重復記錄,轉化數據類型等。假如數據倉庫是數據挖掘的對象,則在產生數據庫過程中已經形成了數據預處理。
1.2.3變換數據轉換數據為一個分析模型。這一分析模型是相對于挖掘算法構建的。構建一個與挖掘算法適合的分析模型是數據挖掘獲得成功的重點。可以利用投影數據庫的相關操作對數據維度有效降低,進一步減少數據挖掘過程中數據量,提升挖掘算法效率。
1.2.4挖掘數據挖掘獲得的經濟轉化的數據。除了對選擇科學挖掘算法積極完善之外,其余全部工作都自行完成。整體挖掘過程都是相互的,也就是用戶對某些挖掘參數能夠積極控制。
1.2.5評價挖掘結果這個過程劃分為兩個步驟:表達結果和評價結果。第一表達結果:用戶能夠理解數據挖掘得到的模式,可以通過可視化數據促使用戶對挖掘結果積極理解。第二評價結果:用戶與機器對數據挖掘獲得的模式有效評價,對冗余或者無關的模式及時刪除。假如用戶不滿意挖掘模式,可以重新挑選數據和挖掘算法對挖掘過程科學執行,直到獲得用戶滿意為止。
2用戶細分理論
用戶細分是指按照不同用戶的屬性劃分用戶集合。目前學術界和企業界一般接受的是基于用戶價值的細分理論,其不僅包含了用戶為企業貢獻歷史利潤,還包含未來利潤,也就是在未來用戶為企業可能帶來的利潤總和。基于用戶價值的細分理論選擇客戶當前價值與客戶潛在價值兩個因素評價用戶。用戶當前價值是指截止到目前用戶對企業貢獻的總體價值;用戶潛在價值是指未來用戶可能為企業創造的價值總和。每個因素還能夠劃分為兩個高低檔次,進一步產生一個二維的矩陣,把用戶劃分為4組,價值用戶、次價值用戶、潛在價值用戶、低價值用戶。企業在推廣過程中根據不同用戶應當形成對應的方法,投入不同的資源。很明顯對于企業來說價值用戶最重要,被認為是企業的玉質用戶;其次是次價值用戶,被認為是金質用戶,雖然數量有限,卻為企業創造了絕大部分的利潤;其他則是低價值用戶,對企業來說價值最小,成為鉛質用戶,另外一類則是潛在價值用戶。雖然這兩類用戶擁有較多的數量,但是為企業創造的價值有限,甚至很小。需要我們注意的是潛在價值用戶利用再造用戶關系,將來極有可能變成價值用戶。從長期分析,潛在價值用戶可以是企業的隱形財富,是企業獲得利潤的基礎。將采用數據挖掘方法對這4類用戶特點有效挖掘。
3電子商務數據挖掘分析
3.1設計問卷
研究的關鍵是電子商務用戶特征的數據挖掘,具體包含了價值用戶特征、次價值用戶特征、潛在價值用戶特征,對電子商務用戶的認知度、用戶的需求度分析。問卷內容包括3部分:其一是為被調查者介紹電子商務的概念與背景;其二是具體調查被調查對象的個人信息,包含了性別、年齡、學歷、感情情況、職業、工作、生活地點、收入、上網購物經歷;其三是問卷主要部分,是對用戶對電子商務的了解、需求、使用情況的指標設計。
3.2調查方式
本次調查的問卷主體是電腦上網的人群,采用隨機抽象的方式進行網上訪問。一方面采用大眾聊天工具,利用電子郵件和留言的方式發放問卷,另一方面在大眾論壇上邀請其填寫問卷。
3.3數據挖掘和結果
(1)選擇數據挖掘的算法利用Clementine數據挖掘軟件,采用C5.O算法挖掘預處理之后數據。
(2)用戶數據分析
1)電子商務用戶認知度分析按照調查問卷的問題“您知道電子商務嗎?”得到對電子商務用戶認知情況的統計,十分了解20.4%,了解30.1%,聽過但不了解具體使用方法40.3%,從未聽過8.9%。很多人僅聽過電子商務,但是并不清楚具體的功能與應用方法,甚至有一小部分人沒有聽過電子商務。對調查問卷問題“您聽過電子商務的渠道是什么?”,大部分用戶是利用網了解電子商務的,占40.2%;僅有76人是利用紙質報刊雜志上知道電子商務的并且對其進行應用;這也表明相較于網絡宣傳紙質媒體推廣電子商務的方法缺乏有效性。
2)電子商務用戶需求用戶希求具體是指使用產品服務人員對應用產品或服務形成的需求或者期望。按照問題“假如你曾經使用電子商務,你覺得其用途怎樣,假如沒有使用過,你覺得其對自己有用嗎?”得到了認為需要和十分需要的數據,覺得電子商務有用的用戶為40.7%,不清楚是否對自己有用的用戶為56.7%,認為不需要的僅有2.4%。
3)電子商務用戶應用意愿應用意愿是指消費者對某一產品服務進行應用或者購買的一種心理欲望。按照問題“假如可以滿足你所關心的因素,未來你會繼續應用電子商務嗎?”獲得的數據可知,在滿足各種因素時,將來一年之內會應用電子商務的用戶為78.2%,一定不會應用電子商務的用戶為1.4%。表明用戶形成了較為強烈的應用電子商務欲望,電子商務發展前景很好。基于用戶特征的電子商務數據研究,電子商務企業通過這一結果能夠更好地實行營銷和推廣,對潛在用戶積極定位,提高用戶體驗,積極挖掘用戶價值。分析為企業準確營銷和推廣企業提供了一個有效的借鑒。
二、最小二乘法擬合直線
最小二乘法是一種數學優化技術。它以某一社會、經濟或自然現象為對象,尋找一擬合曲線,以滿足給定對象系統的一組觀測數據。通常要求選擇的擬合曲線會使各觀測數據到擬合曲線的誤差的平方和最小。
本文研究銷售企業(如商場)異常客戶的性質。設一段時期內客戶的累計消費金額為y,對應的消費時期為x。假定測得客戶的n個數據(x1,y1),…,(xn,yn),則在XOY平面上可以得到n個實驗點:Pi(xi,yi)(i=1,…n),這種圖形稱為“散點圖”(如圖1,圖2)。在利用最小二乘法進行分析時,各種非線性關系的擬合曲線均可線性化,因此此處選擇直線y=ax+b作為擬合直線,尋求x與y之間近似線性關系時的經驗公式。其中a為直線的斜率,b為直線在y軸上的截距。
如果Pi(i=1,…n)全部位于同一條直線上,則可認為變量之間的關系為y=ax+b,但一般情況下不會如此。記估計值=axi+b,則各實驗點與擬合直線之間的誤差為εi=-yi=(axi+b)-yi,它反映了用直線y=ax+b來描述(xi,yi)時,估計值與觀測值yi之間的偏差大小。則有:
要求偏差越小越好。但由于εi可正可負,簡單求和可能將很大的誤差抵消掉,只有平方和才能反映二者在總體上的接近程度,這就是最小二乘原則。于是問題歸結為根據這一要求來確定y=ax+b中的a和b,使得最小。因為F(a,b)是關于a、b的二次函數并且非負,所以其極小值總是存在的。根據羅彼塔法則,F取最小值時,有:
于是得到了符合最小二乘原則的相應解:
三、基于斜率的異常客戶挖掘算法
1.問題描述
本文的目的是研究某一消費時期內,異常客戶的消費傾向。取異常客戶一年內各月份的累計消費金額為參考,記錄的數據如下(表1,表2)。根據其散點圖(圖1,圖2)可以看出,客戶的累計消費金額隨時間都呈上升趨勢,所以難以觀察出該客戶是否對商場保持持久的忠誠度,是否有轉向競爭對手的可能。基于斜率的異常客戶挖掘算法正是要解決識別客戶性質這一問題。
2.算法描述
算法:Outlier_Analysis。根據輸出的a值來判斷異常客戶的性質:積極的或消極的。
輸入:客戶數據,即參考點,由有序點對(xi,yi)表示;參考點的個數n。
輸出:a(直線的斜率),b(直線在y軸上的截距)。
方法:
(1)初始化a、b。
(2)對客戶的n個觀測數據(即n個記錄點)進行相關數據計算:
(3)ifa<0then
客戶購買金額呈減少趨勢,為消極客戶
else
1.2分類。它能將數據庫中的數據項,映射到給定類別中的一個。分類[3]定義了一種從屬性到類別的映射關系,給定樣本的屬性值,根據已知的模式將其劃分到特定的類中。
1.3聚類分析。聚類是根據一定的規則,按照相似性把樣本歸成若干類別。在對樣本合理劃分后,對不同的類進行描述。聚類通常用于將客戶細分成不同的客戶群,如有相同愛好的客戶群。
1.4時間序列。按照時間的順序把隨機事件變化發展的過錯記錄下來就構成了一個時間序列。對時間序列進行觀察、研究,找尋它變化發展的規律,預測它將來的走勢就是時間序列分析。
1.5孤立點分析。孤立點在數學上是指坐標滿足曲線方程,但并不落在曲線上的點。它也可以被看作是在數據集合中與大多數數據特征不一致的數據。對孤立點進行分析極有可能發現重要的隱藏信息。
1.6遺傳算法。它是一類借鑒生物界的進化規律(適者生存,優勝劣汰遺傳機制)演化而來的隨機化搜索方法;是一個以適應度為目標函數,對種群個體施加遺傳操作,實現群體結構重組,經迭代而達到總體優化的過程。目前,將數據挖掘技術應用于煙草行業的研究逐步受到重視。歐陽秀君,劉文在《數據挖掘技術在煙草CRM中的應用》一文中[4],主要探討如何將數據挖掘中的關聯規則、聚類、分類方法應用于煙草CRM中。康江峰,陳輝[5]將基于數據挖掘的技術應用于對煙草精準營銷策略的研究。王辛盟[6]采用數據挖掘技術,利用SPSS統計軟件,以某煙草配送中心的訂單數據和客戶資料數據為數據源,用聚類的方法對客戶群進行細分。鄭陽洋、劉希玉[7]采用基于多層次關聯規則挖掘技術,對2007年山東省內某地級市卷煙商業企業的銷售數據進行分析,得到“消費者在購買品名為紅河(軟甲)的客戶中,有57%會同時購買類名為八喜的卷煙”的規則。但以上對于煙草行業的數據挖掘研究的方法主要集中在關聯規則、聚類分析和分類三種方法上,在接下來的研究中,我將探討如何將更多的數據挖掘方法應用于煙草行業的數據分析上。
2數據挖掘技術在煙草行業中的應用
2.1聚類分析在卷煙銷售中的應用為了便于日常卷煙銷售及統計,通常根據卷煙的屬性對進卷煙行分類,常見的卷煙分類方法如下:一是按照價位段劃分,5元以下、5-10元、10元以上等;二是按照利潤貢獻度,分為一類煙、二類煙、三類煙、四類煙和五類煙;三是按照卷煙品牌劃分,泰山系列、黃鶴樓系列、七匹狼系列等;四是按照產地劃分,魯產煙、滬產煙、外產煙等;五是按照焦油含量劃分,低焦油卷煙和高焦油卷煙。以上就卷煙的某一單一屬性對卷煙類別進行區分,極大的方便卷煙的銷售管理工作,然而,消費者在選擇卷煙時,往往會考慮多方面的屬性,因此單一屬性的卷煙分類無法解釋消費者偏好。因此需要引入基于多屬性的卷煙分類方法,由于卷煙規格多且本身具有多重屬性,基于主觀判別分類方法難以滿足分類要求,需借助統計學的方法對卷煙進行科學分類。聚類分析指將物理或抽象對象的集合分組成為由類似的對象組成的多個類的分析過程,同一類別的樣本表現出較高的相似性。因此,可將聚類分析用于解決上述卷煙分類問題,根據多屬性相似程度將卷煙分成幾個類別,消費者在同一類別中的香煙偏好無顯著差異,即同一類別中的香煙具有較高的替代效應。在實際銷售過程中,當某一牌號的卷煙斷貨、緊俏時,可推薦此牌號所在類別的其它牌號的卷煙給消費者作為有效替代。
2.2時間序列用于卷煙銷售趨勢預測卷煙銷售市場季節性特別顯著,主要表現為兩個方面:一是市場以節假日為節點,節前卷煙銷售迅猛,節后消費趨于平淡;二是夏季是旅游市場的旺盛,旅游業帶動外來人口流動增加,卷煙銷售量也隨同增加。同時,卷煙市場也受經濟、人口結構等方面因素影響,使得卷煙銷售量存在明顯的非線性特征,波動范圍比較大,傳統線性預測模型難以準確預測。為了提高卷煙銷售預測精度,建立一個基于時間序列、能夠精確預測卷煙銷售量的模型已經成為一種必然趨勢。時間序列由四個影響成分所組成,分別是長期趨勢、循環變動、季節變動、不規則變動。這四個影響成分與卷煙銷售市場的變動規律相吻合。通過建立卷煙銷售時間序列模型,對以往銷售的歷史數據進行分析,能夠有效地預測未來卷煙銷售市場的走勢和發展規律,更好地掌握卷煙市場的供需關系。在此基礎上,做好備貨工作,設立合理庫存,實現有效的貨源供應。通過對區域市場變化趨勢的預測并結合客戶實時經營狀況,能夠對客戶的需求總量做出相適應的預測,確保做好客戶的合理定量工作,保障不同零售客戶需求。預測結果還可為制定公平合理的貨源投放政策提供依據,使得各類貨源能夠投放至有相應銷售能力的客戶手中,更好的滿足消費者的需求。
2.3孤立點分析用于煙草專賣執法數據挖掘中的孤立點分析方法可以通過計算數據點之間的距離,稠密度等來模擬用戶之間的屬性差異,由此找到那些屬性特征與正常點差異非常大的用戶數據點。人們普遍認為孤立點的存在極有可能是度量或執行錯誤所導致的,因其不符合數據的一般模型,所以在研究普遍現象時,人們總是試圖使孤立點的影響最小化,而盡可能排除它們。然而,孤立點可能隱藏著比一般的數據更有價值的信息。近些年來,孤立點挖掘作為一個重要的研究課題,已被廣泛用于信用卡詐騙監測、市場內部交易偵測、工業設備故障探測等領域。在已建立的煙草分銷數據庫中儲存著大量客戶訂單信息,這些訂單信息包含多個維度,如用戶ID、商品編號、訂購數量、需求數量、同一品牌訂貨間隔等等。可利用孤立點挖掘算法對客戶訂單數據進行分析,建立客戶評估監測模型,找到以下“孤立點”:訂單金額高的,敏感牌號訂購量大的,敏感牌號訂購頻繁的,以往訂購敏感牌號頻率低但最近一段時間頻繁訂購的,按照商圈不具備高端敏感牌號銷路的卻頻繁訂購等等。這類訂單“異常”的客戶,或者稱為“孤立點”,可以被認為是存在相當大的“違規”可能性,我們的專賣執法人員應該對這一類的零售戶采取進一步的跟蹤調查。孤立點數據分析,勢必成為專賣執法的又一利器。
2.4遺傳算法用于車輛配送線路優化卷煙商業企業的銷售收益主要來自于訂單,銷售成本主要產生在物流配送的環節。所以,在假設銷售量不變的情況下,如何優化線路配置,降低成本,最大化公司利潤,在當前煙草行業面臨巨大的挑戰和壓力下,顯得尤為重要。因此,采用科學的、合理的方法來確定配送線路將是車輛優化調度工作的重中之重,是物流系統優化、物流科學化的關鍵。煙草商業企業已有的線路優化系統中儲存有客戶商店位置、道路情況等信息,可以在此基礎上,利用遺傳算法對配送線路問題進行優化。將一系列實際中車輛配送的約束條件,轉換成二進制編碼(染色體)并隨機產生初始種群,通過模擬達爾文的遺傳選擇和自然淘汰的生物進化過程,并借助于自然遺傳學的遺傳算子進行組合交叉和變異,逐代演化產生出越來越好的近似解,末代種群中的最優個體經過解碼,可以作為最終問題的近似最優解,用以實現對車輛的優化調度,即合理地進行配貨優化、貨物配裝優化,特別是配送路線優化。從而達到提高里程利用率,降低行駛費用,減少車輛空駛里程,增加貨運量,節約燃料,降低大修費等,為企業帶來更大的經濟效益。另外,車輛優化調度在減少廢氣排放量,降低城市空氣污染方面也起到積極作用。