在維基百科中對數據挖掘的解釋是:數據挖掘(英語(yǔ):data mining)是一個(gè)跨*的計算機科學(xué)分支 它是用人工智能、機器學(xué)習、統計學(xué)和數據庫的交叉方法在相對較大型的數據集中發(fā)現模式的計算過(guò)程。數據挖掘過(guò)程的總體目標是從一個(gè)數據集中提取信息,并將其轉換成可理解的結構,以進(jìn)一步使用。以下是小編為你整理的大數據實(shí)戰學(xué)習教程 ?
分類(lèi)。分類(lèi)是找出數據庫中一組數據對象的共同特點(diǎn)并按照分類(lèi)模式將其劃分為不同的類(lèi),其目的是通過(guò)分類(lèi)模型,將數據庫中的數據項映射到某個(gè)給定的類(lèi)別。 ?
回歸分析?;貧w分析方法反映的是事務(wù)數據庫中屬性值在時(shí)間上的特征,產(chǎn)生一個(gè)將數據項映射到一個(gè)實(shí)值預測變量的函數,發(fā)現變量或屬性間的依賴(lài)關(guān)系,其主要研究問(wèn)題包括數據序列的趨勢特征、數據序列的預測以及數據間的相關(guān)關(guān)系等。
聚類(lèi)。聚類(lèi)分析是把一組數據按照相似性和差異性分為幾個(gè)類(lèi)別,其目的是使得屬于同一類(lèi)別的數據間的相似性盡可能大,不同類(lèi)別中的數據間的相似性盡可能小。 ?
關(guān)聯(lián)規則。關(guān)聯(lián)規則是描述數據庫中數據項之間所存在的關(guān)系的規則,即根據一個(gè)事務(wù)中某些項的出現可導出另一些項在同一事務(wù)中也出現,即隱藏在數據間的關(guān)聯(lián)或相互關(guān)系。 ?
導入/預處理 ?
雖然采集端本身會(huì )有很多數據庫,但是如果要對這些海量數據進(jìn)行有效的分析,還是應該將這些來(lái)自前端的數據導入到一個(gè)集中的大型分布式數據庫,或者分布式存儲集群,并且可以在導入基礎上做一些簡(jiǎn)單的清洗和預處理工作。也有一些用戶(hù)會(huì )在導入時(shí)使用來(lái)自Twitter的Storm來(lái)對數據進(jìn)行流式計算,來(lái)滿(mǎn)足部分業(yè)務(wù)的實(shí)時(shí)計算需求。導入與預處理過(guò)程的特點(diǎn)和挑戰主要是導入的數據量大,每秒鐘的導入量經(jīng)常會(huì )達到百兆,甚至千兆級別。 ?
挖掘 ?
與前面統計和分析過(guò)程不同的是,數據挖掘一般沒(méi)有什么預先設定好的主題,主要是在現有數據上面進(jìn)行基于各種算法的計算,從而起到預測的效果,從而實(shí)現一些高級別數據分析的需求。比較典型算法有用于聚類(lèi)的K-Means、用于統計學(xué)習的SVM和用于分類(lèi)的Naive Bayes,主要使用的工具有HadoopMahout等。該過(guò)程的特點(diǎn)和挑戰主要是用于挖掘的算法很復雜,并且計算涉及的數據量和計算量都很大,還有,常用數據挖掘算法都以單線(xiàn)程為主。 ?
Hadoop和Hive ?
一群基于Java的工具被開(kāi)發(fā)出來(lái)以滿(mǎn)足數據處理的巨大需求。Hadoop作為*的基于Java的框架用于批處理數據已經(jīng)點(diǎn)燃了大家的熱情。Hadoop比其他一些處理工具慢,但它出奇的準確,因此被廣泛用于后端分析。它和Hive——一個(gè)基于查詢(xún)并且運行在頂部的框架可以很好地結對工作。 ?
Scala ?
Scala是另一種基于Java的語(yǔ)言,并且和Java相同的是,它正日益成為大規模機器學(xué)習,或構建高層次算法的工具。它富有表現力,并且還能夠構建健壯的系統。 ?
“Java就像是建造時(shí)的鋼鐵,而Scala則像黏土,因為你之后可以將之放入窯內轉變成鋼鐵,”Driscoll說(shuō)。
?
Kafka和Storm ?
那么,當你需要快速實(shí)時(shí)的分析時(shí)又該怎么辦呢?Kafka會(huì )成為你的好朋友。它大概5年前就已經(jīng)出現了,但是直到最近才成為流處理的流行框架。 ?
Kafka,誕生于LinkedIn內部,是一個(gè)超快速的查詢(xún)消息系統。Kafka的缺點(diǎn)?好吧,它太快了。在實(shí)時(shí)操作時(shí)會(huì )導致自身出錯,并且偶爾地會(huì )遺漏東西。 ?
“有精度和速度之間有一個(gè)權衡,”Driscoll說(shuō), “因此,硅谷所有的大型高科技公司都會(huì )使用兩條管道:Kafka或Storm用于實(shí)時(shí)處理,然后Hadoop用于批處理系統,此時(shí)雖然是緩慢的但超級準確?!? ?
Storm是用Scala編寫(xiě)的另一個(gè)框架,它在硅谷中因為流處理而受到了大量的青睞。它被Twitter納入其中,勿庸置疑的,這樣一來(lái),Twitter就能在快速事件處理中得到巨大的裨益。 ?
大數據系統應包含的功能模塊
大數據系統應該包含的功能模塊,首先是能夠從多種數據源獲取數據的功能,數據的預處理(例如,清洗,驗證等),存儲數據,數據處理、數據分析等(例如做預測分析,生成在線(xiàn)使用建議等等),*呈現和可視化的總結、匯總結果。
下圖描述了大數據系統的這些高層次的組件:
本節的其余部分簡(jiǎn)要說(shuō)明了每個(gè)組分 ?
2.1 各種各樣的數據源
當今的IT生態(tài)系統,需要對各種不同種類(lèi)來(lái)源的數據進(jìn)行分析。這些來(lái)源可能是從在線(xiàn)Web應用程序,批量上傳或feed,流媒體直播數據,來(lái)自工業(yè)、手持、家居傳感的任何東西等等。
顯然從不同數據源獲取的數據具有不同的格式、使用不同的協(xié)議。例如,在線(xiàn)的Web應用程序可能會(huì )使用SOAP / XML格式通過(guò)HTTP發(fā)送數據,feed可能會(huì )來(lái)自于CSV文件,其他設備則可能使用MQTT通信協(xié)議。
由于這些單獨的系統的性能是不在大數據系統的控制范圍之內,并且通常這些系統都是外部應用程序,由第三方供應商或團隊提供并維護,所以本文將不會(huì )在深入到這些系統的性能分析中去。 ?
2.2 數據采集
*步,獲取數據。這個(gè)過(guò)程包括分析,驗證,清洗,轉換,去重,然后存到適合你們公司的一個(gè)持久化設備中(硬盤(pán)、存儲、云等)。
在下面的章節中,本文將重點(diǎn)介紹一些關(guān)于如何獲取數據方面的非常重要的技巧。請注意,本文將不討論各種數據采集技術(shù)的優(yōu)缺點(diǎn)。 ?
2.3 存儲數據
第二步,一旦數據進(jìn)入大數據系統,清洗,并轉化為所需格式時(shí),這些過(guò)程都將在數據存儲到一個(gè)合適的持久化層中進(jìn)行。
在下面的章節中,本文將介紹一些存儲方面的*實(shí)踐(包括邏輯上和物理上)。在本文結尾也會(huì )討論一部分涉及數據安全方面的問(wèn)題。 ?
2.4 數據處理和分析
第三步,在這一階段中的一部分干凈數據是去規范化的,包括對一些相關(guān)的數據集的數據進(jìn)行一些排序,在規定的時(shí)間間隔內進(jìn)行數據結果歸集,執行機器學(xué)習算法,預測分析等。
在下面的章節中,本文將針對大數據系統性能優(yōu)化介紹一些進(jìn)行數據處理和分析的*實(shí)踐。 ?
2.5 數據的可視化和數據展示
*一個(gè)步驟,展示經(jīng)過(guò)各個(gè)不同分析算法處理過(guò)的數據結果。該步驟包括從預先計算匯總的結果(或其他類(lèi)似數據集)中的讀取和用一種友好界面或者表格(圖表等等)的形式展示出來(lái)。這樣便于對于數據分析結果的理解。