常見的21種數據挖掘工具
譯文【51CTO.com快譯】數據挖掘(Data mining)是通過智能的方法,從數據中提取實用信息,對數據予以解釋,發(fā)現數據的模式與關系,以及預測趨勢和行為的過程。該過程往往會涉及到諸如:數據清理、機器學習、人工智能、數據分析、數據庫系統(tǒng)、以及回歸、聚類等信息統(tǒng)計技術。顯然,數據集越大、越復雜,我們就能夠越輕松地通過自動化分析工具,越快地找到越相關的意義。而通過識別和理解有意義的數據,用戶企業(yè)也就可以做出各種明智的決策,并實現其目標。
數據挖掘的基本步驟
我們可以將數據挖掘運用到諸如:市場細分、趨勢分析、欺詐檢測、數據庫營銷、信用風險管理、教育、以及財務分析等多種場景中。雖然各個組織使用的方法可能有所不同,但是總的說來,數據挖掘過程通常包括以下五個步驟:
- 根據既定的目標,確定業(yè)務需求。
- 識別數據源,以確定需要分析哪些數據點。
- 選擇并應用建模技術。
- 評估模型,以確保其符合既定的目標。
- 報告數據挖掘的結果,或繼續(xù)執(zhí)行可重復的數據挖掘過程。
數據挖掘與數據倉庫之間的區(qū)別
數據倉庫是收集和管理數據的過程。它將各種不同來源的數據存儲到一個存儲庫中,以供運營業(yè)務系統(tǒng)(如CRM系統(tǒng))使用。該過程通常發(fā)生在數據挖掘之前,其優(yōu)勢包括:改進源系統(tǒng)中的數據質量,保護數據免受源系統(tǒng)更新的影響,具備集成多個數據源和數據優(yōu)化的能力。
數據挖掘工具
如前所述,數據挖掘的過程會涉及到各種技術,其中包括流行的:回歸分析(預測性)、關聯(lián)規(guī)則發(fā)現(描述性)、聚類(描述性)和分類(預測性)。目前,隨著市場的成熟、軟件的升級、以及技術的迭代,我們可以選用帶有不同算法的工具,來進行數據分析與挖掘。下面,我將和您從如下7個分類,綜合介紹與比較21種常見的工具。
- 用于統(tǒng)計分析的集成類數據挖掘工具
- 開源的數據挖掘方案
- 大數據類數據挖掘工具
- 小型數據挖掘方案
- 用于云端數據挖掘的方案
- 使用神經網絡的數據挖掘工具
- 用于數據可視化的數據挖掘工具
當然,其中的一些工具可能會橫跨多個類別。例如,盡管Amazon EMR屬于云端解決方案,但它同時也是處理大數據的絕佳工具。因此,我們盡量根據每種工具的最突出特性,進行分類。
在實際介紹各類工具之前,我們首先來簡要了解兩種最流行的數據科學編程語言:R和Python之間的區(qū)別。
R與Python
從源頭上說,R是在考慮統(tǒng)計分析的前提下開發(fā)的;而Python則提供了一種更為通用的數據科學方法。從使用目的來看,R更專注于數據分析,并提供可靈活地使用的代碼庫。相反,Python的主要目標是部署到生產環(huán)境,它允許用戶從頭開始創(chuàng)建模型。就具體使用方法而言,R通常被集成到本地運行,而Python則能夠與應用程序相集成。因此,盡管它們之間存在著差異,但是兩種語言都可以處理大量的數據,并提供大量的代碼庫。
用于統(tǒng)計分析的集成類數據挖掘工具
1. IBM SPSS
SPSS(Statistical Package for the Social Sciences)是目前最流行的統(tǒng)計軟件平臺之一。自2015年開始提供統(tǒng)計產品和服務方案以來,該軟件的各種高級功被廣泛地運用于學習算法、統(tǒng)計分析(包括描述性回歸、聚類等)、文本分析、以及與大數據集成等場景中。同時,SPPS允許用戶通過各種專業(yè)性的擴展,運用Python和R來改進其SPSS語法。
IBM的SPSS
2. R
如前所述,R是一種編程語言,可用于統(tǒng)計計算與圖形環(huán)境。它能夠與UNIX、FreeBSD、Linux、macOS和Windows操作系統(tǒng)相兼容。R可以被運用在諸如:時間序列分析、聚類、以及線性與非線性建模等各種統(tǒng)計分析場景中。同時,作為一種免費的統(tǒng)計計算環(huán)境,它還能夠提供連貫的系統(tǒng),各種出色的數據挖掘包,可用于數據分析的圖形化工具,以及大量的中間件工具。此外,它也是SAS和IBM SPSS等統(tǒng)計軟件的開源解決方案。
3. SAS
SAS(Statistical Analysis System)是數據與文本挖掘(tex mining)及優(yōu)化的合適選擇。它能夠根據組織的需求和目標,提供了多種分析技術和方法功能。目前,它能夠提供描述性建模(有助于對客戶進行分類和描述)、預測性建模(便于預測未知結果)和解析性建模(用于解析,過濾和轉換諸如電子郵件、注釋字段、書籍等非結構化數據)。此外,其分布式內存處理架構,還具有高度的可擴展性。
4. Oracle Data Mining
Oracle Data Mining(ODB)是Oracle Advanced Analytics的一部分。該數據挖掘工具提供了出色的數據預測算法,可用于分類、回歸、聚類、關聯(lián)、屬性重要性判斷、以及其他專業(yè)分析。此外,ODB也可以使用SQL、PL/SQL、R和Java等接口,來檢索有價值的數據見解,并予以準確的預測。
開源的數據挖掘工具
5.KNIME
于2006年首發(fā)的開源軟件KNIME(Konstanz Information Miner),如今已被廣泛地應用在銀行、生命科學、出版和咨詢等行業(yè)的數據科學和機器學習領域。同時,它提供本地和云端連接器,以實現不同環(huán)境之間數據的遷移。雖然它是用Java實現的,但是KNIME提供了各種節(jié)點,以方便用戶在Ruby、Python和R中運行它。
KNIME
6. RapidMiner
作為一種開源的數據挖掘工具,RapidMiner可與R和Python無縫地集成。它通過提供豐富的產品,來創(chuàng)建新的數據挖掘過程,并提供各種高級分析。同時,RapidMiner是由Java編寫,可以與WEKA和R-tool相集成,是目前好用的預測分析系統(tǒng)之一。它能夠提供諸如:遠程分析處理,創(chuàng)建和驗證預測模型,多種數據管理方法,內置模板,可重復的工作流程,數據過濾,以及合并與聯(lián)接等多項實用功能。
7.Orange
Orange是基于Python的開源式數據挖掘軟件。當然,除了提供基本的數據挖掘功能,Orange也支持可用于數據建模、回歸、聚類、預處理等領域的機器學習算法。同時,Orange還提供了可視化的編程環(huán)境,以及方便用戶拖放組件與鏈接的能力。
大數據類數據挖掘工具
從概念上說,大數據既可以是結構化的,也可以是非結構化、或半結構化的。它通常涵蓋了五個V的特性,即:體量(volume,可能達到TB或PB級)、多樣性(variety)、速度(velocity)、準確性(veracity)和價值(value)。鑒于其復雜性,我們對于海量數據的存儲,模式的發(fā)現,以及趨勢的預測等,都很難在一臺計算機上處理與實現,因此需要用到分布式的數據挖掘工具。
8. Apache Spark
Apache Spark憑借著其處理大數據的易用性與高性能,而倍受歡迎。它具有針對Java、Python(PySpark)、R(SparkR)、SQL、Scala等多種接口,能夠提供80多個高級運算符,以方便用戶更快地編寫出代碼。另外,Apache Spark也提供了針對SQL and DataFrames、Spark Streaming、GrpahX和MLlib的代碼庫,以實現快速的數據處理和數據流平臺。
在Apache Spark中使用Python的邏輯回歸進行預測
9. Hadoop MapReduce
Hadoop是處理大量數據和各種計算問題的開源工具集合。雖然是用Java編寫而成,但是任何編程語言都可以與Hadoop Streaming協(xié)同使用。其中MapReduce是Hadoop的實現和編程模型。它允許用戶“映射(map)”和“簡化(reduce)”各種常用的功能,并且可以橫跨龐大的數據集,執(zhí)行大型聯(lián)接(join)操作。此外,Hadoop也提供了諸如:用戶活動分析、非結構化數據處理、日志分析、以及文本挖掘等應用。目前,它已成為一種針對大數據執(zhí)行復雜數據挖掘的廣泛適用方案。
10.Qlik
Qlik是一個能夠運用可擴展、且靈活的方法,去處理數據分析和挖掘的平臺。它具有易用的拖放界面,并能夠即時響應用戶的修改和交互。為了支持多個數據源,Qlik通過各種連接器、擴展、內置應用、以及API集,實現與各種外部應用格式的無縫集成。同時,它也是集中式共享分析的絕佳工具。
小型數據挖掘方案
11. Scikit-learn
作為一款可用于Python機器學習的免費軟件工具,Scikit-learn能夠提供出色的數據分析和挖掘功能。它具有諸如分類、回歸、聚類、預處理、模型選擇、以及降維等多種功能。
Scikitlern中的分層聚類
12.Rattle(R)
由R語言開發(fā)的Rattle,能夠與macOS、Windows和Linux等操作系統(tǒng)相兼容。它主要被美國和澳大利亞的用戶用于企業(yè)商業(yè)與學術目的。R的計算能力能夠為用戶提供諸如:聚類、數據可視化、建模、以及其他統(tǒng)計分析類功能。
13.Pandas(Python)
Pandas也是利用Python進行數據挖掘的“一把好手”。由它提供的代碼庫既可以被用來進行數據分析,又可以管理目標系統(tǒng)的數據結構。
14.H3O
作為一種開源的數據挖掘軟件,H3O可以被用來分析存儲在云端架構里的數據。雖然是由R語言編寫,但是該工具不但能與Python兼容,而且可以用于構建各種模型。此外,得益于Java的語言支持,H3O能夠被快速、輕松地部署到生產環(huán)境中。
用于云端數據挖掘的方案
通過實施云端數據挖掘技術,用戶可以從虛擬的集成數據倉庫中,檢索到重要的信息,進而降低存儲和基礎架構的成本。
15.Amazon EMR
作為處理大數據的云端解決方案,Amazon EMR不僅可以被用于數據挖掘,還可以執(zhí)行諸如:Web索引、日志文件分析、財務分析、機器學習等數據科學工作。該平臺提供了包括Apache Spark和Apache Flink在內的各種開源方案,并且能夠通過自動調整集群之類的任務,來提高大數據環(huán)境的可擴展性。
Amazon的大數據平臺
16. Azure ML
作為一種基于云服務的環(huán)境,Azure ML可用于構建,訓練和部署各種機器學習模型。針對各種數據分析、挖掘與預測任務,Azure ML可以讓用戶在云平臺中對不同體量的數據進行計算和操控。
17. Google AI Platform
與Amazon EMR和Azure ML類似,基于云端的Google AI Platform也能夠提供各種機器學習棧。Google AI Platform包括了各種數據庫、機器學習庫、以及其他工具。用戶可以在云端使用它們,以執(zhí)行數據挖掘和其他數據科學類任務。
使用神經網絡的數據挖掘工具
神經網絡主要是以人腦處理信息的方式,去處理數據。換句話說,由于我們的大腦有著數百萬個處理外部信息,并隨之產生輸出的神經元,因此神經網絡可以遵循此類原理,通過將原始數據轉換為彼此相關的信息,以實現數據挖掘的目的。
18. PyTorch
Pytorch既是一個Python包,也是一個基于Torch庫的深度學習框架。它最初是由Facebook的AI研究實驗室(FAIR)開發(fā)的,屬于深層的神經網絡類數據科學工具。用戶可以通過:加載數據,預處理數據,定義模型,執(zhí)行訓練和評估,這樣的數據挖掘步驟,通過Pytorch對整個神經網絡進行編程。此外,借助強大的GPU加速能力,Torch可以實現快速的陣列計算。截至2020年9月,torch的R生態(tài)系統(tǒng)(https://torch.mlverse.org/)中已包含有torch、torchvision、torchaudio、以及其他擴展。
PyTorch的神經網絡
19. TensorFlow
與PyTorch相似,由Google Brain Team開發(fā)的TensorFlow也是基于Python的開源機器學習框架。它既可以被用于構建深度學習模型,又能夠高度關注深度神經網絡。TensorFlow生態(tài)系統(tǒng)不但能夠靈活地提供各種庫和工具,而且擁有一個廣泛的流行社區(qū),開發(fā)人員可以進行各種問答和知識共享。盡管屬于Python庫,但是TensorFlow于2017年開始對TensorFlow API引入了R接口。
用于數據可視化的數據挖掘工具
數據可視化是對從數據挖掘過程中提取的信息,予以圖形化表示。此類工具能夠讓用戶通過圖形、圖表、映射圖、以及其他可視化元素,直觀地了解數據的趨勢、模型和異常值。
20. Matplotlib
Matplotlib是使用Python進行數據可視化的出色工具庫。它允許用戶利用交互式的圖形,來創(chuàng)建諸如:直方圖、散點圖、3D圖等質量圖表。而且這些圖表都可以從樣式、軸屬性、字體等方面被自定義。
Matplotlib的圖表示例
21. ggplot2
ggplot2也是一款廣受歡迎的數據可視化R工具包。它允許用戶構建出各類高質量且美觀的圖形。同時,用戶也可以通過該工具,高度抽象地修改圖中的各種組件。
小結
如前所述,大多數數據挖掘工具或方案,都用到了R和Python兩種主要編程語言,也用到了各種相應的包和庫。對于從事數據挖掘的開發(fā)人員或數據科學家來說,學習和了解各種類型的數據分析與挖掘工具,是非常必要的。當然,具體如何選擇合適的工具,則取決于您當前的業(yè)務或研究目標。
原文標題:Top 21 Data Mining Tools,作者: Mariana Berga, Alicja Ochman, Pedro Coelho
【51CTO譯稿,合作站點轉載請注明原文譯者和出處為51CTO.com】