機器學習 課件 第5-10章 回歸模型 -項目實戰2:基于Hive 數據倉庫的商品推_第1頁
機器學習 課件 第5-10章 回歸模型 -項目實戰2:基于Hive 數據倉庫的商品推_第2頁
機器學習 課件 第5-10章 回歸模型 -項目實戰2:基于Hive 數據倉庫的商品推_第3頁
機器學習 課件 第5-10章 回歸模型 -項目實戰2:基于Hive 數據倉庫的商品推_第4頁
機器學習 課件 第5-10章 回歸模型 -項目實戰2:基于Hive 數據倉庫的商品推_第5頁
已閱讀5頁,還剩196頁未讀 繼續免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

第5章回歸模型課程學習內容5.1回歸模型的概念5.2回歸模型的算法原理5.3基于Python的回歸建模實例5.4基于Spark的回歸建模實例5.1回歸模型的概念

回歸就是研究一個隨機變量y對另一個變量x或一組變量[x1,x2,…,xn]的相依關系的統計分析方法。回歸模型用數學語言描述為y=f(x1,x2,…,xn)+ξ,其中x1,x2,…,xn是確定性的或可控的因素,f是映射函數,ξ是不確定或不可控的因素。通過擬合大量的數據,求解映射函數f的具體表達式,就是回歸建模的過程。一旦建立回歸模型,就能通過該模型進行數據預測。5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理5.2回歸模型的算法原理5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.2回歸模型的算法原理

5.3基于Python的回歸建模實例

5.3基于Python的回歸建模實例【例5-7】請針對例5-6的分析結果,對線性回歸模型進行改進,并再次對銷售量進行預測。解:在例5-6的summary()方法輸出中,注意到const和x3的P值偏大,而Cond.No.和Warnings[2]說明自變量之間本身就有線性相關關系,所以將其從回歸方程中刪除改進后的代碼如下:5.3基于Python的回歸建模實例5.3基于Python的回歸建模實例

用sklearn中各種回歸函數進行建模,用測試集的rmse和模型評分score來進行性能比較,代碼如下:5.3基于Python的回歸建模實例

5.3基于Python的回歸建模實例

5.3基于Python的回歸建模實例

5.3基于Python的回歸建模實例

5.3基于Python的回歸建模實例

5.3基于Python的回歸建模實例5.4基于Spark的回歸建模實例5.4基于Spark的回歸建模實例5.4基于Spark的回歸建模實例5.4基于Spark的回歸建模實例謝謝觀看第6章關聯模型課程學習內容6.1關聯模型的概念6.2關聯模型的算法原理6.3基于Python的關聯建模實例6.4基于Spark的關聯建模實例6.1關聯模型的概念

數據關聯是指若兩個或多個事物之間存在的某種規律性。比如人們購買了A商品,就很有可能購買B商品。利用這種購物關聯現象,超市可以直接把B商品放在A商品的旁邊,以便增加購買量。6.2關聯模型的算法原理

典型的關聯模型算法有關聯規則算法和協同過濾算法,前者適合于傳統的實體超市購物場景,超市要調整貨架物品擺放位置,使營業額最大。后者則更加適合于新零售和互聯網商品推薦場景,針對特定的用戶推薦特定的商品。6.2.1關聯規則算法

基于關聯規則的算法,是由用戶預先定義最小支持度min_sup和最小置信度min_conf,篩選出支持度大于min_sup和置信度大于min_conf的規則作為強關聯規則。并檢驗提升度是否大于1,若大于1則為有效的強關聯規則。6.2關聯模型的算法原理【例6-1】在表6-1中,設置min_sup=50%,min_conf=70%,找出所有的強關聯規則,并利用強關聯規則布置貨架安排。6.2關聯模型的算法原理6.2關聯模型的算法原理

6.2關聯模型的算法原理6.2關聯模型的算法原理

6.2關聯模型的算法原理6.2關聯模型的算法原理

6.2關聯模型的算法原理

6.2關聯模型的算法原理6.2關聯模型的算法原理6.2關聯模型的算法原理

6.2關聯模型的算法原理

6.3基于Python的關聯建模實例

【例6-5】電子商務消費數據集如表6-2所示,利用基于模型的協同過濾算法,編寫Python代碼,向所有的用戶進行商品推薦。解:(1)寫出購買記錄矩陣RR=[[10110],[10011],[10100],[01011],[11100]](2)假設用戶和商品有3個內在特征,即描述用戶為3行5列的P矩陣,描述物品為3行5列的Q矩陣,用ALS算法求出P和Q的估計值,使得R近似為PTQ,且誤差較小。編寫Python代碼如下:6.3基于Python的關聯建模實例6.3基于Python的關聯建模實例6.3基于Python的關聯建模實例6.3基于Python的關聯建模實例6.4基于Spark的關聯建模實例【例6-6】電影推薦系統。從公開數據集/datasets/movielens/下載用戶評分文件rating.csv。用Spark的MLlib自帶的ALS算法實現向用戶推薦電影和向電影推薦用戶。解:(1)下載數據集,解壓出rating.csv文件,并復制到spark項目目錄。(2)編寫spark代碼,讀取文件。6.4基于Spark的關聯建模實例(3)將數據集劃分為訓練集和測試集。訓練集用來訓練模型,測試集用來判斷模型的準確程度:(4)導入ALS算法模型,并設置參數:6.4基于Spark的關聯建模實例(5)訓練模型,測試模型:(6)對于預測誤差進行評估:6.4基于Spark的關聯建模實例(7)向用戶推薦電影:(8)向電影推薦用戶:6.4基于Spark的關聯建模實例【例6-7】關聯規則分析。根據某超市的顧客消費記錄shopping.csv,利用Spark的FPGrowth算法生成強關聯規則,對貨架布置提出建議。

解:(1)導入數據集,進行初步分析。代碼如下:6.4基于Spark的關聯建模實例(2)調整數據格式,使其能夠適配FPGrowth算法模型。增加代碼如下:6.4基于Spark的關聯建模實例(3)設置參數,訓練模型。增加代碼如下:(4)輸出頻繁項集。增加代碼如下:6.4基于Spark的關聯建模實例

程序輸出了頻度最高的10項,以及包含項目大于二項的頻度最高的10項,但是根據常識來看,購買塑料袋以及各種刷卡消費記錄不能算作正常的商品購買。因此添加額外代碼,剔除這一部分記錄:6.4基于Spark的關聯建模實例(5)生成強關聯規則。增加以下代碼:

在生成的關聯規則表中,antecedent為前項,consequent為后項,confidence為置信度,lift為提升度。表格按照置信度的大小排序,置信度越高越好。提升度lift的值,是置信度confidence除以后項consequent的支持度所得結果,lift越大越有價值。一共獲得了6個強關聯規則,根據這6個規則調整貨架部署。將香滿園特等長粒香米、美汁源果粒橙、哈爾濱聽裝小麥王放置在一起。在臨洺關驢肉香腸禮盒和五百居香腸禮盒附近,放置地方特色禮盒。6.4基于Spark的關聯建模實例謝謝觀看第7章數據降維課程學習內容7.1數據降維的概念7.2數據降維的算法原理7.3基于Python的數據降維實例7.4基于Spark的數據降維實例7.1數據降維的概念

機器學習所面對的數據集大多是以結構化二維表格形式呈現,每一行稱之為一條記錄,每一列稱之為一種屬性。如果從矩陣的角度來看,所處理的數據集就是二維矩陣。如果這個矩陣中充斥了一些多余的、有缺陷的、彼此線性相關的行或列,那么既不利于存儲,也不利于建模和運算。此時需要進行降維處理,把冗余的行或列去掉,這就是數據降維的概念。

數據降維可以分為行降維和列降維。行降維是把矩陣中有缺陷的行去除掉,即滿足下列任一條件的樣本將被刪除:(1)目標字段值缺失的樣本。(2)所有預測屬性字段缺失的樣本。(3)由用戶自定義比例m%,大于等于m%的字段缺失的樣本7.1數據降維的概念

7.1數據降維的概念

列降維是把每一列看成是多維空間中的一個坐標軸,在理想情況下,空間維度應該和坐標軸個數相同。例如3維空間要以3個坐標軸XYZ來描述,并且XYZ坐標軸應該彼此正交。但是實際中這些坐標軸存在相關的情況,具體表現在兩個方面,一是坐標軸個數多,例如3維空間中有4個坐標軸。二是坐標軸彼此沒有正交,即它們的夾角不是90度。此時可以通過降維處理,產生新的坐標系,使坐標軸數量與空間維度吻合,并且彼此正交。

常用的列降維算法有主成分分析、奇異值分解、線性判別分析等,后面的算法分析主要是指列降維算法。7.2數據降維的算法原理7.2.1主成分分析

主成分分析(PCA)是一種經典的、基于線性變換和數理統計的降維方法。對于一個n維的特征變量x=(x1,x2,…xn),通過旋轉坐標系,把x表示在新的坐標系中為y=(y1,y2,…,yn),如果新的坐標系中某些軸包含的信息太少,則可以將其省略,達到了降維的目的。二維變量通過坐標旋轉變成一維變量7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理7.2數據降維的算法原理7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理7.2.3線性判別分析 PCA和SVD都是無監督算法,而線性判別分析(LDA)則是典型的有監督算法。LDA的效果要優于PCA,但是LDA需要額外的分類目標字段,主要是面向分類問題,所以適用范圍較小。

LDA算法的思想是:既然需要解決分類問題,那么降維以后的分類效果一定要好。樣本投影到最佳鑒別矢量空間,投影后保證模式樣本在新的子空間有最大的類間距離和最小的類內距離,即模式在該空間有最佳的可分離性。7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.2數據降維的算法原理

7.3基于Python的數據降維實例 Python的sklearn中的decomposition模塊中含有各種降維算法,可以方便的調用。

【例7-5】導入Python中自帶的鳶尾花數據集,利用SVD算法進行降維處理。解:原始數據有4個維度:花萼長度(sepal_length)、花萼寬度(sepal_width)、花瓣長度(petal_length)、花瓣寬度(petal_width)。其實,這4個維度有很大的相關性,可以用更少的維度來描述。降維以后,用SVC算法進行分類測試,代碼如下:7.3基于Python的數據降維實例7.3基于Python的數據降維實例7.3基于Python的數據降維實例【例7-6】wine.data文件中記錄了葡萄酒的性能參數和分類。其中第一列說明分類情況,共分成3類。后續各個列說明了性能參數,共有13項參數。利用LDA算法進行降維,降成2維數據,并利用logistics算法進行分類。解:首先讀入數據集,劃分為訓練集和測試集。然后用訓練集建立LDA模型,用該模型對測試集降維,再利用logistics算法進行分類。代碼如下:7.3基于Python的數據降維實例7.3基于Python的數據降維實例7.3基于Python的數據降維實例7.3基于Python的數據降維實例7.4基于Spark的數據降維實例【例7-7】利用org.apache.spark.ml.feature中包含的PCA算法,對鳶尾花數據集進行降維處理,使原始的4維數據降低為2維。解:(1)導入數據集。(2)將數據集的class類型由string,變換為double。增加以下代碼:(3)整合鳶尾花的4個特征量,變換為1個特征向量。增加以下代碼:7.4基于Spark的數據降維實例(4)將特征向量features進行規范化,變為scaledFeatures。增加以下代碼:(5)建立PCA模型。設置輸入列為scaledFeatures,輸出列為pcaFeatures,降低至2維。增加如下代碼:7.4基于Spark的數據降維實例謝謝觀看第8章神經網絡課程學習內容8.1神經網絡的概念8.2神經網絡的算法原理8.3基于Python的神經網絡實例8.4基于Spark的神經網絡實例8.1神經網絡的概念

神經元抽象為近似為一個多輸入、單輸出的系統,它接受多個信號后進行處理,再向外輸出。其抽象化的模型如圖8.1神經網絡的概念

8.1神經網絡的概念

現代神經網絡是由多個神經元組成的分層網狀結構的,由輸入層、隱含層和輸出層組成,如圖所示,每一個圓圈代表一個神經元。通過復雜網絡結構,神經網絡可以很容易地處理非線性分類問題。與線性分類不同,非線性分類問題的分類邊界是非線性函數。面對非線性分類問題,如語言分析、圖像識別、視頻分析、目標檢測、文本語義等領域問題,神經網絡有天然的優勢。8.2神經網絡的算法原理8.2.1多層感知機

MLP由輸入層、隱含層和輸出層構成。相鄰層節點之間由權值連接,但各層內的節點之間相互獨立。理論上已經證明,具有單隱含層的MLP就能以任意精度逼近任意的非線性函數。其結構示意如圖所示。8.2神經網絡的算法原理

BP算法的精髓是誤差梯度下降法。其核心思想是,首先將學習樣本的輸入信號(一般會進行歸一化操作)送到輸入層,而后經隱含層傳遞到輸出層,經輸出層的計算后,輸出對應的預測值。當預測值和真實值(期望值)之間的誤差達不到預設的目標精度要求時,網絡會從輸出層逐層向輸入層反饋該誤差信息,并調整各層間的權值、神經元的偏置,通過反復循環迭代逐步降低網絡的輸出值與樣本的期望輸出值之間的誤差,直至滿足設定的循環次數或精度要求,此時網絡的學習過程結束,并獲取到優化后的權值、偏置,以此為基礎提取未知樣本的信息進行輸入,即可獲得對未知樣本的映射(預測)。8.2神經網絡的算法原理 MLP設計、訓練和測試的步驟如下:(1)網絡拓撲結構的確定及相關參數的初始化。(2)將原始數據集歸一化,輸入到神經網絡的輸入層。(3)計算網絡數據實際輸出與樣本數據期望輸出之間的誤差,并依據得到的誤差信息反向傳播到輸入層,同時調整各層之間的權值、偏置。(4)循環迭代(2)、(3)兩個過程,逐步降低計算誤差,直到誤差達到設定的目標誤差或循環迭代次數達到設定的最大次數。(5)獲取到最優的權值、偏置。(6)提取檢測樣本的輸入信息,借助第(5)步獲取到的最優的權值、閾值,便可計算出測試樣本的預測輸出。8.2神經網絡的算法原理8.2神經網絡的算法原理8.2神經網絡的算法原理8.2.2卷積神經網絡CNN

卷積神經網絡CNN是目前最熱門的神經網絡模型之一,因其良好的特征提取能力和分類預測效果,被廣泛應用于圖像識別、人臉識別和自然語言處理等領域。CNN的局部連接、權值共享和下采樣是區別于其他網絡模型的顯著特征。局部連接是指網絡的兩層神經元之間是部分連接的,權值共享是指對樣本實施卷積運算時卷積核是相同的,下采樣是對特征進行局部總結。

CNN主要由輸入層、卷積層、池化層、全連接層和輸出層構成,CNN的模型結構如圖

所示。卷積層的主要功能是提取樣本特征,池化層的主要功能是對特征進行降維,全連接層是對經過卷積和池化操作后的特征圖進行分類預測。8.2神經網絡的算法原理CNN結構圖8.2神經網絡的算法原理1.卷積層

在卷積過程中,步長(stride)和填充(padding)是影響卷積結果的兩個重要參數。步長表示卷積核每次滑動的距離大小,填充描述的是在輸入數據的基礎上向外圍擴充的大小,填充能夠保證卷積前后數據的維度大小保持一致,若不進行填充,每次卷積操作后輸出特征圖的維度都會縮小,經過多次卷積操作后輸出特征圖的維度將小到難以進行卷積操作。填充的使用就是為了避免在深層卷積神經網絡的卷積過程中出現數據維度太小而無法進行卷積的問題。值得注意的是,一個卷積層并不是只有一個卷積核,往往有多個,卷積層輸出的特征圖數量與卷積核數量相同。

8.2神經網絡的算法原理8.2神經網絡的算法原理

為了增加網絡的非線性表達能力,一般在卷積層之后會接一個激活函數。常接在卷積層之后的激活函數包括:ReLU函數、Sigmoid函數和LeakyReLU函數等。

總結卷積層的2個主要思想:

一是局部連接,通過卷積核逐塊對輸入數據的分塊相乘再求和,考慮了事物的就近相關性,克服了BPNN缺乏空間推理能力的問題。

二是權值共享,通過使用相同的權重矩陣對輸入數據的每一個數據塊進行卷積,減少了存儲權值的空間,降低了計算過程的復雜度,初步克服了BPNN參數爆炸的問題。8.2神經網絡的算法原理2.池化層

池化層的主要作用是在卷積層的基礎上對局部特征信息進行總結,達到特征降維的目的,從而減少參數和計算量,進一步解決參數爆炸問題。池化操作是在特征圖上通過一個大小為s×s的矩陣窗口進行滑動來實現的,但是區別于卷積層的對應位置相乘再相加。常見的兩種池化方法為最大池化(MaxPooling)和平均池化(AveragePooling),最大池化是將s×s矩陣窗口中的最大值作為輸出,平均池化是將s×s矩陣窗口中的平均值作為輸出。8.2神經網絡的算法原理3全連接層 CNN的卷積層和池化層只是完成了輸入數據的特征提取功能,卻無法得出最終的分類預測結果,因此引入了全連接層(FullyConnectedLayer,FC)來解決分類決策問題。FC一般是在CNN模型的最后,緊挨著池化層,該層將池化層輸出的特征圖壓平,轉化成一維特征向量進行訓練,然后通過Softmax等分類器得到每個類別的概率值。全連接層采用全局連接方式,即每個神經元都與前一層的所有神經元互相連接,因此會產生大量的參數,容易發生過擬合現象。所以,通常會在全連接層中加入dropout模塊,隨機拋棄部分神經元來避免過擬合的發生。實際上FC層就相當于單隱含層MLP的隱含層8.3基于Python的神經網絡實例【例8-3】用sklearn中集成的MLP神經網絡分類器MLPClassifier,處理第三章例3-7的鳶尾花分類問題。

解:修改例3-7的代碼,將引入決策樹的代碼,更改為引入神經網絡的代碼。【例8-4】用sklearn中集成的MLP神經網絡回歸器,預測例5-6的皮鞋廠第19個月銷售額。解:引入MLP神經網絡回歸器MLPRegressor,代碼如下:8.3基于Python的神經網絡實例【例8-5】利用TensorFlow2搭建MLP,對著名的手寫體數據集MNIST進行分類識別。MNIST數據集來自美國國家標準與技術研究所,訓練集共60000個樣本,由來自250個不同人手寫的數字構成,其中50%是高中學生,50%來自人口普查局(theCensusBureau)的工作人員。測試集共10000個樣本,也是同樣比例的手寫數字數據。通過搭建神經網絡,使計算機能夠正確識別這些數字。8.3基于Python的神經網絡實例8.3基于Python的神經網絡實例解:(1)TensorFlow2中集成了MNIST數據集,首先要能夠讀入數據,包括訓練集和測試集。代碼如下:8.3基于Python的神經網絡實例(2)利用TensorFlow2建立MLP的拓撲。每一次需要輸入28*28的矩陣,輸入神經元784個。輸出需要10個神經元,對應0-9的10個類別。按照式8-5,中間的隱含層需要30個神經元。代碼如下:8.3基于Python的神經網絡實例(3)訓練神經網絡并測試。代碼如下:8.3基于Python的神經網絡實例【例8-6】利用TensorFlow2搭建CNN,對MNIST進行識別。CNN采用LeNet-5架構,同樣設置epoch=20,與例8-5的MLP進行性能對比。

解:LeNet-5是1995年提出的一種比較簡單的CNN,其結構如圖所示8.3基于Python的神經網絡實例LeNet-5共有7層,分別是:卷積層1、池化層1、卷積層2、池化層2和3個全連接層。代碼如下:8.3基于Python的神經網絡實例8.3基于Python的神經網絡實例8.4基于Spark的神經網絡實例【例8-7】利用SparkMLlib建立MLP,解決例3-12的鳶尾花分類問題。

解:在Spark中,目前被MLlib集成的神經網絡是MLPC,即MultilayerPerceptronClassifier(多層感知分類器)。與Python中sklearn的MLPClassifier主要區別是:除了需要指定隱含層神經元的個數,還要指定輸入層和輸出層神經元的個數。代碼如下:8.4基于Spark的神經網絡實例8.4基于Spark的神經網絡實例8.4基于Spark的神經網絡實例8.4基于Spark的神經網絡實例謝謝觀看第9章項目實戰1:食品安全信息處理與識別課程學習內容9.1項目背景9.2數據獲取9.3數據預處理9.4機器學習建模與分析9.5項目總結9.1項目背景

本項目致力于在信息集合中識別與食品安全相關的信息,以助力相關部門監管高效精準。對信息數據進行分類,通過模型建立、語義分析等方法篩選出食品安全相關的信息,輸出屬于食品安全相關的信息編號及信息名稱。項目整體架構如圖

所示。第一步是從文檔數據庫MongoDB上獲取文本信息記錄。第二步是用Pandas進行數據預處理,提取有效字段。將預處理完畢的數據進行建模與分析。第三步是用jieba、Gensim、NLTK將文本轉換為數值,再用sklearn支持向量機模型建模。第四步是用Matplotlib的三維散點圖呈現模型的分類效果。第五步對項目進行總結和實際應用。9.2數據獲取9.2.1用SecureCRT連接MongoDB查看數據1.打開VMware虛擬機,導入DATA01虛擬機鏡像,設置虛擬網絡編輯器的VMnet8網卡的子網地址為

9.2數據獲取2.啟動虛擬機,用SecureCRT聯機。參數設置如圖所示,主機名為“10”,端口為“22”,用戶名為“root”,密碼為“123456”9.2數據獲取3.聯機完成后,調整字符編碼為UTF-8格式9.2數據獲取4.啟動MongoDB服務,查看數據。具體命令如下:得到的結果如下:9.2數據獲取9.2.2用Python連接MongoDB讀取數據

利用pymongo包連接MongoDB,讀取mydb庫的myCollection集合中的數據,主要代碼如下:9.3數據預處理9.3.1數據轉換

將列表中的數據轉換為pandas的DataFrame,以便進一步處理,主要代碼如下:9.3數據預處理9.3.2數據清洗

在上面的df01中,_id和EVENT_ID都是記錄的唯一標識符,可以只保留1個,這里保留EVENT_ID。EVENT_NAME和CONTENT都表示信息的內容,可以整合為一個字段。考慮到CONTENT字段有空值、與EVENT_NAME完全相同和與EVENT_NAME不相同3種情況,整合時要以用戶自定義函數的形式進行處理。9.3數據預處理主要代碼如下:9.4機器學習建模與分析9.4.1將信息集合劃分為訓練集和測試集

訓練集用來訓練模型,測試集用來檢驗模型的分類有效性。劃分時要保證涉及食品安全信息的記錄,在訓練集和測試集中的比重是一致的。主要代碼如下:9.4機器學習建模與分析9.4機器學習建模與分析9.4.2將NAME_AND_CONTENT字段數值化

NAME_AND_CONTENT字段是用文字描述的,計算機在處理文字時,要將其轉換為數值化的n維向量。具體實現分為以下2個步驟。 1.語句拆分

實詞是語句含義特征的主要標志,為了突出這種特征和減少后續計算量,要保留實詞,去掉虛詞。

主要代碼如下:9.4機器學習建模與分析9.4機器學習建模與分析2.將詞匯列表轉換為數值化的向量

首先用get_corpus_vectors函數,轉換訓練集為n維度數值化向量集合A,再利用get_new_doc_vector函數,計算測試集在A中的數值化投影向量集合,作為向量集合B。這里用到了語言的兩個處理工具:Gensim、NLTK。 Gensim(generatesimilarity)是一個簡單高效的自然語言處理Python庫,用于抽取文檔的語義主題(semantictopics)。 NLTK是一個高效的Python構建的平臺,用來處理人類自然語言數據。9.4機器學習建模與分析主要代碼如下:9.4機器學習建模與分析9.4機器學習建模與分析9.4機器學習建模與分析9.4機器學習建模與分析9.4.3針對訓練集建立分類模型進行訓練

采用sklearn庫的支持向量機(SVM)模型進行分類,用數值向量化的訓練集df_A進行訓練。主要代碼如下:9.4機器學習建模與分析9.4.4用測試集檢驗分類模型的性能

用測試集df_B檢驗分類模型的性能,通過預測值與實際值的比對,計算精確率、召回率和F1分數。主要代碼如下:9.4機器學習建模與分析9.4.5結果可視化

主要代碼如下:9.5項目總結1.對于信息的識別問題,首要的是定位出關鍵字段。2.非數值的文本信息,若要調用sklearn庫的強大功能,需要首先進行數值化轉換。3.在實踐中,關系到國計民生的重大問題,在模型選擇上要有意選擇漏警率較低的模型。4.本項目可以從以下角度探索改進:(1)可以嘗試sklearn庫的其他分類算法,比較性能優劣(2)文本轉換為數值時,可以增加轉換維度,以增大計算量為代價,換取分類性能的提升。謝謝觀看第10章項目實戰2:基于Hive數據倉庫的商品推薦課程學習內容10.1項目背景10.2數據獲取10.3數據預處理10.4機器學習建模與分析10.5項目總結10.1項目背景

本項目研究利用Hive進行顧客消費記錄的轉存,并做線下商品推薦和線上商品推薦;采用Spark進行建模與分析,獲得商品推薦表,向顧客推薦商品,達到促銷的目的。

第1步是數據獲取,用Spark連接MySQL獲取商品消費記錄,存入Hive數據倉庫的ODS層。第2步是用SparkSQL進行數據預處理,提取必要的消費信息,存入數據倉庫的DW層。第3步建模與分析階段,用SparkML工具進行數據挖掘,得出商品推薦規則,保存到MySQL的商品推薦表中。第4步是商品推薦10.2數據獲取10.2.1用navicat連接數據庫查看數據

商業數據存儲在MySQL的test數據庫的相關表中。其中線下的消費信息保存在表shopping中,用navicat連接數據庫查看數據。線上的消費信息保存在表product_browse中

10.2數據獲取10.2數據獲取10.2.2用Spark獲取數據到Hive的ods數據倉庫1.Hive數據倉庫的結構

本項目僅研究商品推薦問題,故不涉及DM層,僅僅涉及ODS和DW層。先利用SecureCRT聯機,輸入下面的命令,啟動Hadoop平臺:

10.2數據獲取再輸入hive命令,進入hive的客戶端,查看數據倉庫分層架構和目前現有的數據:

10.2數據獲取2.編寫Spark程序實現線下(超市購物)消費數據從MySQL保存到hive Spark程序在IDEA工具中開發,在IDEA中建立Maven工程項目test,建立scala單例類aaa04_01,實現把MySQL中的test.shopping線下消

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論