中文久久久字幕|亚洲精品成人 在线|视频精品5区|韩国国产一区

歡迎來到優(yōu)發(fā)表網(wǎng),期刊支持:400-888-9411 訂閱咨詢:400-888-1571股權(quán)代碼(211862)

購物車(0)

期刊大全 雜志訂閱 SCI期刊 期刊投稿 出版社 公文范文 精品范文

數(shù)據(jù)挖掘論文范文

時(shí)間:2023-03-23 15:18:24

序論:在您撰寫數(shù)據(jù)挖掘論文時(shí),參考他人的優(yōu)秀作品可以開闊視野,小編為您整理的7篇范文,希望這些建議能夠激發(fā)您的創(chuàng)作熱情,引導(dǎo)您走向新的創(chuàng)作高度。

數(shù)據(jù)挖掘論文

第1篇

數(shù)據(jù)挖掘技術(shù)是近些年發(fā)展起來的一門新興學(xué)科,它涉及到數(shù)據(jù)庫和人工智能等多個(gè)領(lǐng)域。隨著計(jì)算機(jī)技術(shù)的普及數(shù)據(jù)庫產(chǎn)生大量數(shù)據(jù),能夠從這些大量數(shù)據(jù)中抽取出有價(jià)值信息的技術(shù)稱之為數(shù)據(jù)挖掘技術(shù)。數(shù)據(jù)挖掘方法有統(tǒng)計(jì)學(xué)方法、關(guān)聯(lián)規(guī)則挖掘、決策樹方法、聚類方法等八種方法,關(guān)聯(lián)規(guī)則是其中最常用的研究方法。關(guān)聯(lián)規(guī)則算法是1993年由R.Atal,Inipusqi,Sqtm三人提出的Apriori算法,是指從海量數(shù)據(jù)中挖掘出有價(jià)值的能夠揭示實(shí)體和數(shù)據(jù)項(xiàng)間某些隱藏的聯(lián)系的有關(guān)知識(shí),其中描述關(guān)聯(lián)規(guī)則的兩個(gè)重要概念分別是Suppor(t支持度)和Confi-dence(可信度)。只有當(dāng)Support和Confidence兩者都較高的關(guān)聯(lián)規(guī)則才是有效的、需要進(jìn)一步進(jìn)行分析和應(yīng)用的規(guī)則。

二、使用Weka進(jìn)行關(guān)聯(lián)挖掘

Weka的全名是懷卡托智能分析環(huán)境(WaikatoEnviron-mentforKnowledgeAnalysis),是一款免費(fèi)的、非商業(yè)化的、基于JAVA環(huán)境下開源的機(jī)器學(xué)習(xí)以及數(shù)據(jù)挖掘軟件[2]。它包含了許多數(shù)據(jù)挖掘的算法,是目前最完備的數(shù)據(jù)挖掘軟件之一。Weka軟件提供了Explorer、Experimenter、Knowledge-Flow、SimpleCLI四種模塊[2]。其中Explorer是用來探索數(shù)據(jù)環(huán)境的,Experimenter是對(duì)各種實(shí)驗(yàn)計(jì)劃進(jìn)行數(shù)據(jù)測(cè)試,KnowledgeFlow和Explorer類似,但該模塊通過其特殊的接口可以讓使用者通過拖動(dòng)的形式去創(chuàng)建實(shí)驗(yàn)方案,Simple-CLI為簡單的命令行界面。以下數(shù)據(jù)挖掘任務(wù)主要用Ex-plorer模塊來進(jìn)行。

(一)數(shù)據(jù)預(yù)處理

數(shù)據(jù)挖掘所需要的所有數(shù)據(jù)可以由系統(tǒng)排序模塊生成并進(jìn)行下載。這里我們下載近兩年的教師科研信息。為了使論文總分、學(xué)術(shù)著作總分、科研獲獎(jiǎng)總分、科研立項(xiàng)總分、科研總得分更有利于數(shù)據(jù)挖掘計(jì)算,在這里我們將以上得分分別確定分類屬性值。

(二)數(shù)據(jù)載入

點(diǎn)擊Explorer進(jìn)入后有四種載入數(shù)據(jù)的方式,這里采用第一種Openfile形式。由于Weka所支持的標(biāo)準(zhǔn)數(shù)據(jù)格式為ARFF,我們將處理好的xls格式另存為csv,在weka中找到這個(gè)文件并重新保存為arff文件格式來實(shí)現(xiàn)數(shù)據(jù)的載入。由于所載入的數(shù)據(jù)噪聲比較多,這里應(yīng)根據(jù)數(shù)據(jù)挖掘任務(wù)對(duì)數(shù)據(jù)表中與本次數(shù)據(jù)任務(wù)不相關(guān)的屬性進(jìn)行移除,只將學(xué)歷、職稱、論文等級(jí)、學(xué)術(shù)著作等級(jí)、科研獲獎(jiǎng)等級(jí)、科研立項(xiàng)等級(jí)、科研總分等級(jí)留下。

(三)關(guān)聯(lián)挖掘與結(jié)果分析

WeakExplorer界面中提供了數(shù)據(jù)挖掘多種算法,在這里我們選擇“Associate”標(biāo)簽下的Apriori算法。之后將“l(fā)owerBoundMinSupprot”(最小支持度)參數(shù)值設(shè)為0.1,將“upperBoundMinSupprot”(最大支持度)參數(shù)值設(shè)為1,在“metiricType”的參數(shù)值選項(xiàng)中選擇lift選項(xiàng),將“minMetric”參數(shù)值設(shè)為1.1,將“numRules”(數(shù)據(jù)集數(shù))參數(shù)值設(shè)為10,其它選項(xiàng)保存默認(rèn)值,這樣就可以挖掘出支持度在10%到100%之間并且lift值超過1.1且排名前10名的關(guān)聯(lián)規(guī)則。其挖掘參數(shù)信息和關(guān)聯(lián)挖掘的部分結(jié)果。

三、挖掘結(jié)果與應(yīng)用

以上是針對(duì)教師基本情況和科研各項(xiàng)總分進(jìn)行的反復(fù)的數(shù)據(jù)挖掘工作,從挖掘結(jié)果中找到最佳模式進(jìn)行匯總。以下列出了幾項(xiàng)作為參考的關(guān)聯(lián)數(shù)據(jù)挖掘結(jié)果。

1、科研立項(xiàng)得分與論文、科研總得分關(guān)聯(lián)度高,即科研立項(xiàng)為A級(jí)的論文也一定是A。這與實(shí)際也是相符的,因?yàn)榭蒲辛㈨?xiàng)得A的教師應(yīng)該是主持了省級(jí)或是國家級(jí)的立項(xiàng)的同時(shí)也參與了其他教師的科研立項(xiàng),在課題研究的過程中一定會(huì)有國家級(jí)論文或者省級(jí)論文進(jìn)行發(fā)表來支撐立項(xiàng),所以這類教師的論文得分也會(huì)很高。針對(duì)這樣的結(jié)果,在今后的科研工作中,科研處要鼓勵(lì)和幫助教師搞科研,為教師的科研工作提供精神上的支持和物質(zhì)上的幫助,這樣在很大程度上能夠帶動(dòng)整個(gè)學(xué)校科研工作的進(jìn)展。

2、副教授類的教師科研立項(xiàng)得分很高,而講師類教師和助教類教師的科研立項(xiàng)得分很低,這樣符合實(shí)際情況。因?yàn)楦苯淌陬惖慕處熡幸欢ǖ慕虒W(xué)經(jīng)驗(yàn),并且很多副教授類的教師還想晉職稱,所以大多數(shù)副教授類教師都會(huì)申請(qǐng)一些課題。而對(duì)于講師類和助教類的教師,由于教學(xué)經(jīng)驗(yàn)不足很少能進(jìn)行省級(jí)以上的課題研究,因此這兩類教師的科研立項(xiàng)分?jǐn)?shù)不高。針對(duì)這樣的結(jié)果,在今后的科研工作中,科研處可以采用一幫一、結(jié)對(duì)子的形式來幫助年輕教師,這樣可以使青年教師參與到老教師的科研課題研究工作中去,在課題研究工程中提高科研能力和教學(xué)能力。

第2篇

[關(guān)鍵詞]數(shù)據(jù)挖掘數(shù)據(jù)挖掘方法

隨著信息技術(shù)迅速發(fā)展,數(shù)據(jù)庫的規(guī)模不斷擴(kuò)大,產(chǎn)生了大量的數(shù)據(jù)。但大量的數(shù)據(jù)往往無法辨別隱藏在其中的能對(duì)決策提供支持的信息,而傳統(tǒng)的查詢、報(bào)表工具無法滿足挖掘這些信息的需求。因此,需要一種新的數(shù)據(jù)分析技術(shù)處理大量數(shù)據(jù),并從中抽取有價(jià)值的潛在知識(shí),數(shù)據(jù)挖掘(DataMining)技術(shù)由此應(yīng)運(yùn)而生。

一、數(shù)據(jù)挖掘的定義

數(shù)據(jù)挖掘是指從數(shù)據(jù)集合中自動(dòng)抽取隱藏在數(shù)據(jù)中的那些有用信息的非平凡過程,這些信息的表現(xiàn)形式為:規(guī)則、概念、規(guī)律及模式等。它可幫助決策者分析歷史數(shù)據(jù)及當(dāng)前數(shù)據(jù),并從中發(fā)現(xiàn)隱藏的關(guān)系和模式,進(jìn)而預(yù)測(cè)未來可能發(fā)生的行為。數(shù)據(jù)挖掘的過程也叫知識(shí)發(fā)現(xiàn)的過程。

二、數(shù)據(jù)挖掘的方法

1.統(tǒng)計(jì)方法。傳統(tǒng)的統(tǒng)計(jì)學(xué)為數(shù)據(jù)挖掘提供了許多判別和回歸分析方法,常用的有貝葉斯推理、回歸分析、方差分析等技術(shù)。貝葉斯推理是在知道新的信息后修正數(shù)據(jù)集概率分布的基本工具,處理數(shù)據(jù)挖掘中的分類問題,回歸分析用來找到一個(gè)輸入變量和輸出變量關(guān)系的最佳模型,在回歸分析中有用來描述一個(gè)變量的變化趨勢(shì)和別的變量值的關(guān)系的線性回歸,還有用來為某些事件發(fā)生的概率建模為預(yù)測(cè)變量集的對(duì)數(shù)回歸、統(tǒng)計(jì)方法中的方差分析一般用于分析估計(jì)回歸直線的性能和自變量對(duì)最終回歸的影響,是許多挖掘應(yīng)用中有力的工具之一。

2.關(guān)聯(lián)規(guī)則。關(guān)聯(lián)規(guī)則是一種簡單,實(shí)用的分析規(guī)則,它描述了一個(gè)事物中某些屬性同時(shí)出現(xiàn)的規(guī)律和模式,是數(shù)據(jù)挖掘中最成熟的主要技術(shù)之一。關(guān)聯(lián)規(guī)則在數(shù)據(jù)挖掘領(lǐng)域應(yīng)用很廣泛適合于在大型數(shù)據(jù)集中發(fā)現(xiàn)數(shù)據(jù)之間的有意義關(guān)系,原因之一是它不受只選擇一個(gè)因變量的限制。大多數(shù)關(guān)聯(lián)規(guī)則挖掘算法能夠無遺漏發(fā)現(xiàn)隱藏在所挖掘數(shù)據(jù)中的所有關(guān)聯(lián)關(guān)系,但是,并不是所有通過關(guān)聯(lián)得到的屬性之間的關(guān)系都有實(shí)際應(yīng)用價(jià)值,要對(duì)這些規(guī)則要進(jìn)行有效的評(píng)價(jià),篩選有意義的關(guān)聯(lián)規(guī)則。

3.聚類分析。聚類分析是根據(jù)所選樣本間關(guān)聯(lián)的標(biāo)準(zhǔn)將其劃分成幾個(gè)組,同組內(nèi)的樣本具有較高的相似度,不同組的則相異,常用的技術(shù)有分裂算法,凝聚算法,劃分聚類和增量聚類。聚類方法適合于探討樣本間的內(nèi)部關(guān)系,從而對(duì)樣本結(jié)構(gòu)做出合理的評(píng)價(jià),此外,聚類分析還用于對(duì)孤立點(diǎn)的檢測(cè)。并非由聚類分析算法得到的類對(duì)決策都有效,在運(yùn)用某一個(gè)算法之前,一般要先對(duì)數(shù)據(jù)的聚類趨勢(shì)進(jìn)行檢驗(yàn)。

4.決策樹方法。決策樹學(xué)習(xí)是一種通過逼近離散值目標(biāo)函數(shù)的方法,通過把實(shí)例從根結(jié)點(diǎn)排列到某個(gè)葉子結(jié)點(diǎn)來分類實(shí)例,葉子結(jié)點(diǎn)即為實(shí)例所屬的分類。樹上的每個(gè)結(jié)點(diǎn)說明了對(duì)實(shí)例的某個(gè)屬性的測(cè)試,該結(jié)點(diǎn)的每一個(gè)后繼分支對(duì)應(yīng)于該屬性的一個(gè)可能值,分類實(shí)例的方法是從這棵樹的根結(jié)點(diǎn)開始,測(cè)試這個(gè)結(jié)點(diǎn)指定的屬性,然后按照給定實(shí)例的該屬性值對(duì)應(yīng)的樹枝向下移動(dòng)。決策樹方法是要應(yīng)用于數(shù)據(jù)挖掘的分類方面。

5.神經(jīng)網(wǎng)絡(luò)。神經(jīng)網(wǎng)絡(luò)建立在自學(xué)習(xí)的數(shù)學(xué)模型基礎(chǔ)之上,能夠?qū)Υ罅繌?fù)雜的數(shù)據(jù)進(jìn)行分析,并可以完成對(duì)人腦或其他計(jì)算機(jī)來說極為復(fù)雜的模式抽取及趨勢(shì)分析,神經(jīng)網(wǎng)絡(luò)既可以表現(xiàn)為有指導(dǎo)的學(xué)習(xí)也可以是無指導(dǎo)聚類,無論哪種,輸入到神經(jīng)網(wǎng)絡(luò)中的值都是數(shù)值型的。人工神經(jīng)元網(wǎng)絡(luò)模擬人腦神經(jīng)元結(jié)構(gòu),建立三大類多種神經(jīng)元網(wǎng)絡(luò),具有非線形映射特性、信息的分布存儲(chǔ)、并行處理和全局集體的作用、高度的自學(xué)習(xí)、自組織和自適應(yīng)能力的種種優(yōu)點(diǎn)。

6.遺傳算法。遺傳算法是一種受生物進(jìn)化啟發(fā)的學(xué)習(xí)方法,通過變異和重組當(dāng)前己知的最好假設(shè)來生成后續(xù)的假設(shè)。每一步,通過使用目前適應(yīng)性最高的假設(shè)的后代替代群體的某個(gè)部分,來更新當(dāng)前群體的一組假設(shè),來實(shí)現(xiàn)各個(gè)個(gè)體的適應(yīng)性的提高。遺傳算法由三個(gè)基本過程組成:繁殖(選擇)是從一個(gè)舊種群(父代)選出生命力強(qiáng)的個(gè)體,產(chǎn)生新種群(后代)的過程;交叉〔重組)選擇兩個(gè)不同個(gè)體〔染色體)的部分(基因)進(jìn)行交換,形成新個(gè)體的過程;變異(突變)是對(duì)某些個(gè)體的某些基因進(jìn)行變異的過程。在數(shù)據(jù)挖掘中,可以被用作評(píng)估其他算法的適合度。

7.粗糙集。粗糙集能夠在缺少關(guān)于數(shù)據(jù)先驗(yàn)知識(shí)的情況下,只以考察數(shù)據(jù)的分類能力為基礎(chǔ),解決模糊或不確定數(shù)據(jù)的分析和處理問題。粗糙集用于從數(shù)據(jù)庫中發(fā)現(xiàn)分類規(guī)則的基本思想是將數(shù)據(jù)庫中的屬性分為條件屬性和結(jié)論屬性,對(duì)數(shù)據(jù)庫中的元組根據(jù)各個(gè)屬性不同的屬性值分成相應(yīng)的子集,然后對(duì)條件屬性劃分的子集與結(jié)論屬性劃分的子集之間上下近似關(guān)系生成判定規(guī)則。所有相似對(duì)象的集合稱為初等集合,形成知識(shí)的基本成分。任何初等集合的并集稱為精確集,否則,一個(gè)集合就是粗糙的(不精確的)。每個(gè)粗糙集都具有邊界元素,也就是那些既不能確定為集合元素,也不能確定為集合補(bǔ)集元素的元素。粗糙集理論可以應(yīng)用于數(shù)據(jù)挖掘中的分類、發(fā)現(xiàn)不準(zhǔn)確數(shù)據(jù)或噪聲數(shù)據(jù)內(nèi)在的結(jié)構(gòu)聯(lián)系。

8.支持向量機(jī)。支持向量機(jī)(SVM)是在統(tǒng)計(jì)學(xué)習(xí)理論的基礎(chǔ)上發(fā)展出來的一種新的機(jī)器學(xué)習(xí)方法。它基于結(jié)構(gòu)風(fēng)險(xiǎn)最小化原則上的,盡量提高學(xué)習(xí)機(jī)的泛化能力,具有良好的推廣性能和較好的分類精確性,能有效的解決過學(xué)習(xí)問題,現(xiàn)已成為訓(xùn)練多層感知器、RBF神經(jīng)網(wǎng)絡(luò)和多項(xiàng)式神經(jīng)元網(wǎng)絡(luò)的替代性方法。另外,支持向量機(jī)算法是一個(gè)凸優(yōu)化問題,局部最優(yōu)解一定是全局最優(yōu)解,這些特點(diǎn)都是包括神經(jīng)元網(wǎng)絡(luò)在內(nèi)的其他算法所不能及的。支持向量機(jī)可以應(yīng)用于數(shù)據(jù)挖掘的分類、回歸、對(duì)未知事物的探索等方面。

事實(shí)上,任何一種挖掘工具往往是根據(jù)具體問題來選擇合適挖掘方法,很難說哪種方法好,那種方法劣,而是視具體問題而定。

三、結(jié)束語

目前,數(shù)據(jù)挖掘技術(shù)雖然得到了一定程度的應(yīng)用,并取得了顯著成效,但仍存在著許多尚未解決的問題。隨著人們對(duì)數(shù)據(jù)挖掘技術(shù)的深人研究,數(shù)據(jù)挖掘技術(shù)必將在更加廣泛的領(lǐng)域得到應(yīng)用,并取得更加顯著的效果。

第3篇

1.1數(shù)據(jù)挖掘相關(guān)技術(shù)數(shù)據(jù)挖掘相關(guān)技術(shù)介紹如下[6]:(1)決策樹:在表示決策集合或分類時(shí)采用樹形結(jié)構(gòu),在這一過程中發(fā)現(xiàn)規(guī)律并產(chǎn)生規(guī)則,找到數(shù)據(jù)庫中有著最大信息量的字段,從而可建立起決策樹的人工智能及識(shí)別技術(shù)。(2)聚類分析:聚類分析指將物理或抽象對(duì)象的集合分組為由類似的對(duì)象組成的多個(gè)類的分析過程。它是一種重要的人類行為。(3)關(guān)聯(lián)分析:關(guān)聯(lián)分析又稱關(guān)聯(lián)挖掘,就是在交易數(shù)據(jù)、關(guān)系數(shù)據(jù)或其他信息載體中,查找存在于項(xiàng)目集合或?qū)ο蠹现g的頻繁模式、因果、關(guān)聯(lián)或相關(guān)性結(jié)構(gòu)。也可以說,關(guān)聯(lián)分析是用來發(fā)現(xiàn)有關(guān)交易的數(shù)據(jù)庫中不同商品(項(xiàng))之間的聯(lián)系。(4)神經(jīng)網(wǎng)絡(luò)方法:顧名思義,類似于生物的神經(jīng)結(jié)構(gòu),由大量簡單的神經(jīng)元,通過非常豐富和完善的連接組成自適應(yīng)的非線性動(dòng)態(tài)系統(tǒng),具有自適應(yīng)、自組織、自學(xué)習(xí)、聯(lián)想記憶、分布存儲(chǔ)、大規(guī)模并行處理等功能。粗集方法:也就是在數(shù)據(jù)庫里把行為對(duì)象列視為元素,將不同對(duì)象在某個(gè)(或多個(gè))屬性上取值相同定義為等價(jià)關(guān)系R。其等價(jià)類為滿足R的對(duì)象組成的集合[5]。

1.2IBMSPSSModelerIBMSPSSModeler是一個(gè)數(shù)據(jù)挖掘工作臺(tái),用于幫助用戶快速直觀地構(gòu)建預(yù)測(cè)模型,而無需進(jìn)行編程。其精密的數(shù)據(jù)挖掘技術(shù)使用戶能夠?qū)Y(jié)果進(jìn)行建模,了解哪些因素會(huì)對(duì)結(jié)果產(chǎn)生影響。它還能可提供數(shù)據(jù)挖掘相關(guān)的數(shù)據(jù)提取、轉(zhuǎn)換、分析建模、評(píng)估、部署等全過程的功能[3]。通常,SPSSModeler將數(shù)據(jù)以一條條記錄的形式讀入,然后通過對(duì)數(shù)據(jù)進(jìn)行一系列操作,最后將其發(fā)送至某個(gè)地方(可以是模型,或某種格式的數(shù)據(jù)輸出)[3]。使用SPSSModeler處理數(shù)據(jù)的三個(gè)步驟:(1)將數(shù)據(jù)讀入SPSSModeler;(2)通過一系列操縱運(yùn)行數(shù)據(jù);(3)將數(shù)據(jù)發(fā)送到目標(biāo)位置。

2客戶流失預(yù)測(cè)分析

2.1數(shù)據(jù)預(yù)處理數(shù)據(jù)預(yù)處理[6],將需要的客戶投保數(shù)據(jù)按照業(yè)務(wù)預(yù)測(cè)分析的要求,將數(shù)據(jù)抽取到中間數(shù)據(jù)中,同時(shí)對(duì)數(shù)據(jù)清洗和轉(zhuǎn)換,滿足業(yè)務(wù)預(yù)測(cè)分析要求。每日凌晨調(diào)用存儲(chǔ)過程將核心業(yè)務(wù)系統(tǒng)數(shù)據(jù)提取到中間數(shù)據(jù)庫,壽險(xiǎn)業(yè)務(wù)數(shù)據(jù)與其他數(shù)據(jù)一樣,存在不安全和不一致時(shí),數(shù)據(jù)清洗與轉(zhuǎn)換可以幫助提升數(shù)據(jù)質(zhì)量,進(jìn)而提升數(shù)據(jù)挖掘進(jìn)程的有效性和準(zhǔn)確性。數(shù)據(jù)清洗主要包括:遺漏數(shù)據(jù)清洗,錯(cuò)誤數(shù)據(jù)處理,垃圾數(shù)據(jù)處理[1]。

2.2數(shù)據(jù)選取數(shù)據(jù)預(yù)處理后,可以從中得到投保人的投保信息,包括投保人姓名,投保年齡(有效保單為當(dāng)前年齡,無效保單為退保年齡),保費(fèi),投保年期,保單狀態(tài)等。數(shù)據(jù)如圖1所示。

2.3客戶流失預(yù)測(cè)模型建立壽險(xiǎn)業(yè)務(wù)按渠道來分可分為個(gè)人保險(xiǎn)、團(tuán)體保險(xiǎn)、銀行保險(xiǎn)、網(wǎng)銷保險(xiǎn)、經(jīng)代保險(xiǎn)五類。由于團(tuán)體保險(xiǎn)在壽險(xiǎn)公司發(fā)展比較緩慢,團(tuán)險(xiǎn)業(yè)務(wù)基本屬于停滯階段。結(jié)合壽險(xiǎn)公司的營銷特點(diǎn),選定個(gè)人保單作為分析的對(duì)象,通過IBMSPSSModeler預(yù)測(cè)模型工具[3],使用決策樹預(yù)測(cè)模型對(duì)客戶流失進(jìn)行預(yù)測(cè)分析。

2.4結(jié)果分析通過使用IBMSPSSModeler決策類預(yù)測(cè)模型分析某壽險(xiǎn)公司2013年個(gè)人客戶承保情況來看有以下規(guī)則:(1)投保年數(shù)在1年以內(nèi),首期保費(fèi)在0~2000元或大于9997.130保費(fèi)的客戶比較容易流失。(2)保單終止保單中,女性客戶較男性客戶容易流失。(3)投保年數(shù)在2年以上,湖北及河北分支機(jī)構(gòu)客戶流失率比較容易流失。(4)分紅壽險(xiǎn)相對(duì)傳統(tǒng)壽險(xiǎn),健康壽險(xiǎn)的客戶比較容易流失[1]。

3總結(jié)

第4篇

關(guān)聯(lián)規(guī)則最初是針對(duì)購物籃分析問題提出的,目的是發(fā)現(xiàn)事務(wù)數(shù)據(jù)庫(TransactionDatabase)中不同商品之間的聯(lián)系。關(guān)聯(lián)規(guī)則是形如A=》B的蘊(yùn)涵式,其中A稱為該關(guān)聯(lián)規(guī)則的前項(xiàng),B稱為該關(guān)聯(lián)規(guī)則的后項(xiàng)。事務(wù),是一個(gè)明確定義的商業(yè)行為,如顧客在商店購物就是一次典型的事務(wù)。由用戶設(shè)定的支持度和置信度的門檻值,當(dāng)sup-port(A=>B)、confidence(A=>B)分別大于等于各自的門檻值時(shí),認(rèn)為A=>B是有趣的,此兩值稱為最小支持度(minsupport)和最小置信度(minconfidence)。同時(shí)滿足minsupport和minconfidence的這種關(guān)聯(lián)規(guī)則就叫做強(qiáng)的關(guān)聯(lián)規(guī)則。設(shè)任務(wù)相關(guān)的數(shù)據(jù)D是數(shù)據(jù)庫事物的集合,當(dāng)項(xiàng)集的支持計(jì)數(shù)≥D中事務(wù)總數(shù)|D|與minsup-port的乘積時(shí),就叫做頻繁項(xiàng)集,當(dāng)項(xiàng)集的支持計(jì)數(shù)可能≥D中事務(wù)總數(shù)|D|與minsupport的乘積時(shí),就叫做侯選項(xiàng)集。所有侯選項(xiàng)集K-項(xiàng)集的集合記作Ck,所有頻繁項(xiàng)集K-項(xiàng)集的集合常記作Lk,很明顯Lk奐Ck。如果僅依賴最小支持度和最小置信度這兩個(gè)參數(shù)的限制,所挖掘出的強(qiáng)關(guān)聯(lián)規(guī)則不一定是用戶感興趣的,因此,用戶可以根據(jù)實(shí)際應(yīng)用的需求,再結(jié)合自身的領(lǐng)域知識(shí),通過選擇與實(shí)際分析任務(wù)有關(guān)的數(shù)據(jù)集,設(shè)置不同的參數(shù),限定前項(xiàng)和后項(xiàng)的個(gè)數(shù),選擇前項(xiàng)和后項(xiàng)包含的屬性等操作,對(duì)關(guān)聯(lián)規(guī)則的挖掘進(jìn)行約束。

2模糊集理論的引入

在討論實(shí)際問題的時(shí)候,需要判定模糊概念涵義,如判斷某個(gè)數(shù)據(jù)在模糊集的定義和歸屬,這時(shí)就需要普通集合與模糊集合可依某種法則相互轉(zhuǎn)換。模糊理論中的截集是模糊集合和普通集合之間相互轉(zhuǎn)換的一座橋梁。

3基于事務(wù)間數(shù)值型關(guān)聯(lián)規(guī)則的數(shù)據(jù)挖掘算法

假設(shè)有一就業(yè)數(shù)據(jù)庫,先通過數(shù)據(jù)整理,將原始數(shù)據(jù)記錄值區(qū)間[0,10]偏置10個(gè)單位。由此就得到了經(jīng)過偏置后的數(shù)據(jù)庫記錄。再依滑動(dòng)窗口方法,設(shè)maxspan=1(該值可以依實(shí)際情況的需要來定),就可將偏置后的數(shù)據(jù)庫數(shù)據(jù)整理轉(zhuǎn)化為擴(kuò)展事務(wù)數(shù)據(jù)庫。再把擴(kuò)展事務(wù)數(shù)據(jù)庫記錄通過隸屬度函數(shù)轉(zhuǎn)化為對(duì)應(yīng)的隸屬度。

4結(jié)語

第5篇

系統(tǒng)采用C/S+B/S結(jié)構(gòu),主要由前端數(shù)據(jù)采集設(shè)備(位移及載荷傳感器)、站點(diǎn)客戶端、數(shù)據(jù)庫及Web服務(wù)器等組成。各部分采取分布式協(xié)同處理運(yùn)行方式,站點(diǎn)客戶端利用前端采集的數(shù)據(jù)獨(dú)立分析計(jì)算,分析完成后上傳至數(shù)據(jù)庫服務(wù)器,并通過網(wǎng)頁服務(wù)器對(duì)外。

2系統(tǒng)數(shù)據(jù)

2.1系統(tǒng)數(shù)據(jù)結(jié)構(gòu)系統(tǒng)采用MicrosoftSQLServer,創(chuàng)建了WPGUI與WPCHQ數(shù)據(jù)庫來管理3萬余口油井?dāng)?shù)據(jù)采集、處理及存儲(chǔ)等,建設(shè)數(shù)據(jù)表65張(見主要數(shù)據(jù)表的關(guān)系圖2),主要包括生產(chǎn)井的完井?dāng)?shù)據(jù)、靜態(tài)數(shù)據(jù)、動(dòng)態(tài)數(shù)據(jù)、采集數(shù)據(jù)、原油物性數(shù)據(jù)、機(jī)桿管泵等技術(shù)數(shù)據(jù),同時(shí)系統(tǒng)保存了油井近兩年功圖電參數(shù)據(jù)(每天每口井到少100張),以及根據(jù)這些數(shù)據(jù)分析計(jì)算出來的結(jié)果和匯總生成的數(shù)據(jù)。

3數(shù)據(jù)挖掘應(yīng)用

數(shù)據(jù)挖掘是從大量數(shù)據(jù)集中發(fā)現(xiàn)可行信息的過程,是統(tǒng)計(jì)分析技術(shù)、數(shù)據(jù)庫技術(shù)及人工智能技術(shù)的綜合。面對(duì)油井工況實(shí)時(shí)分析及功圖計(jì)產(chǎn)系統(tǒng)大量的油井生產(chǎn)完備數(shù)據(jù),長慶油田充分利用數(shù)據(jù)挖掘技術(shù),對(duì)數(shù)據(jù)進(jìn)一步清理、集成、轉(zhuǎn)換、挖掘應(yīng)用,深化功圖系統(tǒng)數(shù)據(jù)分析,先后開展了動(dòng)液面計(jì)算,系統(tǒng)效率在線實(shí)時(shí)監(jiān)測(cè)、區(qū)塊動(dòng)態(tài)分析研究等,并應(yīng)用于油田現(xiàn)場(chǎng),取得了較好的效果,既節(jié)約了生產(chǎn)成本,又方便了現(xiàn)場(chǎng)管理應(yīng)用,進(jìn)一步提升系統(tǒng)在長慶油田數(shù)字化前端的核心地位。

3.1區(qū)塊動(dòng)態(tài)分析

油井生產(chǎn)中,每天都會(huì)獲得大量的實(shí)時(shí)生產(chǎn)數(shù)據(jù),目前系統(tǒng)主要對(duì)單井完成工況分析及產(chǎn)液量計(jì)算,如何通過分析和處理這些數(shù)據(jù),及時(shí)全面了解油田區(qū)塊產(chǎn)油量、壓力、含水等變化規(guī)律是數(shù)據(jù)挖掘應(yīng)用又一問題。長慶油田開展了基于油井工況診斷及功圖計(jì)產(chǎn)系統(tǒng)的區(qū)塊動(dòng)態(tài)分析,從空間和歷史角度,對(duì)油井分類、分級(jí)、分層次進(jìn)行統(tǒng)計(jì)分析,挖掘生產(chǎn)數(shù)據(jù)里有用的信息,提煉區(qū)塊共性問題,并按照設(shè)計(jì)的模板(區(qū)塊指標(biāo)統(tǒng)計(jì)圖表、供液能力分析、產(chǎn)量分析、故障井分析等)每月30日自動(dòng)生成全面及時(shí)的區(qū)塊油井生產(chǎn)動(dòng)態(tài)分析,從而指導(dǎo)區(qū)塊生產(chǎn)管理,實(shí)現(xiàn)油田的精細(xì)管理,為油田開發(fā)決策提供依據(jù)。

4結(jié)束語

隨著長慶油田數(shù)字化建設(shè)的不斷深入,各種生產(chǎn)、研究、管理等數(shù)據(jù)庫不斷增加,如何深化數(shù)據(jù)應(yīng)用,準(zhǔn)確迅速從數(shù)據(jù)庫是提取有用信息,已成為是數(shù)字油田生產(chǎn)管理的迫切需求。在基于油井工況實(shí)時(shí)分析及功圖計(jì)產(chǎn)系統(tǒng)數(shù)據(jù)挖掘應(yīng)用中我們積累了不少經(jīng)驗(yàn),拓展了系統(tǒng)功能,提升系統(tǒng)在長慶油田數(shù)字化前端的核心地位。在今后應(yīng)用中,油田數(shù)據(jù)挖掘應(yīng)用注意幾個(gè)問題:

(1)數(shù)據(jù)是數(shù)字油田的血液,為了保證數(shù)據(jù)挖掘效率,在數(shù)據(jù)庫建設(shè)中要規(guī)范數(shù)據(jù)存儲(chǔ)格式,保證數(shù)據(jù)源及數(shù)據(jù)類型的統(tǒng)一,同時(shí)加強(qiáng)數(shù)據(jù)審核,注重?cái)?shù)據(jù)入庫的質(zhì)量;

(2)數(shù)據(jù)挖掘中盡可能使用可視化工具,一幅圖勝過千句話,數(shù)據(jù)挖掘可視化主要包括數(shù)據(jù)可視化、挖掘結(jié)果可視化、挖掘過程可視化等;

第6篇

數(shù)據(jù)挖掘技術(shù)是延伸和擴(kuò)展了傳統(tǒng)分析方法,可以發(fā)現(xiàn)傳統(tǒng)分析方法不能發(fā)現(xiàn)的內(nèi)容和規(guī)律,并且它將人們從單調(diào)、枯燥的閱讀專利文獻(xiàn)的工作中解放出來,使用計(jì)算機(jī)代替了人類勞動(dòng),這樣不僅提高了效率,而且提升了準(zhǔn)確度。因此,數(shù)據(jù)挖掘作為一個(gè)專利分析的強(qiáng)有力工具被引入到專利分析中來,并且得到快速的發(fā)展應(yīng)用。專利數(shù)據(jù)挖掘流程應(yīng)考慮的問題:一是用數(shù)據(jù)挖掘解決什么樣的問題;二是為進(jìn)行數(shù)據(jù)挖掘所做的數(shù)據(jù)準(zhǔn)備;三是數(shù)據(jù)挖掘的各種分析算法。故專利數(shù)據(jù)挖掘的一般過程通常按照以下步驟來完成:領(lǐng)會(huì)數(shù)據(jù)挖掘的目的,獲取分析所用的數(shù)據(jù)集合,探索、清理和預(yù)處理數(shù)據(jù),選擇要使用的數(shù)據(jù)挖掘技術(shù),使用算法解決問題,解釋算法的結(jié)果。而其一般流程可簡化為三個(gè)階段:數(shù)據(jù)準(zhǔn)備數(shù)據(jù)挖掘結(jié)果解釋和評(píng)價(jià)。本文采用簡化的流程進(jìn)行實(shí)證分析。

二、石家莊地區(qū)制藥企業(yè)專利數(shù)據(jù)挖掘

本文對(duì)石家莊地區(qū)制藥企業(yè)的專利數(shù)據(jù)進(jìn)行挖掘分析,挖掘?qū)ο笫侨A北制藥集團(tuán)公司、石家莊制藥集團(tuán)有限公司、石家莊神威藥業(yè)股份有限公司、石家莊四藥股份、河北以嶺藥業(yè)股份有限公司、石家莊市華曙制藥集團(tuán)、河北醫(yī)科大學(xué)制藥廠、河北圣雪大成制藥有限責(zé)任公司等地址在石家莊且具有一定代表性的藥企,希望通過這些藥企數(shù)據(jù)能夠找到石家莊地區(qū)制藥領(lǐng)域的核心組成,并能為藥企更好地發(fā)展提供有力的信息支持。IPC號(hào)是目前權(quán)威的專利技術(shù)主題的標(biāo)識(shí)編碼之一,基本包含了各行各業(yè)的專利信息,是一個(gè)龐大的專利信息體系。目前國內(nèi)外很多分析方法及技術(shù)大部分是基于專利的IPC分類號(hào)來分析專利技術(shù)主題的,此分析方法有一定的參考價(jià)值和科學(xué)性,而且對(duì)于具有大量專利信息的分析具有很好的總結(jié)概括效果。本文以專利全部IPC號(hào)為分析對(duì)象,并且構(gòu)建IPC號(hào)之間的關(guān)聯(lián)規(guī)則,在最大程度上揭示隱含的專利技術(shù)關(guān)聯(lián)性,從而為石家莊地區(qū)制藥企業(yè)專利技術(shù)的發(fā)展提供參考。

1.數(shù)據(jù)準(zhǔn)備。數(shù)據(jù)來源的準(zhǔn)確與否是數(shù)據(jù)分析與挖掘的基礎(chǔ),是數(shù)據(jù)分析與挖掘的根本。本文所使用的石家莊地區(qū)制藥領(lǐng)域?qū)@麛?shù)據(jù)由萬方數(shù)據(jù)公司提供,以制藥企業(yè)地址為石家莊為檢索條件,搜索出了包括從1985—2014年間石家莊地區(qū)制藥領(lǐng)域?qū)@?44條,分別分布在A、B、C、D、E、F、G、H八個(gè)大部。對(duì)專利數(shù)據(jù)庫中的644條專利進(jìn)行篩選,根據(jù)“分類號(hào)”字段限制,它涉及專利信息的分類,有些IPC所涉及的范圍與石家莊地區(qū)制藥領(lǐng)域沒有聯(lián)系或聯(lián)系很小,不宜保留。根據(jù)“申請(qǐng)人(專利權(quán)人)”字段的限制,剔除與石家莊地區(qū)制藥不相關(guān)或制藥企業(yè)地址不在石家莊地區(qū)的專利。最后篩選出590條最符合該領(lǐng)域特點(diǎn)的專利。由于IPC號(hào)在幾乎所有現(xiàn)存數(shù)據(jù)庫中均是以一個(gè)字段存儲(chǔ)一個(gè)專利的所有IPC分類號(hào)的,形如:A61K38/26、A61K9/08、A61K47/12、A61P3/10,且每個(gè)專利一般都有好幾個(gè)分類號(hào),而每個(gè)企業(yè)又研究大量的專利,所以在進(jìn)行專利分析之前,需要對(duì)專利IPC號(hào)進(jìn)行數(shù)據(jù)整理。由于過于細(xì)致的IPC分類號(hào)并不利于專利主題的分析與揭示,所以本文中采用專利小類分析,就是取IPC號(hào)的前4位。并將申請(qǐng)人與其對(duì)應(yīng)的多條IPC號(hào)進(jìn)行拆分,拆分后的數(shù)據(jù)項(xiàng)有773條,即顯示每個(gè)申請(qǐng)人對(duì)應(yīng)的一條IPC分類號(hào)。

2.數(shù)據(jù)挖掘。本文數(shù)據(jù)挖掘過程將采用Excel和SQLsever2005軟件,首先對(duì)所得到的數(shù)據(jù)導(dǎo)入SQLserver2005進(jìn)行挖掘,利用SQLserver2005可以直接進(jìn)行IPC號(hào)的關(guān)聯(lián)規(guī)則挖掘,然后對(duì)專利信息進(jìn)行分析。

3.數(shù)據(jù)挖掘結(jié)果與分析。基于關(guān)聯(lián)規(guī)則制作依賴關(guān)系網(wǎng)絡(luò)圖,可以更加直觀地看到各個(gè)IPC號(hào)之間的關(guān)聯(lián)和依賴狀態(tài)。

(1)以A61K、C12N、C12P、C07D、C07C為中心的核心專利技術(shù)群。這些專利的IPC分類號(hào)是關(guān)鍵部分藥物組成的各種化合物即藥物主要成分的重要聚集組。A61K(醫(yī)用、牙科用等的配置品)是項(xiàng)集次數(shù)最多的,即支持度較高的,C12P(發(fā)酵或使用酶的方法合成目標(biāo)化合物或組合物或從外消旋混合物中分離旋光異構(gòu)體)、C12N(微生物或酶;其組合物)、C07D(雜環(huán)環(huán)合物,例如鄰氯芐星青霉素的合成)、C07C(無環(huán)和碳環(huán)化合物)通過專利相關(guān)知識(shí)我們已經(jīng)知道這些都是藥物的合成成分,即土霉素、鏈霉素、青霉素等多種抗生素和維生素的主要成分組成,是制藥領(lǐng)域的核心。這也是和石家莊地區(qū)制藥企業(yè)的核心領(lǐng)域相符合的。另外這些專利主題的相互關(guān)聯(lián)、依賴說明了石家莊地區(qū)制藥企業(yè)在該領(lǐng)域具有很好的布局網(wǎng)絡(luò),在研發(fā)數(shù)量上也占有一定優(yōu)勢(shì),所以說是石家莊地區(qū)制藥企業(yè)的主要研究領(lǐng)域。

(2)以B65G、C12M為中心的輔助設(shè)備專利技術(shù)群。藥品的生產(chǎn)離不開設(shè)備的支持,所以設(shè)備方面的專利也能體現(xiàn)制藥企業(yè)的技術(shù)水平。在圖1中也能體現(xiàn)出來,專利間有著很強(qiáng)的依賴性和關(guān)聯(lián)性,在核心專利周邊有B65G(運(yùn)輸或貯存裝置,例如裝載或傾斜用輸送機(jī)、車間輸送機(jī)系統(tǒng)、氣動(dòng)管道輸送機(jī))、C12M(酶學(xué)或微生物學(xué)裝置),這些是制藥的輔助技術(shù)手段,與中心專利是相互聯(lián)系的,也是制藥過程中必不可少的,在這些方面的提高有利于制藥核心領(lǐng)域的發(fā)展。先進(jìn)藥品的研制離不開先進(jìn)制藥設(shè)備支持,所以設(shè)備水平的提高也是關(guān)鍵的。如圖3所示,石家莊地區(qū)制藥企業(yè)在這一方面的技術(shù)依賴網(wǎng)絡(luò)也已經(jīng)形成,說明在此技術(shù)領(lǐng)域也已經(jīng)擁有較強(qiáng)實(shí)力。但與中心主要專利相比,輔助設(shè)備專利技術(shù)還是需要不斷提高的。

三、總結(jié)

第7篇

1.1GPUGPU之所以在某些應(yīng)用中較CPU能夠獲得更高的性能,主要是因?yàn)镚PU和CPU在硬件結(jié)構(gòu)設(shè)計(jì)上存在很大差異。如圖1所示[10],GPU將大量的晶體管用作ALU計(jì)算單元,從而適應(yīng)密集且可并行的圖像渲染計(jì)算處理需要。相對(duì)GPU而言,CPU卻是將更多的晶體管用作復(fù)雜的控制單元和緩存等非計(jì)算功能,并以此來提高少量執(zhí)行單元的執(zhí)行效率。此外,存儲(chǔ)帶寬是另一個(gè)重要問題。存儲(chǔ)器到處理器的帶寬已經(jīng)成為許多應(yīng)用程序的瓶頸。目前GPU的芯片帶寬是CPU芯片帶寬的6倍左右。

1.2CPU/GPU協(xié)同并行計(jì)算在諸多適用于高性能計(jì)算的體系結(jié)構(gòu)中,采用通用多核CPU與定制加速協(xié)處理器相結(jié)合的異構(gòu)體系結(jié)構(gòu)成為構(gòu)造千萬億次計(jì)算機(jī)系統(tǒng)的一種可行途徑。而在眾多異構(gòu)混合平臺(tái)中,基于CPU/GPU異構(gòu)協(xié)同的計(jì)算平臺(tái)具有很大的發(fā)展?jié)摿?。在協(xié)同并行計(jì)算時(shí),CPU和GPU應(yīng)各取所長,即CPU承擔(dān)程序控制,而密集計(jì)算交由GPU完成。另外,除管理和調(diào)度GPU計(jì)算任務(wù)外,CPU也應(yīng)當(dāng)承擔(dān)一部分科學(xué)計(jì)算任務(wù)[12]。新型異構(gòu)混合體系結(jié)構(gòu)對(duì)大規(guī)模并行算法研究提出了新的挑戰(zhàn),迫切需要深入研究與該體系結(jié)構(gòu)相適應(yīng)的并行算法。事實(shí)上,目前基于GPU加速的數(shù)據(jù)挖掘算法實(shí)現(xiàn)都有CPU參與協(xié)同計(jì)算,只是討論的重點(diǎn)多集中在為適應(yīng)GPU而進(jìn)行的并行化設(shè)計(jì)上。實(shí)踐中,需要找出密集計(jì)算部分并將其遷移到GPU中執(zhí)行,剩余部分仍然由CPU來完成。

1.3CUDA為了加速GPU通用計(jì)算的發(fā)展,NVIDIA公司在2007年推出統(tǒng)一計(jì)算設(shè)備架構(gòu)(ComputeUnifiedDeviceArchitecture,CUDA)[10,13]。CUDA編程模型將CPU作為主機(jī),GPU作為協(xié)處理器,兩者協(xié)同工作,各司其職。CPU負(fù)責(zé)進(jìn)行邏輯性強(qiáng)的事務(wù)處理和串行計(jì)算,GPU則專注于執(zhí)行高度線程化的并行處理任務(wù)。CUDA采用單指令多線程(SIMT)執(zhí)行模式,而內(nèi)核函數(shù)(kernel)執(zhí)行GPU上的并行計(jì)算任務(wù),是整個(gè)程序中一個(gè)可以被并行執(zhí)行的步驟。CUDA計(jì)算流程通常包含CPU到GPU數(shù)據(jù)傳遞、內(nèi)核函數(shù)執(zhí)行、GPU到CPU數(shù)據(jù)傳遞三個(gè)步驟。CUDA不需要借助于圖形學(xué)API,并采用了比較容易掌握的類C/C++語言進(jìn)行開發(fā),為開發(fā)人員有效利用GPU的強(qiáng)大性能提供了條件。CUDA被廣泛應(yīng)用于石油勘探、天文計(jì)算、流體力學(xué)模擬、分子動(dòng)力學(xué)仿真、生物計(jì)算和圖像處理等領(lǐng)域,在很多應(yīng)用中獲得了幾倍、幾十倍,乃至上百倍的加速比[13]。

1.4并行編程語言和模型過去幾十年里,人們相繼提出了很多并行編程語言和模型,其中使用最廣泛的是為可擴(kuò)展的集群計(jì)算設(shè)計(jì)的消息傳遞接口(MessagePassingInterface,MPI)和為共享存儲(chǔ)器的多處理器系統(tǒng)設(shè)計(jì)的OpenMP[14]。OpenMP最初是為CPU執(zhí)行而設(shè)計(jì)的。OpenACC[15]是計(jì)算機(jī)廠商為異構(gòu)計(jì)算系統(tǒng)提出的一種新編程模型,其主要優(yōu)勢(shì)是為抽象掉許多并行編程細(xì)節(jié)提供了編譯自動(dòng)化和運(yùn)行時(shí)系統(tǒng)支持。這使得應(yīng)用程序在不同廠商的計(jì)算機(jī)和同一廠商不同時(shí)代的產(chǎn)品中保持兼容性。然而,學(xué)習(xí)OpenACC需要理解所有相關(guān)的并行編程細(xì)節(jié)。在MPI編程模型中,集群中的計(jì)算節(jié)點(diǎn)之間相互不共享存儲(chǔ)器;節(jié)點(diǎn)之間的數(shù)據(jù)共享與交互都通過顯式傳遞消息的方式實(shí)現(xiàn)。MPI成功應(yīng)用于高性能科學(xué)計(jì)算(HPC)領(lǐng)域。現(xiàn)在很多HPC集群采用的是異構(gòu)的CPU/GPU節(jié)點(diǎn)。在集群層次上,開發(fā)人員使用MPI進(jìn)行編程,但在節(jié)點(diǎn)層次上,CUDA是非常高效的編程接口。由于計(jì)算節(jié)點(diǎn)之間缺乏共享存儲(chǔ)器機(jī)制,要把應(yīng)用程序移植到MPI中需要做大量針對(duì)性分析和分解工作。包括蘋果公司在內(nèi)的幾大公司在2009年共同開發(fā)了一套標(biāo)準(zhǔn)編程接口,稱之為OpenCL[16]。與CUDA類似,OpenCL編程模型定義了語言擴(kuò)展和運(yùn)行時(shí)API,使程序員可以在大規(guī)模并行處理中進(jìn)行并行管理和數(shù)據(jù)傳遞。與CUDA相比,OpenCL更多地依賴API,而不是語言的擴(kuò)展,這允許廠商快速調(diào)整現(xiàn)有編譯器和工具來處理OpenCL程序。OpenCL和CUDA在關(guān)鍵概念和特性上有諸多相似之處,因此CUDA程序員可以很快掌握OpenCL。

1.5MATLAB因提供豐富的庫函數(shù)庫以及諸多其他研究者貢獻(xiàn)和共享的函數(shù)庫,MATLAB是研究人員實(shí)現(xiàn)算法的常用平臺(tái)。通過封裝的數(shù)據(jù)容器(GPUArrays)和函數(shù),MATLAB允許沒有底層CUDA編程能力的研究人員可以較容易獲得GPU計(jì)算能力,因此MATLAB較OpenCL更容易上手。截止準(zhǔn)備本文時(shí),2014版本的MATLAB提供了226個(gè)內(nèi)置的GPU版本的庫函數(shù)。對(duì)于有CUDA編程經(jīng)驗(yàn)的人員,MATLAB允許直接集成CUDA內(nèi)核進(jìn)MATLAB應(yīng)用。本文第四節(jié)的實(shí)驗(yàn)亦基于MATLAB實(shí)現(xiàn)。

1.6JACKET引擎JACKET[17]是一個(gè)由AccelerEyes公司開發(fā)專門用于以MATLAB為基礎(chǔ)的基于GPU的計(jì)算引擎,其最新版本已經(jīng)包含了高層的接口,完全屏蔽了底層硬件的復(fù)雜性,并支持所有支持CUDA的GPU計(jì)算,降低了進(jìn)行CUDA開發(fā)的門檻。JACKET是MATLAB代碼在GPU上運(yùn)行的插件。JACKET允許標(biāo)準(zhǔn)的MATLAB代碼能夠在任何支持CUDA的GPU上運(yùn)行,這使得廣大的MATLAB及C/C++用戶可以直接使用GPU強(qiáng)大的計(jì)算能力進(jìn)行相關(guān)應(yīng)用領(lǐng)域的快速原型開發(fā)。JACKET包含了一套運(yùn)行于MATLAB環(huán)境中優(yōu)化并行計(jì)算的基礎(chǔ)函數(shù)庫。并且支持MATLAB數(shù)據(jù)類型,可將任何存儲(chǔ)于MATLABCPU內(nèi)存中的變量數(shù)據(jù)轉(zhuǎn)換為GPU上的數(shù)據(jù)類型,對(duì)以往的MATLAB程序來說,只需更改數(shù)據(jù)類型,就能遷移到GPU上運(yùn)行。本文的第四節(jié)的實(shí)驗(yàn)亦基于JACKET在MATLAB上實(shí)現(xiàn)。

2相關(guān)工作綜述

2.1基于CPU的數(shù)據(jù)挖掘算法實(shí)現(xiàn)數(shù)據(jù)挖掘算法的研究一直很活躍,許多成熟和經(jīng)典的算法已經(jīng)實(shí)現(xiàn)在諸多研究或商用軟件包/平臺(tái),例如開源的Weka[18]和KNIME,以及商用的IBM公司的PASWModeler(即之前SPSS公司的Clementine®)。這些軟件默認(rèn)都是單機(jī)版本,可運(yùn)行在普通PC或高性能服務(wù)器上,基于CPU的計(jì)算能力。為了適應(yīng)目前大規(guī)模的計(jì)算,出現(xiàn)了基于Google公司提出的MapReduce[19]計(jì)算框架實(shí)現(xiàn)的開源數(shù)據(jù)挖掘平臺(tái)Mahout[20]。相關(guān)的研究起源于斯坦福大學(xué)AndrewNg研究組2006年的經(jīng)典論著[21]。由于現(xiàn)有的算法需要先找到可“遷移”到MapReduce的方式,因此目前Mahout平臺(tái)上僅有幾個(gè)能支持分布式部署的數(shù)據(jù)挖掘算法,包括用于分類的樸素貝葉斯、隨機(jī)森林,用于聚類的k-Means,基于項(xiàng)目的協(xié)同過濾等。目前Mahout仍然是基于CPU的計(jì)算能力。

2.2聚類算法聚類是數(shù)據(jù)挖掘中用來發(fā)現(xiàn)數(shù)據(jù)分布和隱含模式的一種無監(jiān)督學(xué)習(xí),每個(gè)訓(xùn)練元組的類標(biāo)號(hào)是未知的,并且要學(xué)習(xí)的個(gè)數(shù)或集合也可能事先不知道。對(duì)于給定的數(shù)據(jù)集,聚類算法按照一定的度量,將數(shù)據(jù)對(duì)象分組為多個(gè)簇,使得在同一個(gè)簇中的對(duì)象之間具有較高的相似度,而不同簇中的對(duì)象差別很大[22-23]。k-Means算法是經(jīng)典的基于距離/劃分的聚類分析算法,也是應(yīng)用得最廣泛的算法之一,采用距離作為相似性的評(píng)價(jià)指標(biāo),即認(rèn)為兩個(gè)對(duì)象距離越近,其相似度就越大。k-Means算法的流程如下[24]:輸入:簇的數(shù)目k和包含n個(gè)對(duì)象數(shù)據(jù)集D。輸出:k個(gè)簇的集合。方法:1)從D中任意選擇k個(gè)對(duì)象作為初始簇中心。計(jì)算每個(gè)數(shù)據(jù)對(duì)象到各簇中心的歐氏距離,將每個(gè)數(shù)據(jù)對(duì)象分配到最相似的簇中。2)重新計(jì)算每個(gè)簇中對(duì)象的均值。3)循環(huán)執(zhí)行步驟2-3兩個(gè)步驟,直到各個(gè)簇內(nèi)對(duì)象不再變化。上述算法步驟2屬于計(jì)算密度最大的部分,且具備并行化的條件。計(jì)算各個(gè)數(shù)據(jù)對(duì)象到各簇中心的歐氏距離和將數(shù)據(jù)對(duì)象分配到最近的簇的時(shí)候,數(shù)據(jù)對(duì)象之間都是相互獨(dú)立的,不需要進(jìn)行交換,且沒有先后順序,后計(jì)算的對(duì)象不需要等待前一次計(jì)算的結(jié)果,僅在完成全部分配過程之后,才需要進(jìn)行一次數(shù)據(jù)匯總。所以文獻(xiàn)[25]的作者們使用GPU并行優(yōu)化了一維數(shù)據(jù)的k-Means算法的步驟2,并使用帶緩存機(jī)制的常數(shù)存儲(chǔ)器保存中心點(diǎn)數(shù)據(jù),能獲得更好的讀取效率。文獻(xiàn)中還展示了實(shí)驗(yàn)結(jié)果,在8600GT上取得了14倍左右的加速效果。DBSCAN屬于基于密度的聚類算法中最常被引用的,G-DBSCAN是它的一個(gè)GPU加速版本[26]。文獻(xiàn)[26]的實(shí)驗(yàn)顯示較DBSCAN可以實(shí)現(xiàn)高達(dá)112倍的加速。BIRCH是經(jīng)典的基于層次的聚類算法,文獻(xiàn)[27]中基于CUDA實(shí)現(xiàn)的GPU加速版本在實(shí)驗(yàn)中獲得了高達(dá)154倍的加速。

2.3分類算法分類是數(shù)據(jù)挖掘中應(yīng)用領(lǐng)域極其廣泛的重要技術(shù)之一,至今已經(jīng)提出很多算法。分類算法[28]是一種監(jiān)督學(xué)習(xí),通過對(duì)已知類別訓(xùn)練集的分析,從中發(fā)現(xiàn)分類規(guī)則,以此預(yù)測(cè)新數(shù)據(jù)的類別。分類算法是將一個(gè)未知樣本分到幾個(gè)已存在類的過程,主要包含兩個(gè)步驟:首先,根據(jù)類標(biāo)號(hào)已知的訓(xùn)練數(shù)據(jù)集,訓(xùn)練并構(gòu)建一個(gè)模型,用于描述預(yù)定的數(shù)據(jù)類集或概念集;其次,使用所獲得的模型對(duì)新的數(shù)據(jù)進(jìn)行分類。近年來,許多研究已經(jīng)轉(zhuǎn)向?qū)崿F(xiàn)基于GPU加速分類算法,包括k-NN(k近鄰)分類算法[29],支持向量機(jī)分類算法[30],貝葉斯分類算法[31-32]等。kNN算法[33]是數(shù)據(jù)挖掘中應(yīng)用最廣泛的一種分類算法,簡單易實(shí)現(xiàn)。它是一種典型的基于實(shí)例的學(xué)習(xí)法,將待判定的檢驗(yàn)元組與所有的訓(xùn)練元組進(jìn)行比較,挑選與其最相似的k個(gè)訓(xùn)練數(shù)據(jù),基于相應(yīng)的標(biāo)簽和一定的選舉規(guī)則來決定其標(biāo)簽。在ShenshenLiang等人的文章[34]指出,由于kNN算法是一種惰性學(xué)習(xí)法,對(duì)于每個(gè)待分類的樣本,它都需要計(jì)算其與訓(xùn)練樣本庫中所有樣本的距離,然后通過排序,才能得到與待分類樣本最相鄰的k個(gè)鄰居。那么當(dāng)遇到大規(guī)模數(shù)據(jù)并且是高維樣本時(shí),kNN算法的時(shí)間復(fù)雜度和空間復(fù)雜度將會(huì)很高,造成執(zhí)行效率低下,無法勝任大數(shù)據(jù)分析任務(wù)。所以加速距離的計(jì)算是提高kNN算法的核心問題。因?yàn)槊總€(gè)待分類的樣本都可以獨(dú)立地進(jìn)行kNN分類,前后之間沒有計(jì)算順序上的相關(guān)性,因此可以采用GPU并行運(yùn)算方法解決kNN算法串行復(fù)雜度高的問題。將計(jì)算測(cè)試集和訓(xùn)練集中點(diǎn)與點(diǎn)之間的距離和排序一步采用GPU并行化完成,其余如判斷類標(biāo)號(hào)一步難以在GPU上高效實(shí)現(xiàn),由CPU完成。文獻(xiàn)[34]通過GPU并行化實(shí)現(xiàn)kNN算法,讓kNN算法時(shí)間復(fù)雜度大幅度減少,從而說明GPU對(duì)kNN算法的加速效果是非常明顯的。

2.4關(guān)聯(lián)分析算法關(guān)聯(lián)規(guī)則挖掘是數(shù)據(jù)挖掘中較成熟和重要的研究方法,旨在挖掘事務(wù)數(shù)據(jù)庫頻繁出現(xiàn)的項(xiàng)集。因此,挖掘關(guān)聯(lián)規(guī)則的問題可以歸結(jié)為挖掘頻繁項(xiàng)集[35]。關(guān)聯(lián)分析算法首先找出所有的頻繁項(xiàng)集,然后根據(jù)最小支持度和最小置信度從頻繁項(xiàng)集中產(chǎn)生強(qiáng)關(guān)聯(lián)規(guī)則。Apriori算法[36]是最有影響力的挖掘布爾關(guān)聯(lián)規(guī)則頻繁項(xiàng)目集的經(jīng)典算法。Apriori算法使用逐層搜索的迭代方法產(chǎn)生頻繁項(xiàng)目集,即利用k頻繁項(xiàng)集來產(chǎn)生(k+1)項(xiàng)集,是一種基于生成候選項(xiàng)集的關(guān)聯(lián)規(guī)則挖掘方法。在劉瑩等人的文章[37]中指出,產(chǎn)生候選項(xiàng)和計(jì)算支持度,占據(jù)Apriori的大部分計(jì)算量。產(chǎn)生候選項(xiàng)的任務(wù)是連接兩個(gè)頻繁項(xiàng)集,而這個(gè)任務(wù)在不同線程之間是獨(dú)立的,所以這個(gè)過程適合在GPU上被并行化。通過掃描交易數(shù)據(jù)庫,計(jì)算支持度程序記錄一個(gè)候選項(xiàng)集出現(xiàn)的次數(shù)。由于每個(gè)候選項(xiàng)集的計(jì)數(shù)與其他項(xiàng)集的計(jì)數(shù)相對(duì)獨(dú)立,同樣適合于多線程并行。所以文獻(xiàn)[37]的作者們?cè)趯?shí)現(xiàn)Apriori時(shí)使用GPU并行化了產(chǎn)生候選項(xiàng)和計(jì)算支持度這兩個(gè)過程,取得了顯著的加速效果。文獻(xiàn)[38]是目前發(fā)現(xiàn)的對(duì)于在GPU上實(shí)現(xiàn)頻繁項(xiàng)集挖掘最全面細(xì)致的研究。他們使用的是早期的CUDA平臺(tái),采用了bitmap和trie兩種數(shù)據(jù)結(jié)構(gòu)來實(shí)現(xiàn)GPU的挖掘算法,并且根據(jù)不同數(shù)據(jù)集和支持度進(jìn)行了算法性能的對(duì)比,均相對(duì)于CPU版本的算法獲得的一定的加速比。

2.5時(shí)序分析由于越來越多的數(shù)據(jù)都與時(shí)間有著密切的關(guān)系,時(shí)序數(shù)據(jù)作為數(shù)據(jù)挖掘研究的重要分支之一,越來越受到人們的重視。其研究的目的主要包括以下兩個(gè)方面:一是學(xué)習(xí)待觀察過程過去的行為特征;二是預(yù)測(cè)未來該過程的可能狀態(tài)或表現(xiàn)。時(shí)序數(shù)據(jù)挖掘主要包含以下幾個(gè)主要任務(wù):數(shù)據(jù)預(yù)處理,時(shí)序數(shù)據(jù)表示,分割,相似度度量,分類,聚類等。這些任務(wù)中很多都涉及到相當(dāng)大的計(jì)算量。由于問題規(guī)模的不斷擴(kuò)大,并且對(duì)于實(shí)時(shí)性能的要求,時(shí)序數(shù)據(jù)挖掘的任務(wù)就必須要求充分地提高計(jì)算速度或者通過優(yōu)化減少計(jì)算量。時(shí)序數(shù)據(jù)的表示有時(shí)候會(huì)采取特征來表示,這就涉及到了特征提取問題,當(dāng)特征數(shù)量龐大的時(shí)候就需要進(jìn)行維數(shù)約簡,主要的方法有奇異值分解法,離散小波變換。這些計(jì)算都涉及到很大的時(shí)間復(fù)雜度,為了減少計(jì)算的時(shí)間消耗,SheetalLahabar等人使用GPU加速SVD的計(jì)算,獲得了60多倍的加速效果[39]。動(dòng)態(tài)時(shí)間彎曲(DynamicTimeWarping,DTW)起初被應(yīng)用于文本數(shù)據(jù)匹配和視覺模式識(shí)別的研究領(lǐng)域,是一種相似性度量算法。研究表明這種基于非線性彎曲技術(shù)的算法可以獲得很高的識(shí)別、匹配精度。Berndt和Clifford提出了將DTW的概念引入小型時(shí)間序列分析領(lǐng)域,在初步的實(shí)驗(yàn)中取得了較好的結(jié)果[40]。隨著問題規(guī)模的擴(kuò)大,對(duì)于DTW的計(jì)算成為了時(shí)序數(shù)據(jù)挖掘的首先要處理的問題。在DTW中,搜索需要找出與訓(xùn)練數(shù)據(jù)最近距離的樣本,這就需要搜索與每個(gè)訓(xùn)練樣本的距離,這就可以很好的利用GPU進(jìn)行并行化處理。DorukSart等人在對(duì)DTW加速的處理中,獲得了兩個(gè)數(shù)量級(jí)的加速效果[41]。而對(duì)于分類和聚類任務(wù)的加速,上面已經(jīng)提到,這里不再累贅。

2.6深度學(xué)習(xí)深度學(xué)習(xí)雖然隸屬機(jī)器學(xué)習(xí),但鑒于機(jī)器學(xué)習(xí)和數(shù)據(jù)挖掘領(lǐng)域的緊密聯(lián)系,深度學(xué)習(xí)必定將在數(shù)據(jù)挖掘領(lǐng)域獲得越來越多的應(yīng)用。從2006年Hinton和他的學(xué)生Salakhutdinov在《科學(xué)》上發(fā)表的文章[42]開始,深度學(xué)習(xí)在學(xué)術(shù)界持續(xù)升溫。深度學(xué)習(xí)的實(shí)質(zhì)是通過構(gòu)建具有很多隱層的機(jī)器學(xué)習(xí)模型和海量的訓(xùn)練數(shù)據(jù),來學(xué)習(xí)更有用的特征,從而最終提升分類預(yù)測(cè)的準(zhǔn)確性[43]。如何在工程上利用大規(guī)模的并行計(jì)算平臺(tái)來實(shí)現(xiàn)海量數(shù)據(jù)訓(xùn)練,是各個(gè)機(jī)構(gòu)從事深度學(xué)習(xí)技術(shù)研發(fā)首先要解決的問題。傳統(tǒng)的大數(shù)據(jù)平臺(tái)如Hadoop,由于數(shù)據(jù)處理延遲太高而不適合需要頻繁迭代的深度學(xué)習(xí)。神經(jīng)網(wǎng)絡(luò)一般基于大量相似的神經(jīng)元,故本質(zhì)上可以高度并行化訓(xùn)練;通過映射到GPU,可以實(shí)現(xiàn)比單純依賴CPU顯著地提升。谷歌搭建的DistBelief是一個(gè)采用普通服務(wù)器的深度學(xué)習(xí)并行計(jì)算平臺(tái),采用異步算法,由很多計(jì)算單元獨(dú)立更新同一個(gè)參數(shù)服務(wù)器的模型參數(shù),實(shí)現(xiàn)了隨機(jī)梯度下降算法的并行化,加快了模型訓(xùn)練速度。百度的多GPU并行計(jì)算平臺(tái)克服了傳統(tǒng)SGD訓(xùn)練不能并行的技術(shù)難題,神經(jīng)網(wǎng)絡(luò)的訓(xùn)練已經(jīng)可以在海量語料上并行展開。NVIDIA在2014年9月推出了深度學(xué)習(xí)GPU加速庫cuDNN,可以方便地嵌入高層級(jí)機(jī)器學(xué)習(xí)框架中使用,例如Caffe[45]。cuDNN支持NVIDIA的全系列GPU,包括低端的TegraK1和高端的TeslaK40,并承諾可向上支持未來的GPU。

2.7小結(jié)并行化能帶來多少倍的加速取決于算法中可并行化的部分。例如,如果可并行部分的時(shí)間占整個(gè)應(yīng)用程序執(zhí)行時(shí)間的20%,那么即使將并行部分加速100倍,總執(zhí)行時(shí)間也只能減少19.8%,整個(gè)應(yīng)用程序的加速只有1.247倍;即使無限加速也只能減少約20%的執(zhí)行時(shí)間,總加速不會(huì)超過1.25倍。對(duì)于一個(gè)數(shù)據(jù)挖掘(學(xué)習(xí)和預(yù)測(cè))算法進(jìn)行GPU加速實(shí)現(xiàn),首先要思考是否存在可并行執(zhí)行的部分,之后再結(jié)合GPU的架構(gòu)特點(diǎn)進(jìn)行針對(duì)性實(shí)現(xiàn)優(yōu)化。然而,由于數(shù)據(jù)挖掘算法普遍是數(shù)據(jù)密集型計(jì)算,而GPU片內(nèi)存儲(chǔ)容量有限,如何降低與內(nèi)存交換數(shù)據(jù)集是一個(gè)要解決的關(guān)鍵問題。通過以上相關(guān)工作的分析,可以發(fā)現(xiàn)數(shù)據(jù)挖掘算法在GPU上的加速具有數(shù)據(jù)獨(dú)立,可并行化共同特征。本文提出數(shù)據(jù)挖掘算法在GPU上加速實(shí)現(xiàn)的一種解決思路:在大數(shù)據(jù)下,分析算法的性能瓶頸,從而確定算法中耗時(shí)大,時(shí)間復(fù)雜度高的部分,將此部分在GPU上執(zhí)行,不耗時(shí)部分在CPU上串行執(zhí)行,以達(dá)到加速效果。為了更充分利用GPU的并行計(jì)算的體系結(jié)構(gòu),可深入分析耗時(shí)大的部分,將具有數(shù)據(jù)獨(dú)立,可并行化的部分在GPU上并行執(zhí)行,達(dá)到更進(jìn)一步的加速效果。

3實(shí)踐和分析:協(xié)同過濾推薦

當(dāng)前主要的協(xié)同過濾推薦算法有兩類:基于用戶(r-based)和基于項(xiàng)目(item-based)的協(xié)同過濾推薦算法?;陧?xiàng)目的協(xié)同過濾推薦算法[46-50]認(rèn)為,項(xiàng)目間的評(píng)分具有相似性,可以通過用戶對(duì)目標(biāo)項(xiàng)目的若干相似項(xiàng)目的評(píng)分來估計(jì)該項(xiàng)目的分值?;谟脩舻膮f(xié)同過濾推薦算法認(rèn)為,如果用戶對(duì)一些項(xiàng)目的評(píng)分比較相似,那么他們對(duì)其他項(xiàng)目的評(píng)分也比較相似。本文根據(jù)以上總結(jié)的算法特征圍繞兩種經(jīng)典協(xié)同過濾算法的實(shí)現(xiàn),通過大規(guī)模數(shù)據(jù)的實(shí)驗(yàn)來驗(yàn)證GPU相對(duì)于傳統(tǒng)CPU的優(yōu)勢(shì)。

3.1算法實(shí)現(xiàn)

3.1.1基于CPU實(shí)現(xiàn)協(xié)同過濾推薦的兩類經(jīng)典算法本文基于MATLAB實(shí)現(xiàn)CPU版本的基于用戶和基于項(xiàng)目的兩種經(jīng)典協(xié)同過濾推薦算法。實(shí)現(xiàn)的步驟:1)數(shù)據(jù)表示:收集用戶的評(píng)分?jǐn)?shù)據(jù),并進(jìn)行數(shù)據(jù)清理、轉(zhuǎn)換,最終形成一個(gè)mn的用戶-項(xiàng)目評(píng)分矩陣R,m和n分別代表矩陣中的用戶數(shù)和項(xiàng)目數(shù),矩陣中的元素代表用戶對(duì)項(xiàng)目的評(píng)分值。2)最近鄰居搜索:主要完成對(duì)目標(biāo)用戶/項(xiàng)目的最近鄰居的查找。通過計(jì)算目標(biāo)用戶/項(xiàng)目與其他用戶/項(xiàng)目之間的相似度,算出與目標(biāo)用戶/項(xiàng)目最相似的最近鄰居集。該過程分兩步完成:首先采用協(xié)同過濾推薦算法中運(yùn)用較多的度量方法“Pearson相關(guān)系數(shù)”計(jì)算用戶/項(xiàng)目之間的相似度得到相應(yīng)的相似度矩陣,其次是采用最近鄰方法找到目標(biāo)用戶/項(xiàng)目的最近的K個(gè)鄰居,這些鄰居是由與目標(biāo)相似度最高的一些用戶/項(xiàng)目組成的。3)產(chǎn)生推薦:根據(jù)之前計(jì)算好的用戶/項(xiàng)目之間的相似度,并使用相應(yīng)的預(yù)測(cè)評(píng)分函數(shù)對(duì)用戶未打分的項(xiàng)目進(jìn)行預(yù)測(cè),得到預(yù)測(cè)評(píng)分矩陣,然后選擇預(yù)測(cè)評(píng)分最高的Top-n項(xiàng)推薦給目標(biāo)用戶。4)性能評(píng)估:本研究擬采用平均絕對(duì)誤差MAE作為評(píng)價(jià)推薦系統(tǒng)預(yù)測(cè)質(zhì)量的評(píng)價(jià)標(biāo)準(zhǔn)。MAE可以直觀地對(duì)預(yù)測(cè)質(zhì)量進(jìn)行度量,是最常用的一種方法。MAE通過計(jì)算預(yù)測(cè)的用戶評(píng)分與實(shí)際評(píng)分之間的偏差度量預(yù)測(cè)的準(zhǔn)確性;MAE越小,預(yù)測(cè)質(zhì)量越高。

3.1.2基于GPU實(shí)現(xiàn)協(xié)同過濾推薦的兩類經(jīng)典算法在大數(shù)據(jù)下,協(xié)同過濾算法中主要的時(shí)間消耗在于相似度計(jì)算模塊,占了整個(gè)算法的大部分時(shí)間,且每個(gè)用戶/項(xiàng)目之間的相似度可以被獨(dú)立計(jì)算,不依靠其他用戶/項(xiàng)目,具備并行化的條件,所以在以下的實(shí)驗(yàn)中,將相似度計(jì)算模塊在GPU上執(zhí)行,其他部分在CPU上執(zhí)行,進(jìn)而提高整個(gè)算法的執(zhí)行效率。使用MATLAB編程技術(shù)和JACKET編程技術(shù)在GPU上分別實(shí)現(xiàn)基于用戶和基于項(xiàng)目的兩種經(jīng)典協(xié)同過濾推薦算法。實(shí)現(xiàn)步驟如下:1)數(shù)據(jù)表示:收集用戶的評(píng)分?jǐn)?shù)據(jù),并進(jìn)行數(shù)據(jù)清理、轉(zhuǎn)換,最終形成用戶-項(xiàng)目評(píng)分矩陣。2)將收集的數(shù)據(jù)從CPU傳輸至GPU。3)對(duì)傳輸?shù)紾PU上的數(shù)據(jù)執(zhí)行GPU操作,調(diào)用相關(guān)函數(shù)庫,采用公式(1)和(2)分別計(jì)算并獲取用戶/項(xiàng)目間的相似度矩陣。4)將GPU計(jì)算結(jié)果返回CPU中以便后續(xù)操作。5)采用公式(3)和(4)在CPU上分別獲取兩種經(jīng)典算法的評(píng)分預(yù)測(cè)矩陣。6)選擇預(yù)測(cè)評(píng)分最高的Top-n項(xiàng)推薦給目標(biāo)用戶。7)采用公式(5)求兩種經(jīng)典算法的平均絕對(duì)誤差MAE。

3.2實(shí)驗(yàn)結(jié)果與分析

3.2.1實(shí)驗(yàn)環(huán)境本實(shí)驗(yàn)所用的CPU是IntelXeonE52687W,核心數(shù)量是八核,主頻率是3.1GHz,內(nèi)存大小是32GB;所使用的GPU是NVIDIAQuadroK4000,顯存容量是3GB,顯存帶寬是134GB/s核心頻率是811MHz,流處理器數(shù)是768個(gè)。使用Windows764位操作系統(tǒng),編程環(huán)境使用最新的CUDA。

3.2.2實(shí)驗(yàn)數(shù)據(jù)本實(shí)驗(yàn)使用目前比較常用的MovieLens[56]數(shù)據(jù)集作為測(cè)試數(shù)據(jù),該數(shù)據(jù)集從MovieLens網(wǎng)站采集而來,由美國Minnesota大學(xué)的GroupLens研究小組提供,數(shù)據(jù)集1包含943個(gè)用戶對(duì)1682部電影約10萬的評(píng)分?jǐn)?shù)據(jù),數(shù)據(jù)集2包含6040個(gè)用戶對(duì)3952部電影約100萬的評(píng)分?jǐn)?shù)據(jù),其中每個(gè)用戶至少對(duì)20部電影進(jìn)行了評(píng)分。評(píng)分的范圍是1~5,1表示“很差”,5表示“很好”。實(shí)驗(yàn)需要將每個(gè)數(shù)據(jù)集劃分為一個(gè)訓(xùn)練集和一個(gè)測(cè)試集,每次隨機(jī)選出其中80%的評(píng)分?jǐn)?shù)據(jù)用作訓(xùn)練集,另20%用作測(cè)試集。

3.2.3實(shí)驗(yàn)結(jié)果與分析本文采用加速比來比較算法的CPU實(shí)現(xiàn)和GPU實(shí)現(xiàn)的運(yùn)行效率。計(jì)算加速比的方法如式(6)所示:在公式中,TimeCPU表示算法在CPU上的平均運(yùn)行時(shí)間,TimeGPU表示算法在GPU上的平均運(yùn)行時(shí)間。所有實(shí)驗(yàn)中均取最近鄰居數(shù)為20,且各實(shí)驗(yàn)結(jié)果均為5次獨(dú)立測(cè)試的平均值。圖2是關(guān)于兩個(gè)算法核心步驟的加速效果,而圖3則展示了算法整體加速效果。可以看出,(1)整體加速效果取決于核心步驟的加速效果,(2)GPU版本的算法在性能上較CPU版本有較顯著地優(yōu)勢(shì),且面對(duì)大數(shù)據(jù)集的加速效果更為明顯。例如在基于100萬條數(shù)據(jù)集時(shí),Item-based的整體算法的加速比達(dá)到了14倍左右,而面對(duì)10萬條數(shù)據(jù)集時(shí),加速比不到8倍。這可以解釋為GPU的多核優(yōu)勢(shì)在面對(duì)大數(shù)據(jù)集時(shí)被更為充分地得到釋放;(3)算法對(duì)r-based和Item-based兩種算法的加速比相近。圖4是關(guān)于算法預(yù)測(cè)效果的評(píng)估,可以看出基于GPU加速的兩類經(jīng)典協(xié)同過濾算法與基于CPU的兩類經(jīng)典協(xié)同過濾算法在預(yù)測(cè)效果上相近。如果結(jié)合圖2和圖3,可獲得結(jié)論-能夠基于GPU獲得得可觀的計(jì)算加速而不犧牲應(yīng)用效果。

3.3小結(jié)

本文通過使用JACKET加快開發(fā)過程。目前國內(nèi)還缺少對(duì)JACKET的了解和應(yīng)用,JACKET的出現(xiàn)為科學(xué)領(lǐng)域進(jìn)行大規(guī)模計(jì)算仿真提供了新的研究方法,并使得研究人員可以在熟悉的MATLAB平臺(tái)上實(shí)現(xiàn)相關(guān)算法。

4結(jié)束語