天天看點

開源的資料挖掘工具 開源資料挖掘工具

開源資料挖掘工具

本文的主要内容編譯自Blaz Zupan和Janez Demsar的一篇論文(Open-Source Tools for Data Mining),原文參見http://magix.fri.uni-lj.si/blaz/papers/2008-OpenSourceDataMini選擇其中的要點和大家共享,同時加入一些個人的點評意見。ng.pdf。我僅僅此外,對開源的資料挖掘工具有興趣的同仁,可以關注以下OSDM09這個workshop,它會在PAKDD'09上同時進行,主要讨論的就是開源資料挖掘工具的議題。OSDM09的網址為:http://osdm09.togaware.com/。

開源的資料挖掘工具(Open-Source Tools for Data Mining)

=======================================================

Blaz Zupan, PhD, Janez Demsar, PhD (編譯:IDMer)

資料挖掘軟體的曆史并不長,甚至連“資料挖掘”這個術語也隻是在上世紀九十年代中期才正式提出,它融合了統計學、機器學習、資料可視化以及知識工程等研究領域的内容,在資料探索和模型推斷等方面已經相當成熟。和現在相比,那時的資料挖掘軟體還顯得很笨拙,一般隻提供了指令行界面。對于衆多沒有計算機科學背景的使用者來說,還是太難用了。

現在的商用資料挖掘軟體已經很成熟了,也提供易用的可視化界面,內建了資料處理、模組化、評估等一整套功能。盡管開源的資料挖掘工具在穩定性和成熟性上可能都無法跟商用資料挖掘軟體相比(IDMer:而且開源資料挖掘工具在性能上和售後支援上也無法提供讓商業使用者放心的保證),但有些開源工具還是做得不錯的,使用者可以選擇它來做一些相對不那麼重要的分析挖掘工作。

本文對開源資料挖掘工具的演進過程進行了簡單回顧,并挑選了一些比較優秀的開源挖掘工具,供大家選擇。

開源資料挖掘工具的演進過程

--------------------------

從上世紀八十年代起就出現了早期的模型推斷和機器學習程式,它們一般都是以指令行的方式執行(從UNIX或DOS的指令行啟動),使用者在指令中指定輸入資料檔案名和算法相關參數。廣為人知的分類樹歸納算法,C4.5,就是這種程式(C4.5的源程式參見http://www.rulequest.com/Personal)。同時還出現了基于規則的學習算法,例如AQ和CN2。這些程式大多被用在醫療領域,比如癌症的診斷和預測。

這些程式一般并不包括資料抽樣等處理功能,使用者通常是使用一些腳本語言(例如Perl)來做這些事情。同時,一些研究團體還開發了程式庫(用于支援資料格式共享、模組化評估和報表功能),例如MLC++,就是用C++編寫的機器學習程式庫。

指令行界面讓使用者很難對資料進行互動式分析,而且文本格式的輸出也不夠直覺。資料挖掘工具接下來的發展,就是内置資料可視化并強化互動功能。在上世紀九十年代中期,Silicon Graphics就收購了MLC++,并将其開發成為MineSet。MineSet幾乎可以稱為當時最全面的資料挖掘平台。Clementine也是當時非常流行的商用資料挖掘軟體,在界面易用性上非常突出。

現在的開源資料挖掘軟體,大多采用可視化程式設計的設計思路(IDMer:就是用圖形化的方法,來建立整個挖掘流程)。之是以這麼做,是因為它能足夠靈活和易用,更适合缺乏計算機科學知識的使用者。

在分析軟體中,靈活性和可擴充性是非常重要的,它允許你可以開發和擴充新的挖掘算法。在這個方面,Weka(IDMer:它幾乎是開源資料挖掘軟體的代表)就提供了文檔全面的Java函數和類庫,非常适合擴充。當然,您首先需要充分了解Weka的架構,并掌握Java程式設計技術。另一個很有名的開源軟體,R,則采用了相對不同的思路。R提供了豐富的統計分析和資料挖掘功能,它的核心是用C來實作的。但如果你想用R開發新的挖掘算法,那麼你并不需要用C語言來開發,而是使用R軟體自有的腳本語言來開發。采用腳本語言的好處在于速度(IDMer:這裡指的是開發新算法的時間會縮短,因為腳本語言相對來說更進階更簡單)、靈活(可以直接通過腳本調用挖掘軟體中複雜的功能函數)、可擴充性(可以通過接口來調用其它資料挖掘軟體的功能)。當然,圖形化的界面更容易使用,但使用腳本語言來開發新算法則可以滿足一些特定分析需求。

開源資料挖掘工具箱-期望的功能

------------------------------

提供一組基本的統計工具,用于對資料進行正常探索;

多種資料可視化技術,例如histograms, scatterplots, distribution charts, parallel coordinate visualizations, mosaic and sieve diagrams等等;

标準的資料處理元件,包括querying from databases, case selection, feature ranking and subset selection, and feature discretization等等;

無指導的資料分析技術,比如principal component analysis, various clustering techniques, inference of association rules, and subgroup mining techniques等等;

有指導的資料分析技術,比如classification rules and trees, support vector machines, naive Bayesian classifiers, discriminant analysis等等;

模型評估和評分工具,包括對結果的圖形化展示(比如ROC曲線和lift圖);

推斷模型的可視化功能(IDMer:例如用樹狀結構來顯示訓練好的決策樹,用氣泡圖來顯示聚類,用網絡圖來顯示關聯等等);

提供探索型資料分析環境

可以把模型儲存為标準格式(例如PMML),以便進行共享和移植

提供報表功能,可以生成分析報告,并允許儲存使用者的備注或說明

幾款優秀的開源資料挖掘工具

--------------------------

本文隻對幾種流行的開源資料挖掘平台進行了檢視,比如Weka和R等。如果您想找尋更多的開源資料挖掘軟體,可以到KDnuggets和Open Directory上檢視。為了評測這些軟體,我們用了UCI Machine Learning Repository上的心髒病診斷資料集。

R

R (http://www.r-project.org) 是用于統計分析和圖形化的計算機語言及分析工具,為了保證性能,其核心計算子產品是用C、C++和Fortran編寫的。同時為了便于使用,它提供了一種腳本語言,即R語言。R語言和貝爾實驗室開發的S語言類似。R支援一系列分析技術,包括統計檢驗、預測模組化、資料可視化等等。在CRAN(http://cran.r-project.org) 上可以找到衆多開源的擴充包。

R軟體的首選界面是指令行界面,通過編寫腳本來調用分析功能。如果缺乏程式設計技能,也可使用圖形界面,比如使用R Commander(http://socserv.mcmaster.ca/jfox/Misc/Rcmdr/)或Rattle(http://rattle.togaware.com)。

開源的資料挖掘工具 開源資料挖掘工具

Tanagra

Tanagra (http://eric.univ-lyon2.fr/wricco/tanagra/) 是使用圖形界面的資料挖掘軟體,采用了類似Windows資料總管中的樹狀結構來組織分析元件。Tanagra缺乏進階的可視化能力,但它的強項是統計分析,提供了衆多的有參和無參檢驗方法。同時它的特征選取方法也很多。

開源的資料挖掘工具 開源資料挖掘工具

Weka

Weka (Waikato Environment for Knowledge Analysis, http://www.cs.waikato.ac.nz/ml/weka/) 可能是名氣最大的開源機器學習和資料挖掘軟體。進階使用者可以通過Java程式設計和指令行來調用其分析元件。同時,Weka也為普通使用者提供了圖形化界面,稱為Weka KnowledgeFlow Environment和Weka Explorer。和R相比,Weka在統計分析方面較弱,但在機器學習方面要強得多。在Weka論壇(http://weka.sourceforge.net/wiki/index.php/Related_Projects) 可以找到很多擴充包,比如文本挖掘、可視化、網格計算等等。很多其它開源資料挖掘軟體也支援調用Weka的分析功能。

開源的資料挖掘工具 開源資料挖掘工具
開源的資料挖掘工具 開源資料挖掘工具
開源的資料挖掘工具 開源資料挖掘工具

YALE (IDMer:現在已經更名為RapidMiner)

YALE (Yet Another Learning Environment, http://rapid-i.com) 提供了圖形化界面,采用了類似Windows資料總管中的樹狀結構來組織分析元件,樹上每個節點表示不同的運算符(operator)。YALE中提供了大量的運算符,包括資料處理、變換、探索、模組化、評估等各個環節。YALE是用Java開發的,基于Weka來建構,也就是說它可以調用Weka中的各種分析元件。

開源的資料挖掘工具 開源資料挖掘工具

KNIME

KNIME (Konstanz InformationMiner, http://www.knime.org)是基于Eclipse開發環境來精心開發的資料挖掘工具。無需安裝,友善使用(IDMer:呵呵,大家喜歡的綠色版)。和YALE一樣,KNIME也是用Java開發的,可以擴充使用Weka中的挖掘算法。和YALE不同點的是,KNIME采用的是類似資料流(data flow)的方式來建立分析挖掘流程(IDMer:這個我喜歡,和SAS EM或SPSS Clementine等商用資料挖掘軟體的操作方式類似)。挖掘流程由一系列功能節點(node)組成,每個節點有輸入/輸出端口(port),用于接收資料或模型、導出結果。(IDMer:感覺KNIME比Weka的KnowledgeFlow更好用,連接配接節點時很友善,直接用滑鼠拖拽連接配接端口即可。而Weka中則需要在節點上按滑鼠右鍵,再選擇後續節點,比較麻煩,剛開始使用時找了半天才知道怎麼連)

KNIME中每個節點都帶有交通信号燈,用于訓示該節點的狀态(未連接配接、未配置、缺乏輸入資料時為紅燈;準備執行為黃燈;執行完畢後為綠燈)。在KNIME中有個特色功能——HiLite,允許使用者在節點結果中标記感興趣的記錄,并進一步展開後續探索。

開源的資料挖掘工具 開源資料挖掘工具
開源的資料挖掘工具 開源資料挖掘工具

Orange

Orange (http://www.ailab.si/orange)是類似KNIME和Weka KnowledgeFlow的資料挖掘工具,它的圖形環境稱為Orange畫布(OrangeCanvas),使用者可以在畫布上放置分析控件(widget),然後把控件連接配接起來即可組成挖掘流程。這裡的控件和KNIME中的節點是類似的概念。每個控件執行特定的功能,但與KNIME中的節點不同,KNIME節點的輸入輸出分為兩種類型(模型和資料),而Orange的控件間可以傳遞多種不同的信号,比如learners, classifiers, evaluation results, distance matrices, dendrograms等等。Orange的控件不象KNIME的節點分得那麼細,也就是說要完成同樣的分析挖掘任務,在Orange裡使用的控件數量可以比KNIME中的節點數少一些。Orange的好處是使用更簡單一些,但缺點是控制能力要比KNIME弱。

除了界面友好易于使用的優點,Orange的強項在于提供了大量可視化方法,可以對資料和模型進行多種圖形化展示,并能智能搜尋合适的可視化形式,支援對資料的互動式探索。

Orange的弱項在于傳統統計分析能力不強,不支援統計檢驗,報表能力也有限。Orange的底層核心也是采用C++編寫,同時允許使用者使用Python腳本語言來進行擴充開發(參見http://www.scipy.org)。

開源的資料挖掘工具 開源資料挖掘工具
開源的資料挖掘工具 開源資料挖掘工具

GGobi

資料可視化是資料挖掘的重要組成部分, GGobi (http://www.ggobi.org)就是用于互動式可視化的開源軟體,它使用brushing的方法。GGobi可以用作R軟體的插件,或者通過Perl、Python等腳本語言來調用。

開源的資料挖掘工具 開源資料挖掘工具

RapidMiner

開源的資料挖掘工具 開源資料挖掘工具

RapidMiner, 以前叫 YALE (Yet Another Learning Environment), 其是一個給機器學習和資料挖掘和分析的試驗環境,同時用于研究了真實世界資料挖掘。它提供的實驗由大量的算子組成,而這些算子由詳細的XML 檔案記錄,并被RapidMiner圖形化的使用者接口表現出來。RapidMiner為主要的機器學習過程提供了超過500算子,并且,其結合了學習方案和Weka學習環境的屬性評估器。它是一個獨立的工具可以用來做資料分析,同樣也是一個資料挖掘引擎可以用來內建到你的産品中。

JHepWork

開源的資料挖掘工具 開源資料挖掘工具

為科學家,工程師和學生所設計的 jHepWork 是一個免費的開源資料分析架構,其主要是用開源庫來建立 一個資料分析環境,并提供了豐富的使用者接口,以此來和那些收費的的軟體競争。它主要是為了科學計算用的二維和三維的制圖,并包含了用Java實作的數學科學庫,随機數,和其它的資料挖掘算法。 jHepWork 是基于一個進階的程式設計語言 Jython,當然,Java代碼同樣可以用來調用 jHepWork 的數學和圖形庫。

源文:http://www.junauza.com/2010/11/free-data-mining-software.html

譯文:http://coolshell.cn/articles/3356.html

結論

----

以上介紹的幾款軟體都是優秀的開源資料挖掘軟體,各有所長,同時也各有缺點。讀者可以結合自己的需求來進行選擇,或者組合使用多個軟體。對于普通使用者可以選用界面友好易于使用的軟體,對于希望從事算法開發的使用者則可以根據軟體開發工具不同(Java、R、C++、Python等)來選擇相應的軟體。以上這幾款軟體(除了GGobi)基本上都提供了我們期望的大部分功能。

(IDMer:我嘗試了以上這幾種開源軟體,Weka很有名但用起來并不友善,界面也簡單了點;RapidMiner現在流行的勢頭在上升,但它的操作方式和商用軟體差别較大,不支援分析流程圖的方式,當包含的運算符比較多的時候就不容易檢視了;KNIME和Orange看起來都不錯,Orange界面看上去很清爽,但我發現它不支援中文。我的推薦是KNIME,同時安裝Weka和R擴充包。)

(IDMer:我的點評純屬個人意見,歡迎大家批評交流。在我的實際工作中使用開源挖掘工具并不多,大部分時候都是在使用SAS Enterprise Miner。)

原文連結:http://www.cnblogs.com/nwf5d/archive/2011/05/11/2042786.html

繼續閱讀