關(guān)于我們
書(shū)單推薦
新書(shū)推薦
|
數(shù)據(jù)挖掘與機(jī)器學(xué)習(xí)——WEKA應(yīng)用技術(shù)與實(shí)踐(第二版)
本書(shū)借助代表當(dāng)今數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)*高水平的著名開(kāi)源軟件Weka,通過(guò)大量的實(shí)踐操作,使讀者了解并掌握數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的相關(guān)技能,拉近理論與實(shí)踐的距離。全書(shū)共分9章,主要內(nèi)容包括Weka介紹、探索者界面、知識(shí)流界面、實(shí)驗(yàn)者界面、命令行界面、Weka高級(jí)應(yīng)用、Weka API、學(xué)習(xí)方案源代碼分析和機(jī)器學(xué)習(xí)實(shí)戰(zhàn)。 本書(shū)系統(tǒng)講解Weka 3.7.13的操作、理論和應(yīng)用,內(nèi)容全面、實(shí)例豐富、可操作性強(qiáng),做到理論與實(shí)踐的統(tǒng)一。本書(shū)適合數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)相關(guān)人員作為技術(shù)參考書(shū)使用,也適合用作計(jì)算機(jī)專(zhuān)業(yè)高年級(jí)本科生和研究生的教材或教學(xué)參考用書(shū)。
系統(tǒng)講解數(shù)據(jù)挖掘機(jī)器學(xué)習(xí)工具Weka經(jīng)典的開(kāi)源挖掘工具、開(kāi)放的Java環(huán)境初學(xué)者的入門(mén)*選、研究者的鉆研利器
再 版 前 言
自本書(shū)第一版出版到現(xiàn)在已經(jīng)過(guò)去近兩年。這段時(shí)間內(nèi),數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)領(lǐng)域快速發(fā)展,投入到相關(guān)領(lǐng)域研究的人員也越來(lái)越多,Weka愛(ài)好者隊(duì)伍也隨之逐年發(fā)展壯大,Weka學(xué)習(xí)討論群所討論內(nèi)容的技術(shù)含量也日漸豐富。 第二版的修訂工作以Weka 3.7.13版本為準(zhǔn),為此,全書(shū)重新截圖,按照Weka新版本重新修訂正文內(nèi)容。此次再版修改了第一版中一些表述不清楚的陳述、前后不一致的術(shù)語(yǔ),還新增了以下內(nèi)容:第1章1.3節(jié)新增無(wú)法連接包管理器的解決辦法,第2章2.7節(jié)新增邊界可視化工具和代價(jià)/收益分析可視化及相關(guān)實(shí)驗(yàn)內(nèi)容,第4章4.2節(jié)新增拆分評(píng)估器可視化參數(shù)內(nèi)容,新增完整的第9章機(jī)器學(xué)習(xí)實(shí)戰(zhàn),豐富了Weka實(shí)踐內(nèi)容。 修訂后的第二版共分9章。第1章介紹Weka的歷史和功能、數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的基本概念、Weka系統(tǒng)安裝,以及示例數(shù)據(jù)集;第2章介紹探索者(Explorer)界面的使用,主要內(nèi)容包括圖形用戶(hù)界面、預(yù)處理、分類(lèi)、聚類(lèi)、關(guān)聯(lián)、選擇屬性,以及可視化;第3章介紹知識(shí)流(KnowledgeFlow)界面,主要內(nèi)容有知識(shí)流介紹、知識(shí)流組件、使用知識(shí)流組件,以及實(shí)踐教程;第4章介紹實(shí)驗(yàn)者(Experimenter)界面,主要內(nèi)容有實(shí)驗(yàn)者界面介紹、標(biāo)準(zhǔn)實(shí)驗(yàn)、遠(yuǎn)程實(shí)驗(yàn),以及實(shí)驗(yàn)結(jié)果分析;第5章介紹命令行界面,主要內(nèi)容有命令行界面介紹、Weka結(jié)構(gòu)、命令行選項(xiàng)、過(guò)濾器和分類(lèi)器選項(xiàng),以及Weka包管理器;第6章介紹一些Weka的高級(jí)應(yīng)用,主要介紹Weka的貝葉斯網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)、文本分類(lèi)和時(shí)間序列分析及預(yù)測(cè);第7章介紹Weka API,說(shuō)明使用Java源代碼來(lái)實(shí)現(xiàn)常見(jiàn)數(shù)據(jù)挖掘任務(wù)的基礎(chǔ)知識(shí),并給出一個(gè)展示如何進(jìn)行數(shù)據(jù)挖掘的綜合示例;第8章通過(guò)對(duì)NaiveBayes學(xué)習(xí)方案的源代碼進(jìn)行分析,深入研究Weka學(xué)習(xí)方案的工作原理,為開(kāi)發(fā)人員提供實(shí)現(xiàn)學(xué)習(xí)算法的編碼基礎(chǔ);第9章介紹如何使用Weka工具挖掘?qū)嶋H的大型數(shù)據(jù)集,以精選的兩個(gè)KDD競(jìng)賽數(shù)據(jù)集為例,使讀者能夠快速進(jìn)入實(shí)際的案例場(chǎng)景,應(yīng)用所學(xué)數(shù)據(jù)挖掘知識(shí)來(lái)面對(duì)大數(shù)據(jù)的挖掘問(wèn)題,考驗(yàn)自己完成難度較大的挖掘項(xiàng)目的動(dòng)手能力。 第二版改動(dòng)的內(nèi)容較多,總體工作量很大,花費(fèi)了很多時(shí)間。從醞釀第二版內(nèi)容開(kāi)始,至其殺青,歷時(shí)超過(guò)一年。作者的感覺(jué)是:比編寫(xiě)第一版還要辛苦些。且不說(shuō)Weka版本變動(dòng)導(dǎo)致的修改,重新截圖、重新梳理文字、重新改寫(xiě)API文檔等,費(fèi)時(shí)費(fèi)力。因時(shí)間變化引起的一個(gè)小小的技術(shù)變動(dòng),就讓人費(fèi)力應(yīng)對(duì)。例如,懷卡托大學(xué)后來(lái)不再提供包管理器元數(shù)據(jù),導(dǎo)致第一版所述的解決辦法不再有效,只能重新尋找解決包管理器無(wú)法連接的替代方法。又如,新版本W(wǎng)eka的NaiveBayes源代碼有一些變動(dòng),作者不得不修訂第8章的內(nèi)容以適應(yīng)新的版本變化。再如,第一版提供的網(wǎng)絡(luò)鏈接有的已經(jīng)不再有效,出版社編輯老師測(cè)試了所有的鏈接,保證了第二版提供的網(wǎng)絡(luò)鏈接的正確性。當(dāng)然,由于世界變化太快,無(wú)法保證在一兩年后這些鏈接不會(huì)失效,這是無(wú)可奈何的事,作者只能保證書(shū)中敘述的方案在交稿時(shí)可行。 最耗費(fèi)心力的應(yīng)該是第9章的編寫(xiě)。早在第一版的寫(xiě)作中,曾經(jīng)就有編寫(xiě)一個(gè)章節(jié)專(zhuān)門(mén)講述Weka綜合應(yīng)用案例的設(shè)想,但苦于手上沒(méi)有合適的實(shí)驗(yàn)對(duì)象。理想的應(yīng)用案例必須滿(mǎn)足如下要求:第一,難度適中。不能太簡(jiǎn)單,過(guò)于簡(jiǎn)單的小兒科案例會(huì)違背編寫(xiě)綜合應(yīng)用的初衷;也不能太難,如果應(yīng)用的技術(shù)方案太偏或難以理解,就達(dá)不到鍛煉讀者實(shí)際動(dòng)手能力的意義。第二,領(lǐng)域不能太窄,應(yīng)該讓絕大多數(shù)人都能理解。第三,運(yùn)算量不能太大,應(yīng)該滿(mǎn)足普通計(jì)算機(jī)能夠處理的要求。這就限制了目標(biāo)數(shù)據(jù)集文件大小為數(shù)十兆字節(jié)至數(shù)吉字節(jié)范圍以?xún)?nèi),實(shí)例總數(shù)在數(shù)十萬(wàn)條至數(shù)千萬(wàn)條之間,一臺(tái)計(jì)算機(jī)能夠在兩周左右運(yùn)行完畢。作者花費(fèi)了很長(zhǎng)時(shí)間尋找滿(mǎn)足以上要求的案例,最后選中KDD Cup 1999和KDD Cup 2010競(jìng)賽數(shù)據(jù)集,前者共有42個(gè)屬性,10%數(shù)據(jù)子集文件的大小為45MB,樣本數(shù)為494021,完整的數(shù)據(jù)集文件大小為743MB,樣本數(shù)為4898431;后者有兩個(gè)數(shù)據(jù)集,本書(shū)選中的是較大的數(shù)據(jù)集,共有21個(gè)屬性,訓(xùn)練數(shù)據(jù)集文件大小為5.29GB,樣本數(shù)為20012498。認(rèn)真的讀者會(huì)發(fā)現(xiàn),完成這兩個(gè)案例的實(shí)驗(yàn)將會(huì)很辛苦,花費(fèi)的精力和時(shí)間會(huì)遠(yuǎn)超預(yù)期。作者想象出這么一個(gè)畫(huà)面:讀者按照書(shū)中的實(shí)驗(yàn)方法工作至深夜,硬盤(pán)燈不停閃爍,CPU利用率一直高居95%,讀者擔(dān)心心愛(ài)的計(jì)算機(jī)會(huì)突然崩潰但仍然堅(jiān)持,直至最終勝利。作者預(yù)先恭喜那些能夠獨(dú)立完成實(shí)驗(yàn)的讀者,因?yàn)槟銈冇凶銐虻哪芰鸵懔?yīng)付技術(shù)挑戰(zhàn),勝任要求極高的挖掘工作。 盡管在寫(xiě)作中付出了很多艱辛的勞動(dòng),但限于作者有限的能力和精力,書(shū)中肯定還存在一些缺陷,甚至錯(cuò)誤,敬請(qǐng)各位讀者批評(píng)指正。作者感謝修訂工作的貢獻(xiàn)者,昆明理工大學(xué)計(jì)算機(jī)系吳霖老師審閱了本書(shū)第9章內(nèi)容,提出了很多建設(shè)性建議,感謝吳霖老師的貢獻(xiàn)。昆明理工大學(xué)2014級(jí)研究生衛(wèi)明同學(xué)參與了第1章和第2章的修訂工作;光榮與夢(mèng)想、弦月、Brady、海、__末瞳.夫、不說(shuō)再見(jiàn)!等網(wǎng)友對(duì)第一版提出了寶貴的建議,作者在第二版中采納了這些建議,感謝這些朋友的貢獻(xiàn)。第9章參考了昆明理工大學(xué)2014屆計(jì)算機(jī)系吳澤恒同學(xué)本科畢業(yè)設(shè)計(jì)論文的部分內(nèi)容,他是我指導(dǎo)過(guò)的最優(yōu)秀的學(xué)生,感謝吳澤恒同學(xué)。感謝選擇本書(shū)為高校教學(xué)參考書(shū)的教師在使用過(guò)程中提出的反饋意見(jiàn)和建議,作者學(xué)習(xí)到一些很有價(jià)值的思考方式。再次感謝清華大學(xué)出版社的編輯老師在出版方面提出的建設(shè)性意見(jiàn)和給予的無(wú)私幫助,編輯老師一絲不茍的工作態(tài)度給我留下很深的印象。感謝購(gòu)買(mǎi)本書(shū)的朋友,歡迎批評(píng)指正,你們的批評(píng)建議都會(huì)受到重視,并在再版中改進(jìn)。希望第二版的發(fā)行能夠吸引更多的讀者和反饋建議。 編 者 第一版前言 當(dāng)代中國(guó)掀起了一股學(xué)習(xí)數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的熱潮,從斯坦福大學(xué)公開(kāi)課"機(jī)器學(xué)習(xí)課程",到龍星計(jì)劃的"機(jī)器學(xué)習(xí)Machine Learning"課程,再到加州理工學(xué)院公開(kāi)課"機(jī)器學(xué)習(xí)與數(shù)據(jù)挖掘"課程,參加這些網(wǎng)絡(luò)課程學(xué)習(xí)的人群日益壯大,數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)炙手可熱。 數(shù)據(jù)挖掘是數(shù)據(jù)庫(kù)知識(shí)發(fā)現(xiàn)中的一個(gè)步驟,它從大量數(shù)據(jù)中自動(dòng)提取出隱含的、過(guò)去未知的、有價(jià)值的潛在信息。機(jī)器學(xué)習(xí)主要設(shè)計(jì)和分析一些讓計(jì)算機(jī)可以自動(dòng)"學(xué)習(xí)"的算法,這類(lèi)算法可以從數(shù)據(jù)中自動(dòng)分析獲得規(guī)律,并利用規(guī)律對(duì)未知數(shù)據(jù)進(jìn)行預(yù)測(cè)。數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)這兩個(gè)領(lǐng)域聯(lián)系密切,數(shù)據(jù)挖掘利用機(jī)器學(xué)習(xí)提供的技術(shù)來(lái)分析海量數(shù)據(jù),以發(fā)掘數(shù)據(jù)中隱含的有用信息。 數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)這兩個(gè)密切相關(guān)的領(lǐng)域存在一個(gè)特點(diǎn):理論很強(qiáng)而實(shí)踐很弱。眾所周知,理論和實(shí)踐是研究者的左腿和右腿,缺了一條腿的研究者肯定難以前行。有的技術(shù)人員花了若干年時(shí)間進(jìn)行研究,雖然了解甚至熟悉了很多公式和算法,但仍然難以真正去面對(duì)一個(gè)實(shí)際挖掘問(wèn)題并很好地解決手上的技術(shù)難題,其根本原因就是缺乏實(shí)踐。 本書(shū)就是為了試圖解決數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的實(shí)踐問(wèn)題而編寫(xiě)的。本書(shū)依托新西蘭懷卡托大學(xué)采用Java語(yǔ)言開(kāi)發(fā)的著名開(kāi)源軟件Weka,該系統(tǒng)自1993年開(kāi)始由新西蘭政府資助,至今已經(jīng)歷了20多年的發(fā)展,功能已經(jīng)十分強(qiáng)大和成熟。Weka集合了大量的機(jī)器學(xué)習(xí)和相關(guān)技術(shù),受領(lǐng)域發(fā)展和用戶(hù)需求所推動(dòng),代表了當(dāng)今數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)領(lǐng)域的最高水平。因此,研究Weka能幫助研究者從實(shí)踐去驗(yàn)證所學(xué)的理論,顯然有很好的理論意義及實(shí)踐意義。 本書(shū)共分8章。第1章介紹Weka的歷史和功能、數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí)的基本概念、Weka系統(tǒng)安裝,以及示例數(shù)據(jù)集;第2章介紹Explorer界面的使用,主要內(nèi)容包括圖形用戶(hù)界面、預(yù)處理、分類(lèi)、聚類(lèi)、關(guān)聯(lián)、選擇屬性,以及可視化;第3章介紹KnowledgeFlow界面,主要內(nèi)容有知識(shí)流介紹、知識(shí)流組件、使用知識(shí)流組件,以及實(shí)踐教程;第4章介紹Experimenter界面,主要內(nèi)容有Experimenter界面介紹、標(biāo)準(zhǔn)實(shí)驗(yàn)、遠(yuǎn)程實(shí)驗(yàn),以及實(shí)驗(yàn)結(jié)果分析;第5章介紹命令行界面,主要內(nèi)容有命令行界面介紹、Weka結(jié)構(gòu)、命令行選項(xiàng)、過(guò)濾器和分類(lèi)器選項(xiàng),以及Weka包管理器;第6章介紹一些Weka的高級(jí)應(yīng)用,主要介紹Weka的貝葉斯網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)、文本分類(lèi)和時(shí)間序列分析及預(yù)測(cè);第7章介紹Weka API,說(shuō)明使用Java源代碼來(lái)實(shí)現(xiàn)常見(jiàn)數(shù)據(jù)挖掘任務(wù)的基礎(chǔ)知識(shí),并給出一個(gè)展示如何進(jìn)行數(shù)據(jù)挖掘的綜合示例;第8章通過(guò)對(duì)一個(gè)學(xué)習(xí)方案的源代碼進(jìn)行分析,深入研究Weka學(xué)習(xí)方案的工作原理,為開(kāi)發(fā)人員提供編寫(xiě)學(xué)習(xí)算法的技術(shù)基礎(chǔ)。 在閱讀大量相關(guān)文獻(xiàn)的過(guò)程中,作者深深為國(guó)外前輩們的理論功底和實(shí)踐技能所折服,那些巨人們站在高處,使人難以望其項(xiàng)背。雖然得益于諸如網(wǎng)易公開(kāi)課和龍星計(jì)劃等項(xiàng)目,我們有機(jī)會(huì)和全世界站在同一個(gè)數(shù)量級(jí)的知識(shí)起跑線(xiàn)上,但是,這并不意味著能在將來(lái)的競(jìng)爭(zhēng)中占據(jù)優(yōu)勢(shì),正如孫中山先生所說(shuō)"革命尚未成功,同志仍須努力",讓我們一起共勉。 在本書(shū)的編寫(xiě)過(guò)程中,作者力求精益求精,但限于作者的知識(shí)和能力,且很多材料都難以獲取,考證和去偽存真是一件時(shí)間開(kāi)銷(xiāo)非常大和異常困難的工作,因此書(shū)中肯定會(huì)有遺漏及不妥之處,敬請(qǐng)廣大讀者批評(píng)指正。 作者專(zhuān)門(mén)為本書(shū)設(shè)置讀者QQ群,歡迎讀者加群,下載和探討書(shū)中源代碼,抒寫(xiě)讀書(shū)心得,進(jìn)行技術(shù)交流等。 本書(shū)承蒙很多朋友、同事的幫助才得以成文。特別感謝Weka開(kāi)發(fā)組的全體人員,他們將自己20年心血匯聚的成果開(kāi)源,對(duì)本領(lǐng)域貢獻(xiàn)巨大;衷心感謝清華大學(xué)出版社的編輯老師在內(nèi)容組織、排版,以及出版方面提出的建設(shè)性意見(jiàn)和給予的無(wú)私幫助;感謝昆明理工大學(xué)提供的寬松的研究環(huán)境;感謝昆明理工大學(xué)計(jì)算機(jī)系教師繆祥華博士,他為本書(shū)的成文提出了很多建設(shè)性的建議,對(duì)本書(shū)的改進(jìn)幫助甚大;感謝昆明理工大學(xué)計(jì)算機(jī)系海歸博士吳霖老師,他經(jīng)常和作者一起討論機(jī)器學(xué)習(xí)的技術(shù)問(wèn)題,為本書(shū)的編寫(xiě)貢獻(xiàn)了很多智慧;感謝昆明理工大學(xué)現(xiàn)代教育中心的何佳老師,他完成了本書(shū)部分代碼的編寫(xiě)和測(cè)試工作;感謝國(guó)內(nèi)外的同行們,他們?cè)诰W(wǎng)絡(luò)論壇和博客上發(fā)表了眾多卓有見(jiàn)識(shí)的文章,作者從中學(xué)習(xí)到很多知識(shí),由于來(lái)源比較瑣碎,無(wú)法一一列舉,感謝他們對(duì)本書(shū)的貢獻(xiàn);感謝理解和支持我的家人,他們是我寫(xiě)作的堅(jiān)強(qiáng)后盾。感謝購(gòu)買(mǎi)本書(shū)的朋友,歡迎批評(píng)指正,你們的批評(píng)建議都會(huì)受到重視,并在再版中改進(jìn)。 編 者
袁梅宇,男,工學(xué)博士,碩士導(dǎo)師,現(xiàn)在昆明理工大學(xué)計(jì)算機(jī)系任教。為本科生和研究生主講Java程序設(shè)計(jì)、JavaEE技術(shù)、數(shù)據(jù)庫(kù)原理、人工智能、DotNet技術(shù)等核心課程,參加過(guò)863CIMSNet建設(shè)、中歐合作項(xiàng)目DRAGON和多項(xiàng)國(guó)家基金和省基金項(xiàng)目,第*作者公開(kāi)發(fā)表論文十余篇,軟件著作權(quán)(頒證)六項(xiàng)。
第1章 Weka介紹 1
1.1 Weka簡(jiǎn)介 2 1.1.1 Weka歷史 3 1.1.2 Weka功能簡(jiǎn)介 3 1.2 基本概念 5 1.2.1 數(shù)據(jù)挖掘和機(jī)器學(xué)習(xí) 5 1.2.2 數(shù)據(jù)和數(shù)據(jù)集 5 1.2.3 ARFF格式 6 1.2.4 預(yù)處理 7 1.2.5 分類(lèi)與回歸 10 1.2.6 聚類(lèi)分析 12 1.2.7 關(guān)聯(lián)分析 12 1.3 Weka系統(tǒng)安裝 13 1.3.1 系統(tǒng)要求 13 1.3.2 安裝過(guò)程 14 1.3.3 Weka使用初步 16 1.3.4 系統(tǒng)運(yùn)行注意事項(xiàng) 18 1.4 訪(fǎng)問(wèn)數(shù)據(jù)庫(kù) 24 1.4.1 配置文件 25 1.4.2 數(shù)據(jù)庫(kù)設(shè)置 26 1.4.3 常見(jiàn)問(wèn)題及解決辦法 27 1.5 示例數(shù)據(jù)集 28 1.5.1 天氣問(wèn)題 29 1.5.2 鳶尾花 30 1.5.3 CPU 31 1.5.4 玻璃數(shù)據(jù)集 32 1.5.5 美國(guó)國(guó)會(huì)投票記錄 33 1.5.6 乳腺癌數(shù)據(jù)集 33 課后強(qiáng)化練習(xí) 34 第2章 探索者界面 35 2.1 圖形用戶(hù)界面 36 2.1.1 標(biāo)簽頁(yè)簡(jiǎn)介 36 2.1.2 狀態(tài)欄 37 2.1.3 圖像輸出 37 2.1.4 手把手教你用 37 2.2 預(yù)處理 40 2.2.1 加載數(shù)據(jù) 40 2.2.2 屬性處理 43 2.2.3 過(guò)濾器 44 2.2.4 過(guò)濾器算法介紹 46 2.2.5 手把手教你用 52 2.3 分類(lèi) 59 2.3.1 分類(lèi)器選擇 59 2.3.2 分類(lèi)器訓(xùn)練 61 2.3.3 分類(lèi)器輸出 62 2.3.4 分類(lèi)算法介紹 65 2.3.5 分類(lèi)模型評(píng)估 79 2.3.6 手把手教你用 81 2.4 聚類(lèi) 98 2.4.1 Cluster標(biāo)簽頁(yè)的操作 98 2.4.2 聚類(lèi)算法介紹 99 2.4.3 手把手教你用 101 2.5 關(guān)聯(lián) 107 2.5.1 Associate標(biāo)簽頁(yè)的操作 107 2.5.2 關(guān)聯(lián)算法介紹 108 2.5.3 手把手教你用 111 2.6 選擇屬性 117 2.6.1 Select attributes標(biāo)簽頁(yè)的 操作 118 2.6.2 選擇屬性算法介紹 119 2.6.3 手把手教你用 120 2.7 可視化 128 2.7.1 Visualize標(biāo)簽頁(yè) 128 2.7.2 邊界可視化工具 131 2.7.3 代價(jià)/收益分析可視化 133 2.7.4 手把手教你用 134 課后強(qiáng)化練習(xí) 140 第3章 知識(shí)流界面 143 3.1 知識(shí)流介紹 144 3.1.1 知識(shí)流特性 144 3.1.2 知識(shí)流界面布局 145 3.2 知識(shí)流組件 148 3.2.1 數(shù)據(jù)源 148 3.2.2 數(shù)據(jù)接收器 151 3.2.3 評(píng)估器 155 3.2.4 可視化器 156 3.2.5 其他工具 158 3.3 使用知識(shí)流組件 160 3.4 手把手教你用 162 課后強(qiáng)化練習(xí) 181 第4章 實(shí)驗(yàn)者界面 183 4.1 簡(jiǎn)介 184 4.2 標(biāo)準(zhǔn)實(shí)驗(yàn) 185 4.2.1 簡(jiǎn)單實(shí)驗(yàn) 185 4.2.2 高級(jí)實(shí)驗(yàn) 190 4.2.3 手把手教你用 198 4.3 遠(yuǎn)程實(shí)驗(yàn) 210 4.3.1 遠(yuǎn)程實(shí)驗(yàn)設(shè)置 210 4.3.2 手把手教你用 213 4.4 分析結(jié)果 221 4.4.1 獲取實(shí)驗(yàn)結(jié)果 221 4.4.2 動(dòng)作 221 4.4.3 配置測(cè)試 222 4.4.4 保存結(jié)果 225 4.4.5 手把手教你用 225 課后強(qiáng)化練習(xí) 229 第5章 命令行界面 231 5.1 命令行界面介紹 232 5.1.1 命令調(diào)用 233 5.1.2 命令自動(dòng)完成 234 5.2 Weka結(jié)構(gòu) 235 5.2.1 類(lèi)實(shí)例和包 235 5.2.2 weka.core包 236 5.2.3 weka.classifiers包 237 5.2.4 其他包 238 5.3 命令行選項(xiàng) 238 5.3.1 常規(guī)選項(xiàng) 239 5.3.2 特定選項(xiàng) 241 5.4 過(guò)濾器和分類(lèi)器選項(xiàng) 242 5.4.1 過(guò)濾器選項(xiàng) 242 5.4.2 分類(lèi)器選項(xiàng) 245 5.4.3 手把手教你用 247 5.5 包管理器 252 5.5.1 命令行包管理器 252 5.5.2 運(yùn)行安裝的算法 254 課后強(qiáng)化練習(xí) 255 第6章 Weka高級(jí)應(yīng)用 257 6.1 貝葉斯網(wǎng)絡(luò) 258 6.1.1 簡(jiǎn)介 258 6.1.2 貝葉斯網(wǎng)絡(luò)編輯器 261 6.1.3 在探索者界面中使用貝葉斯 網(wǎng)絡(luò) 269 6.1.4 結(jié)構(gòu)學(xué)習(xí) 270 6.1.5 分布學(xué)習(xí) 272 6.1.6 查看貝葉斯網(wǎng)絡(luò) 273 6.1.7 手把手教你用 276 6.2 神經(jīng)網(wǎng)絡(luò) 286 6.2.1 GUI使用 286 6.2.2 手把手教你用 289 6.3 文本分類(lèi) 293 6.3.1 文本分類(lèi)示例 294 6.3.2 分類(lèi)真實(shí)文本 298 6.3.3 手把手教你用 300 6.4 時(shí)間序列分析及預(yù)測(cè) 306 6.4.1 使用時(shí)間序列環(huán)境 306 6.4.2 手把手教你用 318 課后強(qiáng)化練習(xí) 326 第7章 Weka API 327 7.1 加載數(shù)據(jù) 328 7.1.1 從文件加載數(shù)據(jù) 328 7.1.2 從數(shù)據(jù)庫(kù)加載數(shù)據(jù) 329 7.1.3 手把手教你用 330 7.2 保存數(shù)據(jù) 335 7.2.1 保存數(shù)據(jù)至文件 335 7.2.2 保存數(shù)據(jù)至數(shù)據(jù)庫(kù) 335 7.2.3 手把手教你用 336 7.3 處理選項(xiàng) 339 7.3.1 選項(xiàng)處理方法 339 7.3.2 手把手教你用 340 7.4 內(nèi)存數(shù)據(jù)集處理 341 7.4.1 在內(nèi)存中創(chuàng)建數(shù)據(jù)集 341 7.4.2 打亂數(shù)據(jù)順序 345 7.4.3 手把手教你用 345 7.5 過(guò)濾 349 7.5.1 批量過(guò)濾 350 7.5.2 即時(shí)過(guò)濾 351 7.5.3 手把手教你用 351 7.6 分類(lèi) 355 7.6.1 分類(lèi)器構(gòu)建 355 7.6.2 分類(lèi)器評(píng)估 356 7.6.3 實(shí)例分類(lèi) 358 7.6.4 手把手教你用 359 7.7 聚類(lèi) 370 7.7.1 聚類(lèi)器構(gòu)建 370 7.7.2 聚類(lèi)器評(píng)估 371 7.7.3 實(shí)例聚類(lèi) 373 7.7.4 手把手教你用 373 7.8 屬性選擇 379 7.8.1 使用元分類(lèi)器 380 7.8.2 使用過(guò)濾器 380 7.8.3 使用底層API 381 7.8.4 手把手教你用 381 7.9 可視化 384 7.9.1 ROC曲線(xiàn) 385 7.9.2 圖 385 7.9.3 手把手教你用 386 7.10 序列化 391 7.10.1 序列化基本方法 391 7.10.2 手把手教你用 392 7.11 文本分類(lèi)綜合示例 395 7.11.1 程序運(yùn)行準(zhǔn)備 395 7.11.2 源程序分析 396 7.11.3 運(yùn)行說(shuō)明 403 課后強(qiáng)化練習(xí) 404 第8章 學(xué)習(xí)方案源代碼分析 405 8.1 NaiveBayes源代碼分析 406 8.2 實(shí)現(xiàn)分類(lèi)器的約定 427 課后強(qiáng)化練習(xí) 429 第9章 機(jī)器學(xué)習(xí)實(shí)戰(zhàn) 431 9.1 數(shù)據(jù)挖掘過(guò)程概述 432 9.1.1 CRISP-DM過(guò)程 432 9.1.2 數(shù)據(jù)預(yù)處理 433 9.1.3 挖掘項(xiàng)目及工具概述 434 9.2 實(shí)戰(zhàn)KDD Cup 1999 434 9.2.1 任務(wù)描述 435 9.2.2 數(shù)據(jù)集描述 436 9.2.3 挖掘詳細(xì)過(guò)程 438 9.3 實(shí)戰(zhàn)KDD Cup 2010 447 9.3.1 任務(wù)描述 447 9.3.2 數(shù)據(jù)集描述 447 9.3.3 挖掘詳細(xì)過(guò)程 450 9.3.4 更接近實(shí)際的挖掘過(guò)程 459 課后強(qiáng)化練習(xí) 471 附錄A 中英文術(shù)語(yǔ)對(duì)照 472 附錄B Weka算法介紹 476 過(guò)濾器算法介紹 476 分類(lèi)算法介紹 498 聚類(lèi)算法介紹 526 關(guān)聯(lián)算法介紹 530 選擇屬性算法介紹 532 參考文獻(xiàn) 537
第2章 探索者界面
探索者(Explorer)界面是Weka的主要圖形用戶(hù)界面,其全部功能都可通過(guò)菜單選擇或表單填寫(xiě)進(jìn)行訪(fǎng)問(wèn)。本章介紹探索者的圖形用戶(hù)界面、預(yù)處理、分類(lèi)、聚類(lèi)、關(guān)聯(lián)、選擇屬性和可視化等內(nèi)容,內(nèi)容非常豐富,學(xué)習(xí)這些知識(shí)可以全面了解Weka的功能,快速上手實(shí)際的挖掘任務(wù)。 2.1 圖形用戶(hù)界面 啟動(dòng)Weka GUI 選擇器窗口之后,單擊Explorer按鈕,即可啟動(dòng)探索者界面。這時(shí),由于沒(méi)有加載數(shù)據(jù)集,除Preprocess標(biāo)簽頁(yè)外,其他標(biāo)簽頁(yè)都變灰而不可用?梢允褂肙pen file、Open URL、Open DB或者Generate按鈕加載或產(chǎn)生數(shù)據(jù)集,加載數(shù)據(jù)集之后,其他標(biāo)簽頁(yè)才可以使用。 這里以打開(kāi)文件為例進(jìn)行說(shuō)明。單擊Open file按鈕,通過(guò)彈出的“打開(kāi)”對(duì)話(huà)框,選擇打開(kāi)data子目錄下的iris.arff文件,加載數(shù)據(jù)集后的探索者界面如圖2.1所示。 圖2.1 探索者界面 下面按照先整體后局部的順序介紹圖形用戶(hù)界面。 2.1.1 標(biāo)簽頁(yè)簡(jiǎn)介 圖2.1所示界面的頂部有六個(gè)不同的標(biāo)簽頁(yè),分別對(duì)應(yīng)Weka所支持的多種數(shù)據(jù)挖掘方式。 這六個(gè)標(biāo)簽頁(yè)的介紹如下。 (1) Preprocess(預(yù)處理):選擇數(shù)據(jù)集,并以不同方式對(duì)其進(jìn)行修改。 (2) Classify(分類(lèi)):訓(xùn)練用于分類(lèi)或回歸的學(xué)習(xí)方案,并對(duì)其進(jìn)行評(píng)估。 (3) Cluster(聚類(lèi)):學(xué)習(xí)數(shù)據(jù)集聚類(lèi)方案。 (4) Associate(關(guān)聯(lián)):學(xué)習(xí)數(shù)據(jù)關(guān)聯(lián)規(guī)則,并對(duì)其進(jìn)行評(píng)估。 (5) Select attributes(選擇屬性):選擇數(shù)據(jù)集中預(yù)測(cè)效果最好的部分屬性。 (6) Visualize(可視化):查看不同的二維數(shù)據(jù)散點(diǎn)圖,并與其進(jìn)行互動(dòng)。 每個(gè)標(biāo)簽頁(yè)都可完成不同工作,單擊相應(yīng)的標(biāo)簽即可實(shí)現(xiàn)標(biāo)簽頁(yè)的切換。 界面底部包括Status(狀態(tài))欄、Log(日志)按鈕和一只Weka鳥(niǎo),這些都一直保持可見(jiàn),不論用戶(hù)切換到哪一個(gè)標(biāo)簽頁(yè)。 2.1.2 狀態(tài)欄 狀態(tài)欄位于界面最下部,可以讓用戶(hù)了解到現(xiàn)在進(jìn)行到哪一步。例如,如果Weka探索者正在忙于加載數(shù)據(jù)文件,狀態(tài)欄中會(huì)顯示相應(yīng)的狀態(tài)信息。 除了顯示狀態(tài)之外,還可以右擊鼠標(biāo)來(lái)顯示內(nèi)存信息,以及運(yùn)行垃圾回收器以清理內(nèi)存。在狀態(tài)欄的任意位置右擊,彈出的快捷菜單中只包括兩個(gè)菜單項(xiàng):Memory information(內(nèi)存信息)和Run garbage collector(運(yùn)行垃圾回收器)。第一個(gè)菜單項(xiàng)用于顯示W(wǎng)eka當(dāng)前可用的內(nèi)存空間;第二個(gè)菜單項(xiàng)用于啟動(dòng)Java垃圾回收器,搜尋不再使用的內(nèi)存并釋放,以回收部分內(nèi)存空間,提供給新的任務(wù)使用。需要指出的是,垃圾回收器是一個(gè)不間斷運(yùn)行的后臺(tái)任務(wù),如果不強(qiáng)制進(jìn)行垃圾回收,Java虛擬機(jī)也會(huì)在適當(dāng)時(shí)候自動(dòng)啟動(dòng)垃圾回收器。 Log按鈕位于狀態(tài)欄的右面,單擊該按鈕會(huì)打開(kāi)可以滾動(dòng)的日志窗口,顯示在此次運(yùn)行期間內(nèi)Weka 進(jìn)行的全部活動(dòng)以及每項(xiàng)活動(dòng)的時(shí)間戳。不管是使用GUI、命令行還是Simple CLI,日志都會(huì)包含分類(lèi)、聚類(lèi)、屬性選擇等操作的完整的設(shè)置字符串,用戶(hù)可以進(jìn)行復(fù)制和粘貼操作。順便提醒讀者,通過(guò)學(xué)習(xí)日志里記錄的命令,可以深層次地了解Weka的內(nèi)部運(yùn)行機(jī)制。 在Log按鈕的右邊,可以看到被稱(chēng)為Weka狀態(tài)圖標(biāo)的鳥(niǎo)。如果沒(méi)有處理過(guò)程在運(yùn)行,小鳥(niǎo)會(huì)坐下來(lái)打個(gè)盹!?”符號(hào)旁邊的數(shù)字顯示目前有多少個(gè)正在進(jìn)行處理的進(jìn)程,當(dāng)系統(tǒng)空閑時(shí),該數(shù)字為零,數(shù)字會(huì)隨著正在進(jìn)行處理進(jìn)程數(shù)的增加而增加。當(dāng)啟動(dòng)處理進(jìn)程時(shí),小鳥(niǎo)會(huì)站起來(lái)不停走動(dòng)。如果小鳥(niǎo)長(zhǎng)時(shí)間站著不動(dòng),說(shuō)明Weka出現(xiàn)運(yùn)行錯(cuò)誤,此時(shí)用戶(hù)需要關(guān)閉并重新啟動(dòng)探索者界面。 2.1.3 圖像輸出 Weka中顯示的大部分圖形,包括本章的探索者界面和后面章節(jié)的知識(shí)流界面、實(shí)驗(yàn)者界面顯示的圖形,以及通過(guò)Weka GUI選擇器菜單帶出的GraphVisualizer(圖可視化工具)或TreeVisualizer(樹(shù)可視化工具)顯示的圖形,都可以保存為圖像文件以備將來(lái)使用。保存方法是,在按住Alt鍵和Shift鍵的同時(shí),在要保存的圖形上單擊,啟動(dòng)保存文件對(duì)話(huà)框。Weka支持的圖像文件格式有BMP、JPEG、PNG和Postscript的EPS,用戶(hù)可以選擇圖像文件格式,還可以修改輸出圖像文件的尺寸。 2.1.4 手把手教你用 1. 啟動(dòng)Weka 雙擊桌面上的Weka 3.7快捷方式,啟動(dòng)Weka GUI選擇器窗口,如圖2.2所示。 單擊Explorer按鈕啟動(dòng)探索者界面,如圖2.3所示,F(xiàn)在,除Preprocess標(biāo)簽頁(yè)可用外,其余標(biāo)簽頁(yè)都不可用。 圖2.2 Weka GUI選擇器窗口 圖2.3 探索者界面 2. 了解標(biāo)簽頁(yè) 單擊圖2.3所示界面中的Open file按鈕,彈出“打開(kāi)”對(duì)話(huà)框,導(dǎo)航至Weka安裝目錄下的data子目錄,選擇iris.arff文件,如圖2.4所示。單擊“打開(kāi)”按鈕,打開(kāi)該文件。 圖2.4 “打開(kāi)”對(duì)話(huà)框 打開(kāi)文件(或稱(chēng)為加載數(shù)據(jù))后的探索者界面如圖2.5所示。可以看到,加載數(shù)據(jù)后,六個(gè)標(biāo)簽頁(yè)都變?yōu)榭捎脿顟B(tài)。 圖2.5 打開(kāi)文件后的探索者界面 讀者可以自行切換標(biāo)簽頁(yè),初步了解各標(biāo)簽頁(yè)的功能,為后續(xù)學(xué)習(xí)打下基礎(chǔ)。 3. 了解狀態(tài)欄 不論切換到哪個(gè)標(biāo)簽頁(yè),都可在探索者界面下部的狀態(tài)欄中查看狀態(tài)信息。在狀態(tài)欄任意位置右擊,在彈出的快捷菜單中選擇Memory information菜單項(xiàng),狀態(tài)欄顯示用斜杠分割的內(nèi)存信息,格式為:空閑內(nèi)存/全部?jī)?nèi)存/最大內(nèi)存,單位是字節(jié),如圖2.6所示。 圖2.6 內(nèi)存信息 如果在快捷菜單中選擇Run garbage collector菜單項(xiàng),狀態(tài)欄中會(huì)顯示OK信息,表示已經(jīng)啟動(dòng)了垃圾回收器,如圖2.7所示。 圖2.7 運(yùn)行垃圾回收器 單擊狀態(tài)欄右邊的Log按鈕,可以查看當(dāng)前日志,如圖2.8所示。 圖2.8 日志窗口 4. 保存圖像文件 單擊圖2.5所示界面右邊的Visualize All(全部可視化)按鈕,打開(kāi)如圖2.9所示的全部可視化窗口。 圖2.9 全部可視化窗口 同時(shí)按住Alt鍵和Shift鍵,并在圖2.9所示的五幅圖標(biāo)中任選一圖標(biāo),在圖標(biāo)的任意位置單擊,啟動(dòng)Save as對(duì)話(huà)框。設(shè)置“文件名”為test,選擇“文件類(lèi)型”為jpg(或其他格式),單擊“保存”按鈕,就可將其保存為圖像文件,如圖2.10所示。 圖2.10 Save as對(duì)話(huà)框 在圖2.10的右邊,還可以定制圖像文件的長(zhǎng)、寬尺寸,單位為像素。選中Use custom dimensions(使用自定義尺寸)復(fù)選框,就可以設(shè)置圖像尺寸。如果選中Keep aspect ratio(保持寬高比)復(fù)選框,則在修改圖像長(zhǎng)(或?qū)?的同時(shí),會(huì)按比例自動(dòng)縮放寬(或長(zhǎng))。 2.2 預(yù) 處 理 Preprocess標(biāo)簽頁(yè)可用于從文件、URL或數(shù)據(jù)庫(kù)中加載數(shù)據(jù)集,并且根據(jù)應(yīng)用要求或領(lǐng)域知識(shí)過(guò)濾掉不需要進(jìn)行處理或不符合要求的數(shù)據(jù)。 2.2.1 加載數(shù)據(jù) Preprocess標(biāo)簽頁(yè)中頂部的前四個(gè)按鈕可以讓用戶(hù)將數(shù)據(jù)加載到Weka系統(tǒng)。Open file按鈕用于啟動(dòng)“打開(kāi)”對(duì)話(huà)框,用戶(hù)可以瀏覽本地文件系統(tǒng),打開(kāi)本地?cái)?shù)據(jù)文件。Open URL按鈕要求用戶(hù)提供一個(gè)URL地址,Weka使用HTTP協(xié)議從網(wǎng)絡(luò)位置下載數(shù)據(jù)文件。Open DB按鈕用于從數(shù)據(jù)庫(kù)中讀取數(shù)據(jù),支持所有能夠用JDBC驅(qū)動(dòng)程序讀取的數(shù)據(jù)庫(kù),使用SQL語(yǔ)句或存儲(chǔ)過(guò)程讀取數(shù)據(jù)表。注意,必須根據(jù)自己的計(jì)算機(jī)環(huán)境配置,相應(yīng)修改weka\experiment\DatabaseUtils.props配置文件后才能訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),具體參見(jiàn)1.4節(jié)內(nèi)容。Generate按鈕用于讓用戶(hù)使用不同的DataGenerators(數(shù)據(jù)生成器)生成人工數(shù)據(jù),適用于分類(lèi)功能的人工數(shù)據(jù)可以由決策列表RDG1、徑向基函數(shù)網(wǎng)絡(luò)RandomRBF、貝葉斯網(wǎng)絡(luò)BayesNet、LED24等算法產(chǎn)生,人工回歸數(shù)據(jù)也可以根據(jù)數(shù)學(xué)表達(dá)式生成,用于聚類(lèi)的人工數(shù)據(jù)可以使用現(xiàn)成的生成算法產(chǎn)生。 使用Open file按鈕,可以讀取多種數(shù)據(jù)格式的文件,包括Weka ARFF格式、C4.5數(shù)據(jù)格式、CSV格式、JSON實(shí)例文件格式、LibSVM數(shù)據(jù)文件格式、Matlab ASCII文件格式、svm輕量級(jí)數(shù)據(jù)文件格式、XRFF格式,以及序列化實(shí)例的格式。其中,ARFF格式的后綴為.arff,C4.5數(shù)據(jù)格式的后綴為.data或.names,CSV格式的后綴為.csv,JSON實(shí)例文件格式的后綴為.json,LibSVM數(shù)據(jù)文件格式的后綴為.libsvm,Matlab ASCII文件格式的后綴為.m,svm輕量級(jí)數(shù)據(jù)文件格式的后綴為.dat,XRFF格式的后綴為.xrff,序列化實(shí)例對(duì)象文件的后綴為.bsi。有的格式后綴還會(huì)加上.gz,這代表對(duì)應(yīng)文件的壓縮形式。 另外,使用Save(保存)按鈕,可以將已加載的數(shù)據(jù)保存為Weka支持的文件格式。該功能特別適合在不同文件格式之間進(jìn)行轉(zhuǎn)換,以及學(xué)習(xí)Weka文件格式的細(xì)節(jié)。 由于存在多種數(shù)據(jù)格式,為了從不同種類(lèi)的數(shù)據(jù)源中導(dǎo)入數(shù)據(jù),Weka提供實(shí)用工具類(lèi)進(jìn)行轉(zhuǎn)換,這種工具稱(chēng)為轉(zhuǎn)換器(converters),位于weka.core.converters包中。按照功能的不同,轉(zhuǎn)換器分為加載器和保存器,前者的Java類(lèi)名以L(fǎng)oader結(jié)束,后者以Saver結(jié)束。 加載數(shù)據(jù)后,Preprocess標(biāo)簽頁(yè)會(huì)在Current relation(當(dāng)前關(guān)系)選項(xiàng)組中顯示當(dāng)前數(shù)據(jù)集的一些總結(jié)信息。Relation(關(guān)系)欄顯示關(guān)系名稱(chēng),該名稱(chēng)由加載的文件給定;Attributes(屬性)欄顯示數(shù)據(jù)集中的屬性(或特征)個(gè)數(shù);Instances(實(shí)例)欄顯示數(shù)據(jù)集中的實(shí)例(或數(shù)據(jù)點(diǎn)/記錄)個(gè)數(shù);Sum of weights(權(quán)重和)欄顯示全部實(shí)例的權(quán)重之和。例如,當(dāng)加載iris數(shù)據(jù)集后,Current relation選項(xiàng)組中顯示關(guān)系名稱(chēng)為iris,屬性個(gè)數(shù)為5,實(shí)例個(gè)數(shù)為150,權(quán)重和為150,如圖2.11所示。 圖2.11 Current relation選項(xiàng)組 Weka根據(jù)文件后綴調(diào)用不同的轉(zhuǎn)換器來(lái)加載數(shù)據(jù)集。如果Weka無(wú)法加載數(shù)據(jù),就會(huì)嘗試以ARFF格式解釋數(shù)據(jù),如果再次失敗,就會(huì)彈出如圖2.12所示的提示對(duì)話(huà)框,提示W(wǎng)eka無(wú)法自行決定使用哪一個(gè)文件加載器,需要用戶(hù)自己來(lái)選擇。 單擊圖2.12中的“確定”按鈕后,會(huì)彈出如圖2.13所示的通用對(duì)象編輯器對(duì)話(huà)框,讓用戶(hù)選擇能打開(kāi)數(shù)據(jù)文件的對(duì)應(yīng)轉(zhuǎn)換器。默認(rèn)轉(zhuǎn)換器為CSVLoader,該轉(zhuǎn)換器專(zhuān)門(mén)用于加載后綴為.csv的文件。如果用戶(hù)已經(jīng)確定數(shù)據(jù)文件格式是CSV格式,那么可以輸入日期格式、字段分割符等信息。如果對(duì)對(duì)話(huà)框里的各選項(xiàng)不了解,可以單擊More按鈕查看使用說(shuō)明。 圖2.12 加載數(shù)據(jù)失敗 如果用戶(hù)已經(jīng)知道數(shù)據(jù)文件格式不是CSV格式,可以單擊通用對(duì)象編輯器對(duì)話(huà)框上部的Choose按鈕選擇其他的轉(zhuǎn)換器,如圖2.14所示。 圖2.13 通用對(duì)象編輯器對(duì)話(huà)框 圖2.14 選擇轉(zhuǎn)換器 圖2.14所示對(duì)話(huà)框中,第一個(gè)選項(xiàng)是ArffLoader,選擇該選項(xiàng)并成功的可能性很小,因?yàn)槟J(rèn)就是使用它來(lái)加載數(shù)據(jù)集,沒(méi)有成功才會(huì)彈出加載數(shù)據(jù)失敗的提示對(duì)話(huà)框。第二個(gè)選項(xiàng)是C45Loader,C4.5格式的數(shù)據(jù)集由兩個(gè)文件共同構(gòu)成,一個(gè)文件(.names)提供字段名,另一個(gè)文件(.data)提供實(shí)際數(shù)據(jù)。第三個(gè)選項(xiàng)是默認(rèn)的CSVLoader,這是一種以逗號(hào)分隔各屬性的文件格式,前文已經(jīng)介紹了這種數(shù)據(jù)轉(zhuǎn)換器。第四個(gè)選項(xiàng)DatabaseLoader是從數(shù)據(jù)庫(kù),而不是文件中讀取數(shù)據(jù)集。然而,使用第1章介紹的SQLViewer工具來(lái)訪(fǎng)問(wèn)數(shù)據(jù)庫(kù),是更為人性化且方便的方案。SerializedInstancesLoader選項(xiàng)用于重新加載以前作為Java序列化對(duì)象保存的數(shù)據(jù)集。任何Java對(duì)象都可以采用這種格式予以保存并重新加載。由于序列化對(duì)象本身就是Java格式,使用它可能比加載ARFF文件的速度更快,這是因?yàn)榧虞dARFF文件時(shí)必須對(duì)其進(jìn)行分析和檢查,從而花費(fèi)更多的時(shí)間。如果需要多次加載大數(shù)據(jù)集,則很值得以這種數(shù)據(jù)格式進(jìn)行保存。 值得一提的是TextDirectoryLoader加載器,它的功能是導(dǎo)入一個(gè)目錄,目錄中包含若干以文本挖掘?yàn)槟康牡募兾谋疚募。?dǎo)入目錄應(yīng)該有特定的結(jié)構(gòu)——一組子目錄,每個(gè)子目錄包含一個(gè)或多個(gè)擴(kuò)展名為.txt的文本文件,每個(gè)文本文件都會(huì)成為數(shù)據(jù)集中的一個(gè)實(shí)例,其中,一個(gè)字符串型屬性保存該文件的內(nèi)容,一個(gè)標(biāo)稱(chēng)型的類(lèi)別屬性保存文件所在的子目錄名稱(chēng)。該數(shù)據(jù)集可以通過(guò)使用StringToWordVector過(guò)濾器進(jìn)一步加工為詞典,為后面的文本挖掘做準(zhǔn)備。
你還可能感興趣
我要評(píng)論
|