版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
項目六數(shù)據(jù)分析與可視化大數(shù)據(jù)技術(shù)導(dǎo)論本項目學(xué)習(xí)內(nèi)容包括:1.大數(shù)據(jù)分析概念和方法2.Python大數(shù)據(jù)分析環(huán)境搭建3.常見的數(shù)據(jù)可視化工具4.利用PySpark數(shù)據(jù)的分析5.利用Python數(shù)據(jù)可視化庫matplotlib和seaborn實現(xiàn)分析結(jié)果可視化展現(xiàn)本項目學(xué)習(xí)主要內(nèi)容本項目思維導(dǎo)圖
數(shù)據(jù)分析是指用統(tǒng)計分析方法和工具對收集來的數(shù)據(jù)進(jìn)行分析,從中提取有用信息,從而形成分析結(jié)論的過程。傳統(tǒng)的數(shù)據(jù)分析大多基于聯(lián)機(jī)分析處理技術(shù)(OLAP),分析的數(shù)據(jù)是結(jié)構(gòu)化的關(guān)系數(shù)據(jù),數(shù)據(jù)結(jié)構(gòu)清晰一致,數(shù)據(jù)量一般不大,利用單一機(jī)器即可進(jìn)行數(shù)據(jù)分析工作,在數(shù)據(jù)分析中會伴隨著數(shù)據(jù)挖掘以及機(jī)器學(xué)習(xí)相關(guān)算法的使用,這些算法大多基于統(tǒng)計學(xué)理論的抽樣分析和假設(shè)檢驗。而在大數(shù)據(jù)時代,數(shù)據(jù)分析的數(shù)據(jù)量更大、難度更高、過程更復(fù)雜、應(yīng)用場景更多。數(shù)據(jù)分析被賦予了新的含義,我們稱之為大數(shù)據(jù)分析。
大數(shù)據(jù)分析是指在可承受的時間范圍內(nèi)無法用常規(guī)軟件工具對數(shù)據(jù)集進(jìn)行分析處理,必須在數(shù)據(jù)分析過程中引入大數(shù)據(jù)相關(guān)技術(shù)來幫助完成數(shù)據(jù)分析處理任務(wù)。大數(shù)據(jù)分析與傳統(tǒng)數(shù)據(jù)分析最本質(zhì)的區(qū)別在于數(shù)據(jù)規(guī)模不同,大數(shù)據(jù)分析是基于海量數(shù)據(jù),數(shù)據(jù)量遠(yuǎn)遠(yuǎn)大于傳統(tǒng)數(shù)據(jù)分析,利用單臺機(jī)器無法完成分析任務(wù),數(shù)據(jù)分析的應(yīng)用場景也更復(fù)雜。CDA數(shù)據(jù)分析師人才能力標(biāo)準(zhǔn)中從理論基礎(chǔ)、軟件工具、分析方法、業(yè)務(wù)分析、可視化五個方面對數(shù)據(jù)分析師與大數(shù)據(jù)分析師進(jìn)行了定義。任務(wù)6-1初識大數(shù)據(jù)分析6.1.1數(shù)據(jù)分析簡介任務(wù)6-1初識大數(shù)據(jù)分析CDA傳統(tǒng)數(shù)據(jù)分析師VS大數(shù)據(jù)分析師人才標(biāo)準(zhǔn)崗位要求傳統(tǒng)數(shù)據(jù)分析師大數(shù)據(jù)分析師工作職責(zé)負(fù)責(zé)日常的需求調(diào)研、數(shù)據(jù)分析、商業(yè)分析。根據(jù)業(yè)務(wù)需求,制定相關(guān)數(shù)據(jù)的采集策略,設(shè)計、建立、測試相關(guān)的數(shù)據(jù)模型,從而從數(shù)據(jù)中提取決策價值撰寫特定分析需求的報告。研究數(shù)據(jù)挖掘模型,參與數(shù)據(jù)挖掘模型的構(gòu)建、維護(hù)、部署和評估工作。參與大數(shù)據(jù)平臺的設(shè)計與開發(fā),解決海量數(shù)據(jù)面臨的挑戰(zhàn)。精通Java編程,能基于Hadoop/Hive/Spark/Storm/HBase等構(gòu)建公司的大數(shù)據(jù)分析平臺。管理、優(yōu)化并維護(hù)Hadoop、Spark等集群,保證集群規(guī)模持續(xù)、穩(wěn)定。負(fù)責(zé)HDFS/Hive/HBase的功能、性能和擴(kuò)展,解決并實現(xiàn)業(yè)務(wù)需求。專業(yè)背景數(shù)學(xué)、統(tǒng)計學(xué)、計算機(jī)、經(jīng)濟(jì)學(xué)計算機(jī)、數(shù)學(xué)、統(tǒng)計學(xué)基礎(chǔ)理論統(tǒng)計學(xué)、概率論和數(shù)理統(tǒng)計、多元統(tǒng)計分析、時間序列、數(shù)據(jù)挖掘。統(tǒng)計學(xué)、概率論和數(shù)據(jù)庫、數(shù)據(jù)挖掘、JAVA基礎(chǔ)、Linux基礎(chǔ)。掌握工具必要:Excel、SQL可選:SPSSMODELER、R、Python、SAS等必要:SQL、Hadoop、HDFS、Mapreduce、Mahout、Hive、Spark可選:RHadoop、Hbase、ZooKeeper等分析方法除掌握基本數(shù)據(jù)處理及分析方法以外,還應(yīng)掌握高級數(shù)據(jù)分析及數(shù)據(jù)挖掘方法(多元線性回歸法,貝葉斯,神經(jīng)網(wǎng)絡(luò),決策樹,聚類分析法,關(guān)聯(lián)規(guī)則,時間序列,支持向量機(jī),集成學(xué)習(xí)等)和可視化技術(shù)。熟練掌握Hadoop集群搭建;熟悉NoSQL數(shù)據(jù)庫的原理及特征,并會運(yùn)用在相關(guān)的場景;熟練運(yùn)用Mahout、Spark提供的進(jìn)行大數(shù)據(jù)分析的數(shù)據(jù)挖掘算法,包括聚類(Kmeans算法、Canopy算法)、分類(貝葉斯算法、隨機(jī)森林算法)、主題推薦(基于物品的推薦、基于用戶的推薦)等算法的原理和使用范圍。任務(wù)6-1初識大數(shù)據(jù)分析業(yè)務(wù)分析可以將業(yè)務(wù)目標(biāo)轉(zhuǎn)化為數(shù)據(jù)分析目標(biāo);熟悉常用算法和數(shù)據(jù)結(jié)構(gòu),熟悉企業(yè)數(shù)據(jù)庫構(gòu)架建設(shè);針對不同分析主體,可以熟練的進(jìn)行維度分析,能夠從海量數(shù)據(jù)中搜集并提取信息;通過相關(guān)數(shù)據(jù)分析方法,結(jié)合一個或多個數(shù)據(jù)分析軟件完成對海量數(shù)據(jù)的處理和分析。熟悉Hadoop+Hive+Spark進(jìn)行大數(shù)據(jù)分析的架構(gòu)設(shè)計,并能針對不同的業(yè)務(wù)提出大數(shù)據(jù)架構(gòu)的解決思路。掌握Hadoop+Hive+Spark+Tableau平臺上SparkMLlib、SparkSQL的功能與應(yīng)用場景,根據(jù)不同的數(shù)據(jù)業(yè)務(wù)需求選擇合適的組件進(jìn)行分析與處理。并對基于Spark框架提出的模型進(jìn)行對比分析與完善。分析報告報告體現(xiàn)數(shù)據(jù)挖掘的整體流程,層層闡述信息的收集、模型的構(gòu)建、結(jié)果的驗證和解讀,對行業(yè)進(jìn)行評估,優(yōu)化和決策。報告能體現(xiàn)大數(shù)據(jù)分析的優(yōu)勢,能清楚地闡述數(shù)據(jù)采集、大數(shù)據(jù)處理過程及最終結(jié)果的解讀,同時提出模型的優(yōu)化和改進(jìn)之處,以利于提升大數(shù)據(jù)分析的商業(yè)價值。
從表中,我們看到大數(shù)據(jù)分析師和傳統(tǒng)數(shù)據(jù)分析師存在很大的不同,完全是兩個不同的崗位。那么,是什么造成了二者之間這么大的差別呢?1.大量非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)的產(chǎn)生
傳統(tǒng)的數(shù)據(jù)分析中,大多基于結(jié)構(gòu)化數(shù)據(jù)分析,原始數(shù)據(jù)經(jīng)過數(shù)據(jù)清洗ETL(抽取、轉(zhuǎn)換、加載)操作,進(jìn)入數(shù)據(jù)倉庫或關(guān)系數(shù)據(jù)庫存儲,數(shù)據(jù)完整度較高、結(jié)構(gòu)簡單、易于理解。數(shù)據(jù)分析是基于關(guān)系數(shù)據(jù)模型之上,主題之間的關(guān)系在系統(tǒng)內(nèi)就已經(jīng)建立,數(shù)據(jù)分析難度低。而在大數(shù)據(jù)時代,產(chǎn)生了大量大量非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)。數(shù)據(jù)的結(jié)構(gòu)并不一致,不能存儲在關(guān)系數(shù)據(jù)庫中,必須存在NoSQL數(shù)據(jù)庫。數(shù)據(jù)的完整度也不高,即使經(jīng)過數(shù)據(jù)清洗也并不能保證沒有錯誤數(shù)據(jù),由于數(shù)據(jù)結(jié)構(gòu)不一致,數(shù)據(jù)理解的難度大,很難在數(shù)據(jù)之間建立關(guān)系。增加了數(shù)據(jù)分析的困難。因此,需要引入新的數(shù)據(jù)分析思維和數(shù)據(jù)分析方法。任務(wù)6-1初識大數(shù)據(jù)分析2.在線實時數(shù)據(jù)分析的需求量劇增
傳統(tǒng)數(shù)據(jù)分析大多為離線OLAP批處理數(shù)據(jù)分析,實時性較差。大數(shù)據(jù)分析場景種類較多,既有離線批處理又有特定業(yè)務(wù)場景的在線實時處理,例如智能推薦、實時氣象數(shù)據(jù)分析、實時空氣質(zhì)量分析等。這些需要借助Strom、SparkStreaming等大數(shù)據(jù)實時分析工具進(jìn)行數(shù)據(jù)分析,傳統(tǒng)數(shù)據(jù)分析工具無法完成實時數(shù)據(jù)分析任務(wù)。3.分布式系統(tǒng)架構(gòu)
傳統(tǒng)數(shù)據(jù)分析數(shù)據(jù)量較小,多基于單節(jié)點數(shù)據(jù)分析,數(shù)據(jù)并行分析擴(kuò)展能力較弱,只能通過增加昂貴的硬件提升數(shù)據(jù)分析能力。而大數(shù)據(jù)分析數(shù)據(jù)量巨大,可以通過低廉的硬件組件數(shù)據(jù)分析集群來提升數(shù)據(jù)分析能力,且集群可以動態(tài)擴(kuò)展。因此需要具備相關(guān)技能,比如會使用Hadoop等。任務(wù)6-1初識大數(shù)據(jù)分析4.基于全量數(shù)據(jù)的數(shù)據(jù)分析
傳統(tǒng)數(shù)據(jù)分析多基于概率統(tǒng)計理論的抽樣分析,通過多次抽樣,使得數(shù)據(jù)分析結(jié)果更加精確,但這一結(jié)論成立的條件在于在樣本容量足夠大的情況下,所有樣本的抽取必須滿足獨(dú)立同分布,即抽樣必須完全隨機(jī)。但是,一般情況下抽樣很難滿足隨機(jī)的要求,人為主觀性較強(qiáng),所得結(jié)果一定會存在誤差。而大數(shù)據(jù)分析直接采用全量數(shù)據(jù)來進(jìn)行分析,完全依靠找尋數(shù)據(jù)自身的規(guī)律來得到分析結(jié)果,消除了人為抽樣因素帶入的主觀性影響。任務(wù)6-1初識大數(shù)據(jù)分析本節(jié)主要包括Python相關(guān)軟件的安裝,安裝步驟如下:1.pip3工具的安裝2.NumPy、Scipy和matplotlib包的安裝3.scikit-learn包的安裝詳細(xì)安裝步驟見教材6.1.2小節(jié),這里不做敘述,安裝成功可以正常導(dǎo)入NumPy、Scipy、matplotlib和scikit-learn包,如下圖。任務(wù)6-1初識大數(shù)據(jù)分析6.1.2Python大數(shù)據(jù)分析環(huán)境搭建
下面我們介紹幾種常用的、易于學(xué)習(xí)的大數(shù)據(jù)分析方法。
1.分類算法分類是利用已有類別標(biāo)簽的樣本數(shù)據(jù),訓(xùn)練或者構(gòu)造出一種分類器,該分類器能夠?qū)δ承┪粗獢?shù)據(jù)進(jìn)行預(yù)測分類的過程。分類預(yù)測出的是離散的結(jié)果。由于樣本數(shù)據(jù)已經(jīng)有類別標(biāo)簽,分類算法屬于一種有監(jiān)督的學(xué)習(xí)。分類算法主要應(yīng)用場景為二分類和多分類問題。分類方法的流程如下圖。任務(wù)6-1初識大數(shù)據(jù)分析6.1.3常見的大數(shù)據(jù)分析方法1)數(shù)據(jù)集分割
將原始數(shù)據(jù)集分為訓(xùn)練集和測試集集,一般訓(xùn)練集和測試集比例為5:1。訓(xùn)練集用來訓(xùn)練模型,測試集用來檢驗訓(xùn)練模型的分類準(zhǔn)確度。2)選擇合適的分類模型
機(jī)器學(xué)習(xí)分類模型有很多種,比如線性分類,決策樹分類,支持向量機(jī)分類,貝葉斯分類等。爭對不同特征的數(shù)據(jù)集,每種分類模型的效果都不一樣。我們可以根據(jù)以往的經(jīng)驗,選擇其中的一種或幾種模型。3)訓(xùn)練模型
利用訓(xùn)練集數(shù)據(jù)訓(xùn)練模型。4)測試模型
模型訓(xùn)練好需要進(jìn)行測試,掌握模型的分類準(zhǔn)確度,如果同時訓(xùn)練了幾種模型,可以互相比較,挑選出準(zhǔn)確度最好的模型。5)模型對未知數(shù)據(jù)集應(yīng)用
把模型應(yīng)用在未知數(shù)據(jù)集分類預(yù)測上。任務(wù)6-1初識大數(shù)據(jù)分析
常見的分類算法有很多,例如支持向量機(jī)分類、決策樹分類、貝葉斯分類等。這里我們介紹一種最簡單的分類方法,K近鄰分類法(K-Nearest-NeighborsClassification,KNNC)。KNNC的核心思想就是“鄰近原則”,每個測試樣本的分類由距離它最接近的k個訓(xùn)練樣本的類別決定,如果這k個訓(xùn)練樣本中的大多數(shù)屬于某一個類別,則該測試樣本也屬于這個類別。這個過程有點類似于“少數(shù)服從多數(shù)”。KNNC方法的流程如下。
(1)計算測試點和所有訓(xùn)練樣本的之間的距離,并將距離遞增排序,選取與測試點距離最小的前K個訓(xùn)練樣本點。
(2)根據(jù)前K個訓(xùn)練樣本點的所屬類別,計算出各個類別出現(xiàn)的頻率。
(3)把出現(xiàn)頻率最高的那個類別作為測試點的類別。任務(wù)6-1初識大數(shù)據(jù)分析
舉個列子,下圖有兩類不同顏色的樣本數(shù)據(jù),一類是紅色三角形,一類是藍(lán)色正方形。圖中間的綠色的點就是待分類的測試數(shù)據(jù)。我們在利用KNNC分類時,假設(shè)K=3,那么離綠色點最近的3個樣本數(shù)據(jù)中有兩個是紅色三角形,一個是藍(lán)色正方形。則我們判定綠色點的分類是屬于紅色三角形。如果假設(shè)K=5,那么離綠色點最近的5個樣本數(shù)據(jù)中有3個是藍(lán)色正方形,兩個二是藍(lán)色三角形,那么我們就判定綠色點的分類是藍(lán)色正方形。任務(wù)6-1初識大數(shù)據(jù)分析
從例子中我們可以看出KNNC分類算法的分類效果和3個因素有關(guān)。1)K值得選擇K值選擇3和5,我們分類的結(jié)果就不一樣。如果K值選擇過小,只有與測試數(shù)據(jù)距離非常近的訓(xùn)練樣本數(shù)據(jù)影響測試結(jié)果,容易發(fā)生過擬合,模型泛化能力差。如果K值選擇過大,則與測試數(shù)據(jù)距離非常遠(yuǎn)的訓(xùn)練樣本數(shù)據(jù)也會影響測試結(jié)果,影響預(yù)測的準(zhǔn)確度,模型學(xué)習(xí)能力差。一般通過交叉驗證獲取最優(yōu)K值,即將樣本數(shù)據(jù)按照一定比例(5:1),拆分出訓(xùn)練集和測試集,從選取一個較小的K值開始,不斷增加K的值,然后計算驗證集合的方差,最終找到一個比較合適的K值。2)距離的計算方法KNNC算法通過計算測試數(shù)據(jù)和訓(xùn)樣本之間的距離來作為樣本之間相似性指標(biāo)。距離的計算方法也有很多種,常用的有歐幾里得距離、余弦值,相關(guān)度,曼哈頓距離等。比較常用的是歐式距離和曼哈頓距離。比如二維平面上有兩個點x(x1,x2)和y(y1,y2)。它們的歐式距離為。曼哈頓距離為。3)分類決策KNNC算法中分類決策采用“少數(shù)服從多數(shù)原則”。默認(rèn)情況下每個訓(xùn)練點無論距離測試點多遠(yuǎn),權(quán)重都是一樣的,但是實際分類中,我們有可能會改變分類決策,設(shè)置距離測試點近的訓(xùn)練點權(quán)重大,距離遠(yuǎn)的訓(xùn)練點權(quán)重小。任務(wù)6-1初識大數(shù)據(jù)分析Sklearn實現(xiàn)了兩種不同類型的KNNC分類器KNeighborsClassifier和RadiusNeighborsClassifier。其中,KNeighborsClassifier分類器的近鄰是選取每個測試點距離最近的的K個訓(xùn)練樣本點,K可以人為設(shè)置。RadiusNeighborsClassifier的近鄰是選取每個測試點的固定半徑R內(nèi)的訓(xùn)練樣本點,樣本點數(shù)量K不能人為設(shè)置,只有R可以人為指定。
下面我們實現(xiàn)sklearn的官方案例—鳶尾花分類,分類器使用KNeighborsClassifier。數(shù)據(jù)集使用的是sklearn自帶的鳶尾花數(shù)據(jù)集。鳶尾花數(shù)據(jù)集主要包含了鳶尾花的花萼長度,花萼寬度,花瓣長度,花瓣寬度4個屬性(特征),和3個已經(jīng)打標(biāo)簽的鳶尾花分類(Setosa,Versicolour,Virginica),整個數(shù)據(jù)集共150條數(shù)據(jù)。任務(wù)6-1初識大數(shù)據(jù)分析
下面先介紹一下KNeighborsClassifier的使用步驟。
(1)創(chuàng)建KNeighborsClassifier對象。
(2)調(diào)用KNeighborsClassifier對象的fit()函數(shù)進(jìn)行模型訓(xùn)練。
(3)對訓(xùn)練好的模型調(diào)用predict()函數(shù)進(jìn)行預(yù)測。
通過前面的介紹,我們知道使用KNNC算法K的取值至關(guān)重要。我們首先要選取最優(yōu)K值,這里我們使用機(jī)器學(xué)習(xí)中常用的交叉驗證法。在Ubuntu虛擬機(jī)中home目錄下空白處點擊右鍵,在彈出菜單點擊“新建文件夾”,文件夾命名為code。任務(wù)6-1初識大數(shù)據(jù)分析
在code文件夾下空白處右鍵,在彈出的菜單點擊“新建文檔”,文檔輸入代碼,保存為crossvalscore.py文件。具體代碼見教材6.1.3小節(jié)分類算法。在當(dāng)前目錄空白處右鍵,在彈出的菜單點擊“在終端打開”,進(jìn)入命令行終端,在命令行終端輸入以下命令:python3crossvalscore.py。任務(wù)6-1初識大數(shù)據(jù)分析
運(yùn)行得到下圖所示結(jié)果。任務(wù)6-1初識大數(shù)據(jù)分析
從上圖中,我們可以看出當(dāng)K=12時,誤差最小。所以我們K值取12。下面我們編寫KNNC算法。在code文件夾下空白處右鍵,在彈出的菜單點擊“新建文檔”,輸入代碼,保存為KNeighborsClassifier.py文件。具體代碼見教材6.1.3小節(jié)分類算法。
在當(dāng)前目錄空白處右鍵,在彈出的菜單點擊“在終端打開”,進(jìn)入命令行終端,在命令行終端輸入以下命令:python3KNeighborsClassifier.py,運(yùn)行結(jié)果如下圖。任務(wù)6-1初識大數(shù)據(jù)分析
2.回歸算法
回歸是在已有樣本數(shù)據(jù)的基礎(chǔ)上,訓(xùn)練或者構(gòu)造出一種回歸模型,并利用該回歸模型預(yù)測對未知數(shù)據(jù)真實值進(jìn)行逼近預(yù)測的過程?;貧w是分類算法的拓展應(yīng)用。
回歸與分類的區(qū)別是分類算法輸出的是離散的數(shù)值,而回歸算法輸出的是連續(xù)的數(shù)值。分類是打標(biāo)簽,比如你判斷一個人是好人還是壞人,真實的結(jié)果只有一個,模型預(yù)測輸出結(jié)果要么對要么錯?;貧w是無限逼近真實值,輸出結(jié)果沒有對錯之分。比如房價500萬,你模型預(yù)測輸出499萬和輸出300萬都是對500萬的逼近,只不過逼近的效果不同。舉個例子,預(yù)測明天的氣溫是多少度,這是一個回歸問題,預(yù)測明天是陰、晴還是雨,這就是一個分類問題?;貧w算法訓(xùn)練樣本是有標(biāo)簽的,所以也屬于監(jiān)督學(xué)習(xí)?;貧w算法的執(zhí)行流程和分類算法類似,這里不再敘述?;貧w算法主要應(yīng)用在連續(xù)值預(yù)測,比如房價預(yù)測,經(jīng)濟(jì)預(yù)測,天氣預(yù)測等。任務(wù)6-1初識大數(shù)據(jù)分析
常用的回歸算法有K近鄰回歸算法,決策樹回歸算法,支持向量機(jī)回歸算法,神經(jīng)網(wǎng)絡(luò)等。這里我們介紹K近鄰(K-Nearest-NeighborsRegression,KNNR)回歸算法。KNNR是KNN算法在回歸問題的運(yùn)用。與KNNC分類算法類似,KNNR算法是通過找出某個未知數(shù)據(jù)點的k個最近的鄰近點。并且將這k個最近的鄰近點預(yù)測的平均值作為該未知數(shù)據(jù)點的預(yù)測值。一般來說,在KNNR問題中,不同距離的近鄰點對該未知樣本產(chǎn)生的影響是不一樣的,距離近的點相似性大,影響相對比較大,距離遠(yuǎn)的點相似性小,影響就相對較小。為了提高預(yù)測精度,這里我們會引入一個權(quán)值的概念來計算這k個最近的鄰近點的平均值,比如權(quán)值和距離成反比。Sklearn實現(xiàn)了兩種不同類型的KNN回歸模型KNeighborsRegressor和RadiusNeighborsRegressor。其中,KNeighborsRegressor回歸模型的近鄰是選取每個測試點距離最近的的K個訓(xùn)練樣本點,K可以人為設(shè)定。RadiusNeighborsRegressor的近鄰是選取每個測試點的固定半徑R內(nèi)的訓(xùn)練樣本點,樣本點數(shù)量K不能人為設(shè)置,只有R可以人為指定。任務(wù)6-1初識大數(shù)據(jù)分析
在下面的編程中,我們采用KNeighborsRegressor回歸模型來擬合隨機(jī)數(shù)據(jù)點,建模時增加附近點權(quán)重,這個可以通過設(shè)置KNeighborsRegressor回歸模型的weights屬性來實現(xiàn)。weights屬性默認(rèn)值是uniform(所有點權(quán)重相同),我們配置weights=’distance’,distance意思是增加附近點權(quán)重。
在code文件夾下空白處右鍵,在彈出的菜單點擊“新建文檔”,輸入代碼,保存為KNNR.py文件。具體代碼見6.1.3小節(jié)回歸算法。在當(dāng)前目錄空白處右鍵,在彈出的菜單點擊“在終端打開”,進(jìn)入命令行終端,在命令行終端輸入以下命令:python3KNNR.py。任務(wù)6-1初識大數(shù)據(jù)分析運(yùn)行結(jié)果如下圖所示。任務(wù)6-1初識大數(shù)據(jù)分析3.聚類算法
聚類也叫群分析,聚類也是要確定一個物體的類別,但和分類問題不同的是,這里沒有事先定義好的類別,聚類算法要機(jī)器自己想辦法把一批樣本分開,分成多個類,保證每一個類中的樣本之間是相似的,而不同類的樣本之間是不同的。聚類的數(shù)據(jù)不包含類別標(biāo)簽,事先也不知道有幾個類別,也沒有訓(xùn)練階段。所以聚類也叫做無監(jiān)督分類。在這里,每個類被稱為“簇”(cluster)。
舉個列子,下圖有一堆水果,需要我們自己去分類,我們可能認(rèn)識這些水果,也可能不認(rèn)識,分類時我們也沒有被告知統(tǒng)一的分類標(biāo)準(zhǔn),只能根據(jù)自己判斷對水果進(jìn)行分類。任務(wù)6-1初識大數(shù)據(jù)分析
分類時,有的人按顏色分類,把顏色相似的水果歸為一類。有的人按照形狀分類,把形狀相似的水果歸在了一類。還有人按照尺寸分類,把尺寸大小相似的水果歸在了一類,還有人按照季節(jié)性分類,把同一季節(jié)成熟的水果分為一類。這就是聚類的體現(xiàn),每個人都可以根據(jù)自己定義的規(guī)則,將相似的樣本劃分在一起,不相似的樣本分成不同的類。由于事先大家都不知道能分為幾類,也沒有統(tǒng)一標(biāo)準(zhǔn),所以不存在訓(xùn)練階段。
聚類的過程是“仁者見仁,智者見智”,沒有統(tǒng)一的結(jié)果,聚類的結(jié)果由聚類算法自己確定。例如上述案例中水果至少就有4種分法。再比如數(shù)字序列{1,2,3,4,5,6,7,8,9}讓你去分類,我們最少有2種分類方式,第一種分類是分成{1,3,5,7,9}和{2,4,6,8},劃分依據(jù)為第一個集合數(shù)字都是奇數(shù),第二個集合數(shù)字都是偶數(shù)。第二種分類是分成{1,4,7}{2,5,8}{3,6,9},劃分依據(jù)為集合內(nèi)的數(shù)除以3之后的余數(shù)相同。這兩種類別的劃分都是可以接收的。任務(wù)6-1初識大數(shù)據(jù)分析
聚類算法有很多種,比如K均值聚類、基于密度的聚類(DBSCAN)等。其中,最典型聚類算法就是K均值聚類。K均值聚類(K-meansClustering)算法是一種迭代求解的聚類算法。它的目的是通過不斷的迭代找到每個樣本潛在的類別,把具有相似性的樣本聚合在一起形成“簇”,它的標(biāo)準(zhǔn)就是要求每個簇內(nèi)各個樣本點數(shù)據(jù)距離盡可能小,簇間距離盡可能大。具體聚合成多少個簇,由我們?nèi)藶橹付↘值決定。K均值聚類算法的流程如下。(1)首先我們確定樣本數(shù)據(jù)要聚合成幾個簇,對K賦值。隨機(jī)選取k個初始中心點。(2)計算每個數(shù)據(jù)點到中心點的距離,數(shù)據(jù)點距離哪個中心點最近就劃分到哪一類中,劃分完畢后k個點群。(3)計算每個點群的中心點位置,移動K個中心點到所屬的點群中心位置。(4)重復(fù)以上步驟,直到每一類中心在每次迭代后變化不大或者不再移動為止。任務(wù)6-1初識大數(shù)據(jù)分析
下面我們結(jié)合下圖來說明K均值聚類算法的步驟。任務(wù)6-1初識大數(shù)據(jù)分析
聚類步驟如下。
(1)加載原始數(shù)據(jù),所有數(shù)據(jù)點沒有顏色,如上圖1。
(2)然后設(shè)定要聚合簇的數(shù)量K,這里設(shè)置為3,然后隨機(jī)選取3個初始中心點(的紅、綠、藍(lán))。
(3)計算所有點到這3個中心點的距離,每個數(shù)據(jù)點歸類到最近距離的那個中心點所屬類別下并涂上相應(yīng)的顏色,如上圖2。
(4)在第三步完成之后,重新計算每個類別的中心點位置,并將3個初始中心點分別移動到所屬類別新的中心點位置上,完成第一次迭代,如上圖3。
(5)重復(fù)3-4步驟,完成后續(xù)的迭代步驟,如上圖4和5。
(6)直到和上一次迭代比較中心點位置不在移動或移動距離非常小,則可以結(jié)束迭代。如上圖5和6,兩個圖之間中心點位置已經(jīng)非常接近。
由于K均值算法的中心點數(shù)量和位置都是隨機(jī)選取的,如何合理的確定K值和K個初始類簇中心點對于聚類效果的好壞有很大的影響。目前已有對應(yīng)策略解決這個問題。任務(wù)6-1初識大數(shù)據(jù)分析
我們使用Sklearn中的聚類算法對鳶尾花數(shù)據(jù)集進(jìn)行聚類。在code文件夾下空白處右鍵,在彈出的菜單點擊“新建文檔”,輸入代碼,保存為KMeans.py。具體代碼見6.1.3節(jié)聚類分析·。在當(dāng)前目錄空白處右鍵,在彈出的菜單點擊“在終端打開”,進(jìn)入命令行終端,在命令行終端輸入以下命令:python3KMeans.py。運(yùn)行結(jié)果如下圖所示(左圖為sepal長度原數(shù)據(jù),右圖為sepal長度預(yù)測值)。任務(wù)6-1初識大數(shù)據(jù)分析
數(shù)據(jù)可視化就是利用表格、圖片、立體建模、動畫等圖形化界面展現(xiàn)數(shù)據(jù)的規(guī)律、性質(zhì)和特點。數(shù)據(jù)可視化使得我們展示的海量數(shù)據(jù)信息更加直觀、形象和易于理解。良好的可視化效果能夠增加人機(jī)交互的體驗,起到事半功倍的作用。數(shù)據(jù)可視化常常和數(shù)據(jù)分析相結(jié)合,數(shù)據(jù)分析的結(jié)果僅僅以文字和表格的形式呈現(xiàn),有時候不夠直觀,難以理解。這時候需要用一些數(shù)據(jù)可視化的手段去進(jìn)一步展現(xiàn)數(shù)據(jù)分析結(jié)果,把文字變成圖片、圖像,這樣才能更好展現(xiàn)我們傳遞給外界的信息。傳統(tǒng)的數(shù)據(jù)可視化方法有多種,從最簡單的數(shù)字表格法,到各種圖表(柱狀體、折線圖、餅圖、圓環(huán)圖、雷達(dá)圖、氣泡圖等),這些圖表大多為靜態(tài)圖表。大數(shù)據(jù)的可視化是以傳統(tǒng)數(shù)據(jù)可視化技術(shù)為基礎(chǔ),對于結(jié)構(gòu)化數(shù)據(jù),可以采用傳統(tǒng)數(shù)據(jù)可視化方式展現(xiàn)(比如表格、圖表等),對于非結(jié)構(gòu)化數(shù)據(jù)和半結(jié)構(gòu)化數(shù)據(jù)的展現(xiàn)則根據(jù)業(yè)務(wù)需求定制一些個性化圖表(地理空間圖、社會網(wǎng)絡(luò)關(guān)系圖等)來展現(xiàn),對于一些實時數(shù)據(jù)分析結(jié)果,則采用實時動態(tài)圖表展現(xiàn),數(shù)據(jù)展現(xiàn)形式更加更豐富多樣。任務(wù)6-2初識大數(shù)據(jù)可視化6.2.1大數(shù)據(jù)可視化概念
下面以一個典型案例介紹大數(shù)據(jù)可視化的具體內(nèi)容。
項目背景:某證券公司隨著用戶量的不斷增大,公司的業(yè)務(wù)人員沒有一種有效的方法去了解自己的客戶。在進(jìn)行金融理財產(chǎn)品、工具類行情產(chǎn)品營銷活動中無法快速定位合適的客戶,傳統(tǒng)的營銷模式是基于營銷人員經(jīng)驗進(jìn)行人群查找,準(zhǔn)確率不高,而且又很慢。導(dǎo)致營銷人員花費(fèi)大量的精力去給那些并不適合的客戶推銷產(chǎn)品,而真正需要的客戶并沒有被及時的發(fā)現(xiàn)。
為了解決這個痛點,該證券公司利用大數(shù)據(jù)相關(guān)技術(shù)處理和分析,利用大數(shù)據(jù)可視化手段把客戶特征展現(xiàn)出來。構(gòu)建了基于客戶的《用戶地圖》體系。主要包含5個模塊。任務(wù)6-2初識大數(shù)據(jù)可視化6.2.1大數(shù)據(jù)可視化概念1.用戶分群模塊
在用戶分群模塊中,管理員用戶根據(jù)體系中的維度對用戶群進(jìn)行任意的分割,例如可以根據(jù)用戶年齡、性別或者資產(chǎn)、交易以及產(chǎn)品購買情況等。并通過用戶洞察的功能,查看分割好的用戶群體的各維度情況。比如選擇了購買固收類產(chǎn)品的用戶群體1000人,那么可以查看該群體從基本屬性到交易風(fēng)格等各個場景的指標(biāo)情況。任務(wù)6-2初識大數(shù)據(jù)可視化2.用戶洞察模塊
在用戶洞察模塊中,針對運(yùn)營人員篩選好的客戶群進(jìn)行了大數(shù)據(jù)可視化展示。展示內(nèi)容包括用戶群的整體評分、貢獻(xiàn)情況以及預(yù)測的產(chǎn)品銷售轉(zhuǎn)化率等,幫助營銷人員判斷自己篩選的客戶群是否符合業(yè)務(wù)標(biāo)準(zhǔn)。同時提供相似客戶群的信息展示,幫助運(yùn)營人員找到更多目標(biāo)客戶。比如我們發(fā)現(xiàn)購買A產(chǎn)品的用戶分別和購買B產(chǎn)品的用戶、看C類資訊的用戶特征相似度較高,就可以將A產(chǎn)品的介紹和購買入口添加到B產(chǎn)品的購買流程和C類資訊詳情頁中,從而提升A產(chǎn)品的訪問和購買量。任務(wù)6-2初識大數(shù)據(jù)可視化3.用戶畫像模塊
在用戶畫像模塊中,對用戶的各個維度進(jìn)行展示,包括用戶的渠道、活躍程度、資產(chǎn)情況以及貢獻(xiàn)偏好等。可以讓營銷人員實時去觀察客戶群的情況,及時做出相關(guān)決策調(diào)整。任務(wù)6-2初識大數(shù)據(jù)可視化4.業(yè)務(wù)線管理模塊
在業(yè)務(wù)線管理模塊中,根據(jù)部門業(yè)務(wù)線的劃分來展示各個業(yè)務(wù)條線的情況,可以讓各業(yè)務(wù)線的人員更加針對性的查看自己業(yè)務(wù)方面的實時情況,及時做出業(yè)務(wù)調(diào)整,提高業(yè)務(wù)的響應(yīng)度。任務(wù)6-2初識大數(shù)據(jù)可視化5.用戶生命周期管理模塊
在用戶生命周期管理模塊中,從生命周期的角度展示了新手期、成長期、成熟期、衰退期等的客戶分布情況。便于分析用戶的特征情況,發(fā)掘每個階段客戶的異動情況,及時做出相應(yīng)的營銷策略調(diào)整。任務(wù)6-2初識大數(shù)據(jù)可視化
目前,主流的大數(shù)據(jù)可視化工具非常多,有開源的也有收費(fèi)的,有需要編程的也有完全圖形化操作的,這里介紹幾種主要的大數(shù)據(jù)可視化工具。1.TableauTableau是一款企業(yè)級的大數(shù)據(jù)可視化工具。Tableau可以讓你在不編程的形況下輕松創(chuàng)建圖形,表格和地圖。Tableau為大數(shù)據(jù)、機(jī)器學(xué)習(xí)領(lǐng)域內(nèi)的多種應(yīng)用場景提供便捷的交互式數(shù)據(jù)可視化方案。Tableau還可以與AmazonAWS,MySQL,Hadoop,Teradata和SAP協(xié)作,使之成為一個能夠創(chuàng)建詳細(xì)圖形和展示直觀數(shù)據(jù)的多功能工具。Tableau官網(wǎng)為:/。任務(wù)6-2初識大數(shù)據(jù)可視化6.2.2常用的數(shù)據(jù)可視化工具2.Echarts
瀏覽器是一種大數(shù)據(jù)可視化的重要方式,許多主流大數(shù)據(jù)可視化工具都是基于瀏覽器顯示,必須要用到JavaScript這種前端編程語言。Echarts是百度提供的一款基于JavaScript開源庫,目前已貢獻(xiàn)Apache基金會。Echarts最廣泛的應(yīng)用就是在瀏覽器上,例如一些百度大數(shù)據(jù)可視化產(chǎn)品,包括百度遷徙、百度司南、百度大數(shù)據(jù)預(yù)測等,這些產(chǎn)品的數(shù)據(jù)可視化均是通過Echarts來實現(xiàn)的。Echarts的官方網(wǎng)站為:/zh/index.html。任務(wù)6-2初識大數(shù)據(jù)可視化3.D3.jsD3.js是最好的開源數(shù)據(jù)可視化工具庫。D3.js運(yùn)行在JavaScript上,并使用HTML,CSS和SVG。D3.js使用數(shù)據(jù)驅(qū)動的方式創(chuàng)建漂亮的網(wǎng)頁,網(wǎng)頁可實現(xiàn)實時交互。D3.js的官網(wǎng)為:/。任務(wù)6-2初識大數(shù)據(jù)可視化4.GoogleChartsGoogle公司是大數(shù)據(jù)的引領(lǐng)者。在大數(shù)據(jù)可視化方面自然也有自己的一套解決方案。GoogleCharts以HTML5和SVG為基礎(chǔ),充分考慮了跨瀏覽器的兼容性,所創(chuàng)建的所有圖表是交互式的。GoogleCharts擁有一個非常全面的模板庫,你可以從中找到所需模板。GoogleCharts的官網(wǎng)為:/chart。任務(wù)6-2初識大數(shù)據(jù)可視化5.HighchartsHighcharts是一個JavaScriptAPI與jQuery的集成,全球最大的100家公司中有61家正在使用它。Highcharts的大部分服務(wù)都已開源。Highcharts圖表使用SVG格式,支持舊版瀏覽器。Highcharts的官網(wǎng)為:/。任務(wù)6-2初識大數(shù)據(jù)可視化6.SigmaJSSigmaJS是交互式可視化工具庫。由于使用了WebGL技術(shù),你可以使用鼠標(biāo)和觸摸的方式來更新和變換圖表。SigmaJS同時支持JSON和GEXF兩種數(shù)據(jù)格式。這為它提供了大量的可用互動式插件。SigmaJS專注于網(wǎng)頁格式的網(wǎng)絡(luò)圖可視化。因此它在大數(shù)據(jù)關(guān)聯(lián)分析可視化中非常有用。SigmaJS官網(wǎng)為:/。與此同時,還有一部分編程語言也提供了非常豐富的數(shù)據(jù)可視化插件庫給我們使用,例如Python、R語言等。任務(wù)6-2初識大數(shù)據(jù)可視化6.SigmaJSSigmaJS是交互式可視化工具庫。由于使用了WebGL技術(shù),你可以使用鼠標(biāo)和觸摸的方式來更新和變換圖表。SigmaJS同時支持JSON和GEXF兩種數(shù)據(jù)格式。這為它提供了大量的可用互動式插件。SigmaJS專注于網(wǎng)頁格式的網(wǎng)絡(luò)圖可視化。因此它在大數(shù)據(jù)關(guān)聯(lián)分析可視化中非常有用。SigmaJS官網(wǎng)為:/。
與此同時,還有一部分編程語言也提供了非常豐富的數(shù)據(jù)可視化插件庫給我們使用,例如Python、R語言等。Spark利用PySpark庫支持用Python編程語言編程實現(xiàn)Spark應(yīng)用程序。使用PySpark需要先進(jìn)行一些簡單的配置。下面介紹具體的配置步驟。
(1)新打開一個命令行終端,輸入命令:gedit~/.bashrc,進(jìn)行環(huán)境變量配置界面配置環(huán)境變量。
(2)進(jìn)入環(huán)境變量配置界面,輸入以下內(nèi)容,保存并關(guān)閉。exportPYSPARK_PYTHON=python3exportPYTHONPATH=/usr/local/spark/spark-2.1.0-bin-without-hadoop/python:/usr/local/spark/spark-2.1.0-bin-without-hadoop//python/lib/py4j-0.10.4-src.zip:$PYTHONPATH
其中,PYSPARK_PYTHON是配置Python的版本為python3.x,PYTHONPATH是配置在Python3中引入PySpark庫。任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程6.3.1配置和使用PySpark
(3)輸入命令:source~/.bashrc,使配置生效。
(4)下面我們試著運(yùn)行一下,看看PySpark是否能正常運(yùn)行,輸入命令:cd/usr/local/spark/spark-2.1.0-bin-without-hadoop/,進(jìn)入Spark安裝目錄,然后輸入命令:bin/pyspark,進(jìn)入PySparkshell解釋器界面,。在PySpark解釋器界面中,我們可以直接編寫Python代碼。比如輸入:1+2*5,會直接返回結(jié)果11,退出PySpark解釋器使用exit()命令。任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程
下面演示如何利用Python編寫Spark應(yīng)用程序并提交集群運(yùn)行。
(1)這里我們首先啟動HBase,保證HBase數(shù)據(jù)庫開啟,如果已經(jīng)開啟HBase數(shù)據(jù)庫,可以跳過此步驟。啟動HBase前需要先啟動HDFS。輸入命令:cd/usr/local/hadoop/hadoop-2.7.1,進(jìn)入hadoop安裝目錄,再輸入命令:./sbin/start-dfs.sh,啟動HDFS。
(2)啟動HBase。輸入命令:cd/usr/local/hbase/hbase-1.1.5,進(jìn)入HBase安裝目錄,再輸入命令:bin/start-hbase.sh。任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程6.3.2Python編寫Spark應(yīng)用程序并提交集群運(yùn)行(3)在/home/person目錄下新建文件夾命令為code,在code文件夾下新建readhbase.py文件(可以新建一個readhbase.txt文件再把后綴改成.py)。在文件中輸入代碼并保存。具體代碼見教材6.3.2小節(jié)第三步。任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程(4)在code目錄下,右鍵空白處,在彈出的菜單中,點擊在終端打開,打開一個新的命令行終端。
(5)安裝Python畫圖工具庫seaborn,由于之前已經(jīng)安裝了matplotlib庫,這里不再安裝。在新的命令行終端,輸入命令:sudopip3installseaborn,安裝seaborn庫。任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程
(7)利用PySpark讀取HBase數(shù)據(jù)庫還需要進(jìn)行一些相關(guān)配置,我們在項目五的基礎(chǔ)上做進(jìn)一步修改。輸入命令:cd/usr/local/spark/spark-2.1.0-bin-without-hadoop/conf,
進(jìn)入spark配置目錄,再輸入命令:geditspark-env.sh,進(jìn)入spark-env.sh配置界面。
修改第一行SPARK_DIST_CLASSPATH內(nèi)容,在原來配置基礎(chǔ)上繼續(xù)輸入::$(/usr/local/hbase/hbase-1.1.5/bin/hbaseclasspath):/usr/local/spark/spark-2.1.0-bin-without-hadoop/jars/hbase/*,
修改后SPARK_DIST_CLASSPATH的內(nèi)容如下圖所示,修改完畢保存關(guān)閉文件。任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程任務(wù)6-3房屋數(shù)據(jù)分析可視化案例編程
(8)Spark2.x版本缺
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 民族彈撥樂器制作工操作水平考核試卷含答案
- 花藝環(huán)境設(shè)計師崗后水平考核試卷含答案
- 實驗動物養(yǎng)殖員誠信考核試卷含答案
- 鋁電解綜合工崗前個人防護(hù)考核試卷含答案
- 自行車裝配工崗前進(jìn)階考核試卷含答案
- 2024年延安職業(yè)技術(shù)學(xué)院輔導(dǎo)員招聘考試真題匯編附答案
- 耐火制品加工工安全技能強(qiáng)化考核試卷含答案
- 2024年遼寧醫(yī)藥職業(yè)學(xué)院馬克思主義基本原理概論期末考試題附答案
- 金屬船體制造工沖突解決強(qiáng)化考核試卷含答案
- 2025年《行測》必考題庫帶答案
- GJB3243A-2021電子元器件表面安裝要求
- 湖北省襄陽市樊城區(qū) 2024-2025學(xué)年七年級上學(xué)期期末學(xué)業(yè)質(zhì)量監(jiān)測道德與法治試卷
- 汽車維修數(shù)據(jù)共享平臺構(gòu)建-深度研究
- SCR脫硝催化劑體積及反應(yīng)器尺寸計算表
- 《短暫性腦缺血發(fā)作》課件
- 2025年測繪工作總結(jié)范文
- 公司質(zhì)量管理簡介
- 外墻涂料翻新施工方案安全措施
- 中國武術(shù)段位制考評員考核復(fù)習(xí)題
- GB/T 5578-2024固定式發(fā)電用汽輪機(jī)規(guī)范
- 中建《項目目標(biāo)成本測算操作指南》
評論
0/150
提交評論