數(shù)據(jù)挖掘(Data mining)是通過智能的方法州胳,從數(shù)據(jù)中提取實(shí)用信息,對(duì)數(shù)據(jù)予以解釋逸月,發(fā)現(xiàn)數(shù)據(jù)的模式與關(guān)系栓撞,以及預(yù)測(cè)趨勢(shì)和行為的過程。該過程往往會(huì)涉及到諸如:數(shù)據(jù)清理碗硬、機(jī)器學(xué)習(xí)瓤湘、人工智能捌归、數(shù)據(jù)分析、數(shù)據(jù)庫系統(tǒng)岭粤、以及回歸、聚類等信息統(tǒng)計(jì)技術(shù)特笋。顯然剃浇,數(shù)據(jù)集越大、越復(fù)雜猎物,我們就能夠越輕松地通過自動(dòng)化分析工具虎囚,越快地找到越相關(guān)的意義。而通過識(shí)別和理解有意義的數(shù)據(jù)蔫磨,用戶企業(yè)也就可以做出各種明智的決策淘讥,并實(shí)現(xiàn)其目標(biāo)。
數(shù)據(jù)挖掘的基本步驟
我們可以將數(shù)據(jù)挖掘運(yùn)用到諸如:市場(chǎng)細(xì)分堤如、趨勢(shì)分析蒲列、欺詐檢測(cè)、數(shù)據(jù)庫營銷搀罢、信用風(fēng)險(xiǎn)管理蝗岖、教育、以及財(cái)務(wù)分析等多種場(chǎng)景中榔至。雖然各個(gè)組織使用的方法可能有所不同抵赢,但是總的說來,數(shù)據(jù)挖掘過程通常包括以下五個(gè)步驟:
根據(jù)既定的目標(biāo)唧取,確定業(yè)務(wù)需求铅鲤。
識(shí)別數(shù)據(jù)源,以確定需要分析哪些數(shù)據(jù)點(diǎn)枫弟。
選擇并應(yīng)用建模技術(shù)邢享。
評(píng)估模型,以確保其符合既定的目標(biāo)媒区。
報(bào)告數(shù)據(jù)挖掘的結(jié)果驼仪,或繼續(xù)執(zhí)行可重復(fù)的數(shù)據(jù)挖掘過程。
數(shù)據(jù)挖掘與數(shù)據(jù)倉庫之間的區(qū)別
數(shù)據(jù)倉庫是收集和管理數(shù)據(jù)的過程袜漩。它將各種不同來源的數(shù)據(jù)存儲(chǔ)到一個(gè)存儲(chǔ)庫中绪爸,以供運(yùn)營業(yè)務(wù)系統(tǒng)(如CRM系統(tǒng))使用。該過程通常發(fā)生在數(shù)據(jù)挖掘之前宙攻,其優(yōu)勢(shì)包括:改進(jìn)源系統(tǒng)中的數(shù)據(jù)質(zhì)量奠货,保護(hù)數(shù)據(jù)免受源系統(tǒng)更新的影響,具備集成多個(gè)數(shù)據(jù)源和數(shù)據(jù)優(yōu)化的能力座掘。
數(shù)據(jù)挖掘工具
如前所述递惋,數(shù)據(jù)挖掘的過程會(huì)涉及到各種技術(shù)柔滔,其中包括流行的:回歸分析(預(yù)測(cè)性)、關(guān)聯(lián)規(guī)則發(fā)現(xiàn)(描述性)萍虽、聚類(描述性)和分類(預(yù)測(cè)性)睛廊。目前,隨著市場(chǎng)的成熟杉编、軟件的升級(jí)超全、以及技術(shù)的迭代,我們可以選用帶有不同算法的工具邓馒,來進(jìn)行數(shù)據(jù)分析與挖掘嘶朱。下面,我將和您從如下7個(gè)分類光酣,綜合介紹與比較21種常見的工具疏遏。
用于統(tǒng)計(jì)分析的集成類數(shù)據(jù)挖掘工具
開源的數(shù)據(jù)挖掘方案
大數(shù)據(jù)類數(shù)據(jù)挖掘工具
小型數(shù)據(jù)挖掘方案
用于云端數(shù)據(jù)挖掘的方案
使用神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)挖掘工具
用于數(shù)據(jù)可視化的數(shù)據(jù)挖掘工具
當(dāng)然,其中的一些工具可能會(huì)橫跨多個(gè)類別救军。例如财异,盡管Amazon EMR屬于云端解決方案,但它同時(shí)也是處理大數(shù)據(jù)的絕佳工具唱遭。因此宝当,我們盡量根據(jù)每種工具的最突出特性,進(jìn)行分類胆萧。
在實(shí)際介紹各類工具之前庆揩,我們首先來簡要了解兩種最流行的數(shù)據(jù)科學(xué)編程語言:R和Python之間的區(qū)別。
R與Python
從源頭上說跌穗,R是在考慮統(tǒng)計(jì)分析的前提下開發(fā)的;而Python則提供了一種更為通用的數(shù)據(jù)科學(xué)方法订晌。從使用目的來看,R更專注于數(shù)據(jù)分析蚌吸,并提供可靈活地使用的代碼庫锈拨。相反,Python的主要目標(biāo)是部署到生產(chǎn)環(huán)境羹唠,它允許用戶從頭開始創(chuàng)建模型奕枢。就具體使用方法而言,R通常被集成到本地運(yùn)行佩微,而Python則能夠與應(yīng)用程序相集成缝彬。因此,盡管它們之間存在著差異哺眯,但是兩種語言都可以處理大量的數(shù)據(jù)谷浅,并提供大量的代碼庫。
用于統(tǒng)計(jì)分析的集成類數(shù)據(jù)挖掘工具
1.?IBM SPSS
SPSS(Statistical Package for the Social Sciences)是目前最流行的統(tǒng)計(jì)軟件平臺(tái)之一。自2015年開始提供統(tǒng)計(jì)產(chǎn)品和服務(wù)方案以來一疯,該軟件的各種高級(jí)功被廣泛地運(yùn)用于學(xué)習(xí)算法撼玄、統(tǒng)計(jì)分析(包括描述性回歸、聚類等)墩邀、文本分析掌猛、以及與大數(shù)據(jù)集成等場(chǎng)景中。同時(shí)眉睹,SPPS允許用戶通過各種專業(yè)性的擴(kuò)展留潦,運(yùn)用Python和R來改進(jìn)其SPSS語法。
2.?R
如前所述辣往,R是一種編程語言,可用于統(tǒng)計(jì)計(jì)算與圖形環(huán)境殖卑。它能夠與UNIX站削、FreeBSD、Linux孵稽、macOS和Windows操作系統(tǒng)相兼容许起。R可以被運(yùn)用在諸如:時(shí)間序列分析、聚類园细、以及線性與非線性建模等各種統(tǒng)計(jì)分析場(chǎng)景中。同時(shí)接校,作為一種免費(fèi)的統(tǒng)計(jì)計(jì)算環(huán)境猛频,它還能夠提供連貫的系統(tǒng),各種出色的數(shù)據(jù)挖掘包蛛勉,可用于數(shù)據(jù)分析的圖形化工具鹿寻,以及大量的中間件工具。此外诽凌,它也是SAS和IBM SPSS等統(tǒng)計(jì)軟件的開源解決方案毡熏。
3.?SAS
SAS(Statistical Analysis System)是數(shù)據(jù)與文本挖掘(tex mining)及優(yōu)化的合適選擇。它能夠根據(jù)組織的需求和目標(biāo)侣诵,提供了多種分析技術(shù)和方法功能痢法。目前,它能夠提供描述性建模(有助于對(duì)客戶進(jìn)行分類和描述)杜顺、預(yù)測(cè)性建模(便于預(yù)測(cè)未知結(jié)果)和解析性建模(用于解析财搁,過濾和轉(zhuǎn)換諸如電子郵件、注釋字段躬络、書籍等非結(jié)構(gòu)化數(shù)據(jù))妇拯。此外,其分布式內(nèi)存處理架構(gòu),還具有高度的可擴(kuò)展性越锈。
4.?Oracle Data Mining
Oracle Data Mining(ODB)是Oracle Advanced Analytics的一部分仗嗦。該數(shù)據(jù)挖掘工具提供了出色的數(shù)據(jù)預(yù)測(cè)算法,可用于分類甘凭、回歸稀拐、聚類、關(guān)聯(lián)丹弱、屬性重要性判斷德撬、以及其他專業(yè)分析。此外躲胳,ODB也可以使用SQL蜓洪、PL/SQL、R和Java等接口坯苹,來檢索有價(jià)值的數(shù)據(jù)見解隆檀,并予以準(zhǔn)確的預(yù)測(cè)。
開源的數(shù)據(jù)挖掘工具
5.KNIME
于2006年首發(fā)的開源軟件KNIME(Konstanz Information Miner)粹湃,如今已被廣泛地應(yīng)用在銀行恐仑、生命科學(xué)、出版和咨詢等行業(yè)的數(shù)據(jù)科學(xué)和機(jī)器學(xué)習(xí)領(lǐng)域为鳄。同時(shí)裳仆,它提供本地和云端連接器,以實(shí)現(xiàn)不同環(huán)境之間數(shù)據(jù)的遷移孤钦。雖然它是用Java實(shí)現(xiàn)的歧斟,但是KNIME提供了各種節(jié)點(diǎn),以方便用戶在Ruby偏形、Python和R中運(yùn)行它构捡。
6.?RapidMiner
作為一種開源的數(shù)據(jù)挖掘工具,RapidMiner可與R和Python無縫地集成壳猜。它通過提供豐富的產(chǎn)品勾徽,來創(chuàng)建新的數(shù)據(jù)挖掘過程,并提供各種高級(jí)分析统扳。同時(shí)喘帚,RapidMiner是由Java編寫,可以與WEKA和R-tool相集成咒钟,是目前好用的預(yù)測(cè)分析系統(tǒng)之一吹由。它能夠提供諸如:遠(yuǎn)程分析處理,創(chuàng)建和驗(yàn)證預(yù)測(cè)模型朱嘴,多種數(shù)據(jù)管理方法倾鲫,內(nèi)置模板粗合,可重復(fù)的工作流程,數(shù)據(jù)過濾乌昔,以及合并與聯(lián)接等多項(xiàng)實(shí)用功能隙疚。
7.Orange
Orange是基于Python的開源式數(shù)據(jù)挖掘軟件。當(dāng)然磕道,除了提供基本的數(shù)據(jù)挖掘功能供屉,Orange也支持可用于數(shù)據(jù)建模、回歸溺蕉、聚類伶丐、預(yù)處理等領(lǐng)域的機(jī)器學(xué)習(xí)算法。同時(shí)疯特,Orange還提供了可視化的編程環(huán)境哗魂,以及方便用戶拖放組件與鏈接的能力。
大數(shù)據(jù)類數(shù)據(jù)挖掘工具
從概念上說漓雅,大數(shù)據(jù)既可以是結(jié)構(gòu)化的录别,也可以是非結(jié)構(gòu)化、或半結(jié)構(gòu)化的故硅。它通常涵蓋了五個(gè)V的特性,即:體量(volume纵搁,可能達(dá)到TB或PB級(jí))吃衅、多樣性(variety)、速度(velocity)腾誉、準(zhǔn)確性(veracity)和價(jià)值(value)徘层。鑒于其復(fù)雜性,我們對(duì)于海量數(shù)據(jù)的存儲(chǔ)利职,模式的發(fā)現(xiàn)趣效,以及趨勢(shì)的預(yù)測(cè)等,都很難在一臺(tái)計(jì)算機(jī)上處理與實(shí)現(xiàn)猪贪,因此需要用到分布式的數(shù)據(jù)挖掘工具跷敬。
8.?Apache Spark
Apache Spark憑借著其處理大數(shù)據(jù)的易用性與高性能,而倍受歡迎热押。它具有針對(duì)Java西傀、Python(PySpark)、R(SparkR)桶癣、SQL拥褂、Scala等多種接口,能夠提供80多個(gè)高級(jí)運(yùn)算符牙寞,以方便用戶更快地編寫出代碼饺鹃。另外,Apache Spark也提供了針對(duì)SQL and DataFrames、Spark Streaming悔详、GrpahX和MLlib的代碼庫镊屎,以實(shí)現(xiàn)快速的數(shù)據(jù)處理和數(shù)據(jù)流平臺(tái)。
9.?Hadoop MapReduce
Hadoop是處理大量數(shù)據(jù)和各種計(jì)算問題的開源工具集合伟端。雖然是用Java編寫而成杯道,但是任何編程語言都可以與Hadoop Streaming協(xié)同使用。其中MapReduce是Hadoop的實(shí)現(xiàn)和編程模型责蝠。它允許用戶“映射(map)”和“簡化(reduce)”各種常用的功能党巾,并且可以橫跨龐大的數(shù)據(jù)集,執(zhí)行大型聯(lián)接(join)操作霜医。此外齿拂,Hadoop也提供了諸如:用戶活動(dòng)分析、非結(jié)構(gòu)化數(shù)據(jù)處理肴敛、日志分析署海、以及文本挖掘等應(yīng)用。目前医男,它已成為一種針對(duì)大數(shù)據(jù)執(zhí)行復(fù)雜數(shù)據(jù)挖掘的廣泛適用方案砸狞。
10.Qlik
Qlik是一個(gè)能夠運(yùn)用可擴(kuò)展、且靈活的方法镀梭,去處理數(shù)據(jù)分析和挖掘的平臺(tái)刀森。它具有易用的拖放界面,并能夠即時(shí)響應(yīng)用戶的修改和交互报账。為了支持多個(gè)數(shù)據(jù)源研底,Qlik通過各種連接器、擴(kuò)展透罢、內(nèi)置應(yīng)用榜晦、以及API集,實(shí)現(xiàn)與各種外部應(yīng)用格式的無縫集成羽圃。同時(shí)乾胶,它也是集中式共享分析的絕佳工具。
小型數(shù)據(jù)挖掘方案
11.?Scikit-learn
作為一款可用于Python機(jī)器學(xué)習(xí)的免費(fèi)軟件工具朽寞,Scikit-learn能夠提供出色的數(shù)據(jù)分析和挖掘功能胚吁。它具有諸如分類、回歸愁憔、聚類腕扶、預(yù)處理、模型選擇吨掌、以及降維等多種功能半抱。
12.Rattle(R)
由R語言開發(fā)的Rattle脓恕,能夠與macOS、Windows和Linux等操作系統(tǒng)相兼容窿侈。它主要被美國和澳大利亞的用戶用于企業(yè)商業(yè)與學(xué)術(shù)目的炼幔。R的計(jì)算能力能夠?yàn)橛脩籼峁┲T如:聚類、數(shù)據(jù)可視化史简、建模乃秀、以及其他統(tǒng)計(jì)分析類功能。
13.Pandas(Python)
Pandas也是利用Python進(jìn)行數(shù)據(jù)挖掘的“一把好手”圆兵。由它提供的代碼庫既可以被用來進(jìn)行數(shù)據(jù)分析跺讯,又可以管理目標(biāo)系統(tǒng)的數(shù)據(jù)結(jié)構(gòu)。
14.H3O
作為一種開源的數(shù)據(jù)挖掘軟件殉农,H3O可以被用來分析存儲(chǔ)在云端架構(gòu)里的數(shù)據(jù)刀脏。雖然是由R語言編寫,但是該工具不但能與Python兼容超凳,而且可以用于構(gòu)建各種模型愈污。此外,得益于Java的語言支持轮傍,H3O能夠被快速暂雹、輕松地部署到生產(chǎn)環(huán)境中。
用于云端數(shù)據(jù)挖掘的方案
通過實(shí)施云端數(shù)據(jù)挖掘技術(shù)创夜,用戶可以從虛擬的集成數(shù)據(jù)倉庫中杭跪,檢索到重要的信息,進(jìn)而降低存儲(chǔ)和基礎(chǔ)架構(gòu)的成本挥下。
15.Amazon EMR
作為處理大數(shù)據(jù)的云端解決方案揍魂,Amazon EMR不僅可以被用于數(shù)據(jù)挖掘桨醋,還可以執(zhí)行諸如:Web索引棚瘟、日志文件分析、財(cái)務(wù)分析喜最、機(jī)器學(xué)習(xí)等數(shù)據(jù)科學(xué)工作偎蘸。該平臺(tái)提供了包括Apache Spark和Apache Flink在內(nèi)的各種開源方案,并且能夠通過自動(dòng)調(diào)整集群之類的任務(wù)瞬内,來提高大數(shù)據(jù)環(huán)境的可擴(kuò)展性迷雪。
16.?Azure ML
作為一種基于云服務(wù)的環(huán)境,Azure ML可用于構(gòu)建虫蝶,訓(xùn)練和部署各種機(jī)器學(xué)習(xí)模型章咧。針對(duì)各種數(shù)據(jù)分析、挖掘與預(yù)測(cè)任務(wù)能真,Azure ML可以讓用戶在云平臺(tái)中對(duì)不同體量的數(shù)據(jù)進(jìn)行計(jì)算和操控赁严。
17.?Google AI Platform
與Amazon EMR和Azure ML類似扰柠,基于云端的Google AI Platform也能夠提供各種機(jī)器學(xué)習(xí)棧。Google AI Platform包括了各種數(shù)據(jù)庫疼约、機(jī)器學(xué)習(xí)庫卤档、以及其他工具。用戶可以在云端使用它們程剥,以執(zhí)行數(shù)據(jù)挖掘和其他數(shù)據(jù)科學(xué)類任務(wù)劝枣。
使用神經(jīng)網(wǎng)絡(luò)的數(shù)據(jù)挖掘工具
神經(jīng)網(wǎng)絡(luò)主要是以人腦處理信息的方式,去處理數(shù)據(jù)织鲸。換句話說舔腾,由于我們的大腦有著數(shù)百萬個(gè)處理外部信息,并隨之產(chǎn)生輸出的神經(jīng)元昙沦,因此神經(jīng)網(wǎng)絡(luò)可以遵循此類原理琢唾,通過將原始數(shù)據(jù)轉(zhuǎn)換為彼此相關(guān)的信息,以實(shí)現(xiàn)數(shù)據(jù)挖掘的目的盾饮。
18.?PyTorch
Pytorch既是一個(gè)Python包采桃,也是一個(gè)基于Torch庫的深度學(xué)習(xí)框架。它最初是由Facebook的AI研究實(shí)驗(yàn)室(FAIR)開發(fā)的丘损,屬于深層的神經(jīng)網(wǎng)絡(luò)類數(shù)據(jù)科學(xué)工具普办。用戶可以通過:加載數(shù)據(jù),預(yù)處理數(shù)據(jù)徘钥,定義模型衔蹲,執(zhí)行訓(xùn)練和評(píng)估,這樣的數(shù)據(jù)挖掘步驟呈础,通過Pytorch對(duì)整個(gè)神經(jīng)網(wǎng)絡(luò)進(jìn)行編程舆驶。此外,借助強(qiáng)大的GPU加速能力而钞,Torch可以實(shí)現(xiàn)快速的陣列計(jì)算沙廉。截至2020年9月插佛,torch的R生態(tài)系統(tǒng)(https://torch.mlverse.org/)中已包含有torch屋群、torchvision熔萧、torchaudio审轮、以及其他擴(kuò)展叁怪。
19.?TensorFlow
與PyTorch相似缚陷,由Google Brain Team開發(fā)的TensorFlow也是基于Python的開源機(jī)器學(xué)習(xí)框架达吞。它既可以被用于構(gòu)建深度學(xué)習(xí)模型培他,又能夠高度關(guān)注深度神經(jīng)網(wǎng)絡(luò)粉臊。TensorFlow生態(tài)系統(tǒng)不但能夠靈活地提供各種庫和工具草添,而且擁有一個(gè)廣泛的流行社區(qū),開發(fā)人員可以進(jìn)行各種問答和知識(shí)共享扼仲。盡管屬于Python庫远寸,但是TensorFlow于2017年開始對(duì)TensorFlow API引入了R接口促王。
用于數(shù)據(jù)可視化的數(shù)據(jù)挖掘工具
數(shù)據(jù)可視化是對(duì)從數(shù)據(jù)挖掘過程中提取的信息,予以圖形化表示而晒。此類工具能夠讓用戶通過圖形蝇狼、圖表、映射圖倡怎、以及其他可視化元素迅耘,直觀地了解數(shù)據(jù)的趨勢(shì)、模型和異常值监署。
20.?Matplotlib
Matplotlib是使用Python進(jìn)行數(shù)據(jù)可視化的出色工具庫颤专。它允許用戶利用交互式的圖形,來創(chuàng)建諸如:直方圖钠乏、散點(diǎn)圖栖秕、3D圖等質(zhì)量圖表。而且這些圖表都可以從樣式晓避、軸屬性簇捍、字體等方面被自定義。
21.?ggplot2
ggplot2也是一款廣受歡迎的數(shù)據(jù)可視化R工具包俏拱。它允許用戶構(gòu)建出各類高質(zhì)量且美觀的圖形暑塑。同時(shí),用戶也可以通過該工具锅必,高度抽象地修改圖中的各種組件事格。
小結(jié)
如前所述,大多數(shù)數(shù)據(jù)挖掘工具或方案搞隐,都用到了R和Python兩種主要編程語言驹愚,也用到了各種相應(yīng)的包和庫。對(duì)于從事數(shù)據(jù)挖掘的開發(fā)人員或數(shù)據(jù)科學(xué)家來說劣纲,學(xué)習(xí)和了解各種類型的數(shù)據(jù)分析與挖掘工具逢捺,是非常必要的。當(dāng)然味廊,具體如何選擇合適的工具蒸甜,則取決于您當(dāng)前的業(yè)務(wù)或研究目標(biāo)棠耕。