




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