版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
第8章SparkMLlib:功能強大的算法庫04-11月-241以Logistic實現(xiàn)用戶分類目錄了解Mllib算法庫2機器學習就是讓機器能像人一樣有學習、理解、認識的能力。試想,如果計算機能夠對大量的癌癥治療記錄進行歸納和總結,并能夠給醫(yī)生提出適當?shù)慕ㄗh,對于病人的康復將有重大意義。機器學習是一門人工智能的科學,該領域的主要研究對象是人工智能,特別是如何在經(jīng)驗學習中改善具體算法的性能。機器學習的過程就是通過計算機使算法模型利用輸入數(shù)據(jù)的規(guī)律或以往經(jīng)驗進行學習,并對模型進行評估,評估的性能如果達到要求就拿這個模型來測試其他的數(shù)據(jù),如果達不到要求就要調(diào)整算法來重新建立模型,再次進行評估,如此循環(huán)往復,最終獲得滿意的經(jīng)驗來處理其他的數(shù)據(jù)。機器學習可以分為監(jiān)督學習、非監(jiān)督學習、半監(jiān)督學習3種。監(jiān)督學習就是給出的訓練數(shù)據(jù)集是有標簽的,已經(jīng)能夠確定所給數(shù)據(jù)集的類別。半監(jiān)督學習針對的問題是數(shù)據(jù)量超級大但是標簽數(shù)據(jù)很少或者標簽數(shù)據(jù)不易獲取的情況。無監(jiān)督學習與監(jiān)督學習相反,訓練數(shù)據(jù)完全沒有標簽,只能依靠數(shù)據(jù)間的相似性分類,例如廣泛使用的KMeans算法了解MLlib算法庫1.機器學習概念回歸算法線性回歸:根據(jù)已有數(shù)據(jù)擬合曲線,常采用的方法是最小二乘法邏輯回歸:一種與線性回歸非常類似的算法,但是線性回歸處理的是數(shù)值問題,而邏輯回歸屬于分類算法,預測結果是離散的分類分類算法:有監(jiān)督學習的方法。分類算法是通過有類別的訓練數(shù)據(jù)對模型進行訓練和評估,再根據(jù)評估后的模型對未知類別數(shù)據(jù)進行分類。主要有KNN算法、樸素貝葉斯算法、SVM支持向量機、邏輯回歸、決策樹、隨機森林等等了解MLlib算法庫機器學習常用的算法聚類算法:聚類是一種無監(jiān)督學習算法,用于將對象分到高度相似的類中。常用的聚類方法有KMeans聚類、層次聚類,比較少見的有SOM聚類算法、FCM聚類算法,F(xiàn)CM算法是一種以隸屬度來確定每個數(shù)據(jù)點屬于某個聚類程度的算法。推薦算法:推薦算法的主要特征就是可以自動向用戶推薦他們最感興趣的東西,從而增加購買率,提升效益。協(xié)同過濾推薦算法:有基于用戶和基于內(nèi)容兩種關聯(lián)規(guī)則的算法:將滿足支持度與置信度的共同購買的商品推薦給買了其中一種或幾種的用戶降維算法:主要作用是壓縮數(shù)據(jù)與提升機器學習其他算法的效率。通過降維算法,可以將具有幾千個特征的數(shù)據(jù)壓縮至若干個特征。降維算法的主要代表是PCA算法(即主成分分析算法)。了解MLlib算法庫機器學習常用算法MLlib是Spark的機器學習(ML)庫,旨在簡化機器學習的工程實踐工作,并方便擴展到更大規(guī)模,同時利用Spark分布式處理來實現(xiàn)模型,處理大數(shù)據(jù)全量數(shù)據(jù)的迭代計算。MLlib由一些通用的學習算法和工具組成,包括分類、回歸、聚類、協(xié)同過濾、降維等,同時還包括底層的優(yōu)化原語和高層的管道API。具體來說,主要包括以下幾方面的內(nèi)容算法工具:常用的學習算法,如分類、回歸、聚類和協(xié)同過濾。特征化工具:特征提取、轉化、降維,和選擇工具。管道(Pipeline):用于構建、評估和調(diào)整機器學習管道的工具。持久性:保存和加載算法、模型和管道。實用工具:線性代數(shù)、統(tǒng)計、數(shù)據(jù)處理等工具。了解MLlib算法庫MLlib簡介SparkMLlib歷史比較長,在1.0以前的版本即已經(jīng)包含了,提供的算法實現(xiàn)都是基于原始的RDD。主要有以下幾個發(fā)展過程。0.8版本時,MLlib算法包被加入Spark,但是只支持Java和Scala兩種語言。1.0版本時,SparkMLlib才可以支持Python語言。1.2版本開始Spark機器學習庫被分為兩個包1.2以后的版本,對MLlib中的算法不斷的增加和改進從Spark2.0開始,基于RDD的API進入維護模式(即不增加任何新的特性),并預期于3.0版本的時候被移除出MLlib。了解MLlib算法庫MLlib發(fā)展數(shù)據(jù)類型:在MLlib中,對不同算法包的調(diào)用都有一定的輸入數(shù)據(jù)格式,因此先了解最基本的數(shù)據(jù)類型,其中幾種常見數(shù)據(jù)類型如表所示了解MLlib算法庫算法與算法包數(shù)據(jù)類型描述Vector數(shù)據(jù)向量,包括稀疏向量和稠密向量LabeledPoint監(jiān)督式學習算法的數(shù)據(jù)對象,包含一個標簽和一個特征向量Rating對產(chǎn)品的評分,用于推薦ALS算法vector:一種數(shù)據(jù)向量。MLlib支持兩種類型的局部向量:稠密和稀疏。稠密向量表示存儲每一個值而稀疏向量存儲非0向量,由兩個并行數(shù)組支持:索引和值。例如,矢量(1,0,3)稠密向量格式表示為[1.0,0.0,3.0];稀疏格式表示為(3,[0,2],[1,3]),其中3是向量的大小,后面的數(shù)組第一個為索引數(shù)組,第二個為值數(shù)組。LabeledPoint:用來表示帶標簽的數(shù)據(jù),其中包含兩個部分,第一個為數(shù)據(jù)的類別標簽label,由一個浮點數(shù)表示,第二個部分是一個特征向量feature,通常是Vector類型,其中的值是Double類型,是有類別標簽的監(jiān)督式學習算法常用類型,在mllib.regression中。對于二進制分類,標簽應該是0(負)或1(正)。對于多類分類,標簽應該是從零開始的類索引:0,1,2,…。Rating:該類型是ALS推薦算法所使用的類型,包括用戶Id,商品Id,以及rating評分3個部分,用戶Id,商品Id要求為Int類型,存放在mllib.recommendation中。了解MLlib算法庫算法與算法包特征提?。簃llib.feature中存在一些常見的特征轉化方法,主要包括創(chuàng)建特征向量和標準化數(shù)據(jù)。TF-IDF:種將文檔轉化成向量表示的方法。TF指的是詞頻,即該詞在文檔中出現(xiàn)的次數(shù),IDF是逆文檔概率,是詞在文檔集中出現(xiàn)的概率,它們的乘積表示該詞在文檔中的重要程度。HashingTF:從一個文檔中計算出給定大小的詞頻向量,并且通過哈希法排列詞向量的順序,使詞與向量能一一對應IDF:計算逆文檔頻率,需要IDF對象調(diào)用fit()方法來獲取一個IDFModel,表示語料庫的逆文檔頻率。然后再通過transform()把TF向量轉為IDF向量。了解MLlib算法庫算法與算法包Tf-idf.txt數(shù)據(jù)如右圖所示,一行表示一個文檔,要求將文檔轉換成向量表示了解MLlib算法庫算法與算法包導入相關包讀取數(shù)據(jù)分割成單詞并序列化對每一個句子(詞袋),使用HashingTF將句子轉換為特征向量了解MLlib算法庫算法與算法包使用IDF重新調(diào)整特征向量,得到文檔轉化后的特征向量查看結果了解MLlib算法庫算法與算法包Word2Vec:Word2Vec是NLP領域的重要算法,它的功能是將每個word用K維的稠密向量來表達,訓練集是語料庫,不含標點,以空格斷句。通過訓練將每個詞映射成K維實數(shù)向量(K一般為模型中的超參數(shù)),通過詞之間的距離(比如余弦相似度、歐氏距離等)來判斷它們之間的語義相似度。每一個文檔都表示為一個單詞序列,所以一個含有M個單詞的文檔由M個K維向量組成。mllib.feature中有Word2Vec算法包,輸入數(shù)據(jù)為String類型的Iterable,其他與TF-IDF相似。了解MLlib算法庫算法與算法包對w2v數(shù)據(jù)進行轉換了解MLlib算法庫算法與算法包了解MLlib算法庫算法與算法包統(tǒng)計:最大值、最小值、平均值、方差和相似度MLlib通過mllib.stat.Statistics類中的方法提供了幾種廣泛使用的統(tǒng)計函數(shù),這些函數(shù)可以直接在RDD上使用,如表所示了解MLlib算法庫算法與算法包方法描述max/min最大值/最小值mean均值variance方差normL1/normL2L1范數(shù)/L2范數(shù)Statistics.corr(rdd,method)相關系數(shù),method可選pearson(皮爾森相關)或spearman(斯皮爾曼相關)Statistics.corr(rdd1,rdd2,method)計算兩個由浮點值組成RDD的相關矩陣,使用pearson或spearman中的一種方法Statistics.chiSqTest(rdd)LabeledPoint對象的RDD的獨立性檢驗對如右圖所示的數(shù)據(jù)統(tǒng)計平均值、方差、相關系數(shù)了解MLlib算法庫算法與算法包數(shù)據(jù)規(guī)范化(標準化):正則化操作可以使輸入數(shù)據(jù)標準化并提高后期學習算法的效果。Spark1.6.3已經(jīng)提供了3種數(shù)據(jù)規(guī)范化的方法,Normalizer、StandardScaler和MinMaxScalerNormalizer、StandardScaler和MinMaxScaler處理的都是Vector類型的數(shù)據(jù),所以先將數(shù)據(jù)轉換成Vector類型,并且調(diào)用ml的類需要將數(shù)據(jù)也轉化成DataFrame了解MLlib算法庫算法與算法包Normalizer規(guī)范化:Normalizer是一個轉換器,它可以將多行向量輸入轉化為統(tǒng)一的形式。Normalizer的作用范圍是每一行,使每一個行向量的范數(shù)變換為一個單位范數(shù)。參數(shù)為p(默認值:2)來指定正則化中使用的p-norm了解MLlib算法庫算法與算法包StandardScaler規(guī)范化:StandardScaler處理的對象是每一列,也就是每一維特征,將特征標準化為單位標準差或是0均值,或是0均值單位標準差。主要參數(shù)有兩個withStd:true或者false,默認為true。表示是否將數(shù)據(jù)標準化到單位標準差。withMean:true或者false,默認為false,表示是否變換為0均值。此種方法將產(chǎn)出一個稠密輸出,所以不適用于稀疏輸入。了解MLlib算法庫算法與算法包StandardScaler需要對數(shù)據(jù)進行建模,獲取每一維的均值和標準差,來縮放每一維特征,如圖所示了解MLlib算法庫算法與算法包MinMaxScaler規(guī)范化:常用的最大-最小值標準化,MinMaxScaler同樣是針對每一列(即每一維特征)進行處理。將每一維特征線性地映射到指定的區(qū)間,通常是[0,1]。它也有兩個參數(shù)可以設置。min:默認為0,指定區(qū)間的下限。max:默認為1,指定區(qū)間的上限。了解MLlib算法庫算法與算法包回歸:回歸指研究一組隨機變量(Y1,Y2,…,Yi)和另一組(X1,X2,…,Xk)變量之間關系的統(tǒng)計分析方法,又稱多重回歸分析。通常前者是因變量,后者是自變量?;貧w是一種監(jiān)督學習算法,利用已知標簽或結果的訓練數(shù)據(jù)來訓練模型、預測結果。有監(jiān)督學習的算法要求輸入數(shù)據(jù)要使用LabeledPoint類型,其中包含一個label和一個數(shù)據(jù)特征向量。線性回歸:線性回歸是最常用的方法之一,通過一組線性組合來預測輸出值。MLlib中用于線性回歸算法的包主要有LinearRegressionWithSGD、RidgeRegressionWithSGD和LassoWithSGD,這幾種方法都是采用隨機梯度下降法求解回歸方程的邏輯回歸:邏輯回歸是一種二分類的回歸算法,預測的值為新點屬于哪個類的概率,對于概率大于等于閾值的分到一個類,小于閾值的分到另一個類。了解MLlib算法庫算法與算法包線性回歸的算法調(diào)用如圖所示,數(shù)據(jù)需要切割并轉化為LabeledPoint類型,設置模型參數(shù)后通過train方法訓練模型,并用所建模型的predict方法預測。最后添加了模型的存儲和加載的方法,這兩個方法對于其他類型的模型也一樣,除了加載模型所用的算法包不同。了解MLlib算法庫算法與算法包在MLlib中,邏輯回歸算法的輸入值為LabeledPoint類型。MLlib有兩個邏輯回歸的算法包,一個是LogisticRegressionWithLBFGS,一個是LogisticRegressionWithSGB。LBFGS的效果要好于SGB,但在早期版本不可用。這些類的參數(shù)與線性回歸的參數(shù)完全一樣。LogisticRegressionWithLBFGS通過train方法可以得到一個LogisticRegressionModel,對每個點的預測返回一個0-1的概率,按照默認閾值0.5把該點分配到其中一個類。閾值的設定可以采用setThreshold()方法在定義LogisticRegressionWithLBFGS時設置,也可以用clearThreshold()方法設置為不分類直接輸出概率值。默認閾值設置為0.5,但是在數(shù)據(jù)不平衡情況下可以調(diào)整閾值大小。了解MLlib算法庫算法與算法包分類:分類算法包括支持向量機、樸素貝葉斯、決策樹、隨機森林以及邏輯回歸。分類算法是一種有監(jiān)督的學習方法,即訓練數(shù)據(jù)有明確類別標簽。因此分類會使用MLlib中的LabeledPoint類作為模型數(shù)據(jù)類型樸素貝葉斯:樸素貝葉斯分類是一種十分簡單的分類算法,樸素貝葉斯思想:對于給出的特定的features,求解在此項出現(xiàn)條件下各個類別出現(xiàn)的概率,哪個概率最大就屬于那個類別。了解MLlib算法庫算法與算法包分類算法支持向量機:支持向量機是一種通過線性或非線性分割平面的二分類方法,有0或1兩種標簽。在MLlib中調(diào)用SVMWithSGD可以實現(xiàn)算法,位置在mllib.classification.SVMModel中,模型參數(shù)與線性回歸差不多,通過train方法可以返回一個SVMModel模型,該模型同LogisticRegressionModel模型一樣是通過閾值分類的,所以LogisticRegressionModel設置閾值的方法和清除閾值的方法都對它適用,SVMModel模型通過predict可以預測點的類別。決策樹:決策樹是分類和回歸的常用算法,因為它容易處理類別特征,擴展到多分類的問題。MLlib支持二分類和多分類的決策樹。決策樹以節(jié)點樹的形式表示,每個節(jié)點代表一個向量,向量的不同特征值會使節(jié)點有多條指向下個節(jié)點的邊,最底層的葉子節(jié)點為預測的結果,可以是分類的特征也可以是連續(xù)的特征。每個節(jié)點的選擇都是遵循某一種使模型更加優(yōu)化的算法,例如基于信息增益最大的方法。了解MLlib算法庫算法與算法包聚類:聚類是一種無監(jiān)督學習的方法,用于將高度相似的數(shù)據(jù)分到一類中。聚類沒有類別標簽,僅根據(jù)數(shù)據(jù)相似性進行分類,所以通常用于數(shù)據(jù)探索、異常檢測,也用于一般數(shù)據(jù)的分群。聚類的方法有很多中,計算相似度的方法也有很多,最常使用的還是KMeans聚類算法。在MLlib中的KMeans有幾個可以優(yōu)化KMeans算法的參數(shù)maxIterations:最大循環(huán)次數(shù),聚類算法的最大迭代次數(shù),默認100。nitializationMode:指定初始化聚類中心的方法,“kmeans||”或“random”,“kmeans||”選項在選取初始聚類中心時會盡可能地找到K個距離較遠的聚類中心,但是代價會更大些。run:算法并發(fā)運行的數(shù)目,即運行KMeans的次數(shù),最終的分類結果會綜合所有次數(shù)的返回結果。了解MLlib算法庫算法與算法包以安裝包所帶的示例數(shù)據(jù)kmeans_data.txt作為輸入數(shù)據(jù)上傳到HDFS下的/user/root,實現(xiàn)實現(xiàn)KMeans算法。了解MLlib算法庫算法與算法包聚類結果、聚類中心和模型誤差如圖所示了解MLlib算法庫算法與算法包關聯(lián)規(guī)則:FP算法作為一個關聯(lián)規(guī)則算法,在推薦方法也得到了應用。FP算法主要通過大量數(shù)據(jù)的一個購買歷史來生成頻繁項集,設置支持度篩選出符合支持度的頻繁項集,根據(jù)頻繁項集生成一些規(guī)則后通過置信度過濾出最有說服力的規(guī)則。通過規(guī)則可以完成推薦、分類等工作。mllib.fpm.FPGrowth是MLlib實現(xiàn)FP算法的算法包,通過run方法找出符合支持度的頻繁項集,generateAssociationRules方法找出符合置信度的規(guī)則。了解MLlib算法庫算法與算法包目前熱門的推薦算法主要是協(xié)同過濾算法,協(xié)同過濾算法有基于內(nèi)容和基于用戶兩個方面,主要是根據(jù)用戶歷史記錄和對商品的評分記錄,計算用戶間的相似性,找出最為相似的用戶的購買商品推薦給用戶。MLlib目前有一個實現(xiàn)推薦算法的包為ALS,根據(jù)用戶對各種產(chǎn)品的交互和評分來推薦新產(chǎn)品,通過最小二乘法來求解模型。ALS在mllib.recommendation.ALS,要求輸入類型為mllib.recommendation.Rating類型的RDD,通過train訓練出來的模型對象為mllib.recommendation.MatrixFactorizationModel。ALS有顯示評分(默認)和隱式反饋(ALS.trainImplicit()),顯示評分用戶對商品有明確評分,預測結果也是評分,隱式反饋評分是用戶和產(chǎn)品的交互置信度,預測結果也是置信度。ALS的模型優(yōu)化參數(shù)有以下幾個。rank:要使用的特征向量,更大效果更好,但是代價更大,默認為10。iterations:要迭代的次數(shù),默認為10。lambda:正則化參數(shù),默認0.01。alpha:用來在隱式ALS中計算置信度的常量,默認1.0。了解MLlib算法庫算法與算法包讀取ALS示例數(shù)據(jù)并將數(shù)據(jù)轉化為Rating類型,設置模型參數(shù),通過ALS.train的方法訓練模型,再通過predict預測用戶對商品的評分,比較實際值和預測值來計算模型的誤差。了解MLlib算法庫算法與算法包MLlib也考慮到模型評估的重要性,在mllib.evaluation包中定義了很多函數(shù),主要分布在BinaryClassificationMetrics和MulticlassMetrics等這些類中。使用這些類,可以從(預測,實際值)對組成的RDD上創(chuàng)建一個Metrics對象,計算召回率、準確率、F值、ROC曲線等評價指標。Metrics對應方法如表所示了解MLlib算法庫MLlib中的模型評估指標方法Precision(精確度)metrics.precisionByThresholdRecall(召回率)metrics.recallByThresholdF-measure(F值)metrics.fMeasureByThresholdROC曲線metrics.rocPrecision-Recall曲線metrics.prAreaUnderROCCurve(ROC曲線下的面積)metrics.areaUnderROCAreaUnderPrecision-RecallCurve(Precision-Recall曲線下的面積)metrics.areaUnderPR1以Logistic實現(xiàn)用戶分類目錄了解MLlib庫2“泰迪杯”數(shù)據(jù)挖掘競賽網(wǎng)站作為一個競賽型的網(wǎng)站,不僅發(fā)布了很多競賽的相關信息,除此之外還有很多其他類型的網(wǎng)頁信息,其中就包括公司主營的業(yè)務培訓的相關信息。每個網(wǎng)頁都屬于某一類網(wǎng)頁標簽,例如“培訓”“競賽”“項目”等,用戶對于某個網(wǎng)頁的訪問可以轉化為用戶對某類標簽的訪問記錄?,F(xiàn)有一份記錄了用戶對各網(wǎng)頁標簽的統(tǒng)計數(shù)據(jù),如圖所示,這份數(shù)據(jù)包括用戶對“泰迪杯”數(shù)據(jù)挖掘競賽網(wǎng)站中各個網(wǎng)頁標簽的訪問記錄。表中的第1列id,代表用戶id。標簽列“status”,標識了用戶是否訪問過培訓標簽相關的網(wǎng)頁。如果訪問過,則值為1,表示此用戶對于培訓有參加的意向;反之其值為0,表示此用戶對于培訓沒有參加的意向。其他的標簽列共有30個它們的值各自表示了用戶訪問該網(wǎng)頁標簽的訪問次數(shù)。比如,標簽列“項目”的值為3,則表示用戶訪問項目標簽相關的網(wǎng)頁共有3次。如果根據(jù)標簽列“status”進行簡單分類,則所有用戶被分成了兩類:有意向培訓用戶和無意向培訓用戶。以Logistic實現(xiàn)用戶分類1.背景建立分類模型,識別出有意向培訓用戶。原始數(shù)據(jù)需要被分為兩部分:訓練數(shù)據(jù)及測試數(shù)據(jù)。使用訓練數(shù)據(jù)訓練預測模型,使用測試數(shù)據(jù)來預測用戶是否有培訓意向,從而達到驗證模型的目的。這里使用樣本數(shù)據(jù)中的標簽列“status”作為模型的目標列,其他30個標簽列的數(shù)據(jù)作為屬性列來構建一個分類模型。應用分類模型就可以對用戶進行分類,從而推測出新用戶是否有培訓意向。使用MLlib中的邏輯回歸算法包實現(xiàn)用戶分類,包括以下幾個步驟構建模型數(shù)據(jù)訓練模型模型分類及結果優(yōu)化以Logistic實現(xiàn)用戶分類分析目標針對案例步驟和調(diào)用算法流程,基本步驟包含以下幾個方面數(shù)據(jù)清理后將原始數(shù)據(jù)處理成算法需要的模型數(shù)據(jù)找到SparkMLlib關于Logistic回歸的算法包,了解如何導入算法包明確算法包所需模型參數(shù)的含義,設置合適的參數(shù)建立模型利用Spark已有的或自己實現(xiàn)的評估算法評估模型效果根據(jù)評估結果選擇是否要修改模型參數(shù)進行調(diào)優(yōu)選擇調(diào)試出來的較好的模型參數(shù)重新訓練模型,預測測試集的分類將輸出結果輸出到HDFS以Logistic實現(xiàn)用戶分類分析思路原始的輸入數(shù)據(jù)為用戶對各個標簽的訪問次數(shù),其中被訪問的標簽有30個,每個用戶對每個標簽的訪問次數(shù)都被記錄下來。每個用戶都有一個用戶識別Id,并且數(shù)據(jù)帶有一個類別標簽status模型數(shù)據(jù)要求為LabeledPoint類型的數(shù)據(jù),第一個參數(shù)設置為用戶類別,第二個參數(shù)設置為用戶變量,并且用戶類別和用戶變量應該為Double類型。根據(jù)數(shù)據(jù)要求,先將原始數(shù)據(jù)的第一列用戶Id和第一行的列名去除,然后將數(shù)據(jù)上傳到HDFS上數(shù)據(jù)列與列之間用逗號分隔,用戶標簽作為第一列以Logistic實現(xiàn)用戶分類數(shù)據(jù)處理在數(shù)據(jù)中對每個用戶標簽訪問次數(shù)進行統(tǒng)計,看看是否有對所有標簽都沒有訪問的情況,代碼如右上圖所示數(shù)據(jù)集中有高達9427個用戶對所有標簽都沒有訪問過,經(jīng)過分析可能是數(shù)據(jù)前期獲取過程中存在一些無價值標簽被刪除的情況,針對這種情況造成的數(shù)據(jù)問題在這里不做考慮,直接對數(shù)據(jù)進行處理,刪除訪問次數(shù)都為0的記錄,并將數(shù)據(jù)重新存儲到HDFS,代碼如右下圖所示以Logistic實現(xiàn)用戶分類數(shù)據(jù)處理MLlib的邏輯回歸類有兩個:LogisticRegressionWithSGD和LogisticRegressionWithLBFGS,前者基于隨機梯度下降,只支持2分類,后者基于LBFGS優(yōu)化損失函數(shù),支持多分類。LBFGS的性能比SGD更好一些,因此選擇LBFGS建模。為了測試模型的效果,將數(shù)據(jù)按照8:2的比例分成兩部分,80%作為訓練數(shù)據(jù),20%作為測試數(shù)據(jù)。以Logistic實現(xiàn)用戶分類MLlib實現(xiàn)Logistic回歸調(diào)用MLlib中的相關類,包括實現(xiàn)模型的LogisticRegressionWithLBFGS,加載模型的LogisticRegressionModel類,輸入數(shù)據(jù)類型LabeledPoint類,以及用于評估的BinaryClassificationMetrics對象以Logistic實現(xiàn)用戶分類MLlib實現(xiàn)Logistic回歸讀取數(shù)據(jù)集,轉化成模型需要的LabeledPoint類型,并且根據(jù)8:2比例分割數(shù)據(jù)得到訓練集和測試集采用LogisticRegressionWithLBFGS類來訓練模型,有一個參數(shù)setNumClasses(),用于設置分類個數(shù),這里設置分類個數(shù)為2,然后通過run()方法加載訓練集到模型中,并且設置分類閾值為0.5(默認也是0.5)以Logistic實現(xiàn)用戶分類MLlib實現(xiàn)Logistic回歸根據(jù)訓練好的模型預測測試集的數(shù)據(jù),并且將預測類別與真實類別組合成(prediction,label)的二元組,代碼如右上圖所示因為數(shù)據(jù)可能存在的不平衡,通過準確度并不能準確反映模型的好壞,所以采用精確率、召回率、F值這3個指標來判斷。通過BinaryClassificationMetrics對象計算二分類模型的精確率、召回率、F值、ROC曲線,代碼如右下圖所示以Logistic實現(xiàn)用戶分類MLlib實現(xiàn)Logistic回歸precision和recall的結果如圖所示,這里是以默認閾值0.5做為閾值來進行0跟1分類的,分到1的概率超過0.5記為類1,小于等于0.5記為類0。以Logistic實現(xiàn)用戶分類MLlib實現(xiàn)Logistic回歸綜合precision和recall,通過F1值計算總的模
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 傳染病醫(yī)院工作總結
- 產(chǎn)品經(jīng)理試用期工作總結
- 中華經(jīng)典誦讀讀后感
- 中學生代表畢業(yè)典禮演講稿
- 報關實務-教學課件 第一章 海關概念
- 彌補企業(yè)以前年度虧損有哪些渠道
- 影像工作室創(chuàng)新創(chuàng)業(yè)計劃書
- 英語科組嘗試教學階段性總結
- OECD -二十國集團 經(jīng)合組織公司治理原則2023
- 教學技術課件教學課件
- FZ/T 93043-2021棉紡并條機
- 二年級音樂節(jié)奏訓練課-動起來教學教案
- 決策心理學第二講課件
- 舞蹈教室使用記錄表
- 提高輸液執(zhí)行單簽字規(guī)范率品管圈匯報書模板課件
- 手術器械傳遞的原則與方法課件
- 小學五年級整本書閱讀方案
- 《長相思》 完整版課件
- (完整word版)高考英語作文練習紙(標準答題卡)
- 電鍍廢水處理工程加藥計算方法
- 絮凝攪拌機操作規(guī)程
評論
0/150
提交評論