這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)?lái)有關(guān)如何解析Apache Spark中的決策樹(shù),文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
為昆明等地區(qū)用戶提供了全套網(wǎng)頁(yè)設(shè)計(jì)制作服務(wù),及昆明網(wǎng)站建設(shè)行業(yè)解決方案。主營(yíng)業(yè)務(wù)為成都網(wǎng)站設(shè)計(jì)、網(wǎng)站建設(shè)、昆明網(wǎng)站設(shè)計(jì),以傳統(tǒng)方式定制建設(shè)網(wǎng)站,并提供域名空間備案等一條龍服務(wù),秉承以專業(yè)、用心的態(tài)度為用戶提供真誠(chéng)的服務(wù)。我們深信只要達(dá)到每一位用戶的要求,就會(huì)得到認(rèn)可,從而選擇與我們長(zhǎng)期合作。這樣,我們也可以走得更遠(yuǎn)!
Apache Spark中的決策樹(shù)
決策樹(shù)是在順序決策問(wèn)題進(jìn)行分類,預(yù)測(cè)和促進(jìn)決策的有效方法。決策樹(shù)由兩部分組成:
決策(Desion)
結(jié)果(Outcome)
決策樹(shù)包含三種類型的節(jié)點(diǎn):
根節(jié)點(diǎn)(Root node):包含所有數(shù)據(jù)的樹(shù)的頂層節(jié)點(diǎn)。
分割節(jié)點(diǎn)(Splitting node):將數(shù)據(jù)分配給子組(subgroup)的節(jié)點(diǎn)。
終端節(jié)點(diǎn)(Terminal node):最終決定(即結(jié)果)。
(分割節(jié)點(diǎn)(Splitting node),僅就離散數(shù)學(xué)中的樹(shù)的概念而言,就是指分支節(jié)點(diǎn),下面的翻譯為了強(qiáng)調(diào)"分支"有時(shí)會(huì)翻譯成分支結(jié)點(diǎn),譯者注)
為了抵達(dá)終端結(jié)點(diǎn)或者說(shuō)獲得結(jié)果,該過(guò)程從根節(jié)點(diǎn)開(kāi)始。根據(jù)在根節(jié)點(diǎn)上做出的決定,選擇分支節(jié)點(diǎn)?;谠诜种Ч?jié)點(diǎn)上做出的決定,選擇下一個(gè)子分支節(jié)點(diǎn)。這個(gè)過(guò)程繼續(xù)下去,直到我們到達(dá)終端節(jié)點(diǎn),終端節(jié)點(diǎn)的值是我們的結(jié)果。
Apache Spark中的決策樹(shù)
Apache Spark中沒(méi)有決策樹(shù)的實(shí)現(xiàn)可能聽(tīng)起來(lái)很奇怪。然而從技術(shù)上來(lái)說(shuō)是有的。在Apache Spark中,您可以找到一個(gè)隨機(jī)森林算法的實(shí)現(xiàn),該算法實(shí)現(xiàn)可以由用戶指定樹(shù)的數(shù)量。因此,Apache Spark使用一棵樹(shù)來(lái)調(diào)用隨機(jī)森林。
在Apache Spark中,決策樹(shù)是在特征空間上執(zhí)行遞歸二進(jìn)制分割的貪婪算法。樹(shù)給每個(gè)***部(即葉子結(jié)點(diǎn))分區(qū)預(yù)測(cè)了相同的標(biāo)簽。為了***化樹(shù)的節(jié)點(diǎn)處的信息增益,通過(guò)在一組可能的分支中選擇其中的***分割來(lái)貪婪地選擇每個(gè)分支結(jié)點(diǎn)。
節(jié)點(diǎn)不純度(impurity)是節(jié)點(diǎn)上標(biāo)簽一致性的度量。目前的實(shí)施提供了兩種不純的分類方法(Gini雜質(zhì)和熵(Gini impurity and entropy))。
停止規(guī)則
在滿足以下列條件之一的情況下,在節(jié)點(diǎn)處停止遞歸樹(shù)構(gòu)建(即只要滿足一個(gè)就停止,譯者注):
節(jié)點(diǎn)深度等于訓(xùn)練用的 maxDepth 參數(shù)。
沒(méi)有候選的分割結(jié)點(diǎn)導(dǎo)致信息收益大于 minInfoGain 。
沒(méi)有候選的分割結(jié)點(diǎn)去產(chǎn)生(至少擁有訓(xùn)練minInstancesPerNode實(shí)例)的子節(jié)點(diǎn) 。
有用的參數(shù)
algo:它可以是分類或回歸。
numClasses:分類類的數(shù)量。
maxDepth:根據(jù)節(jié)點(diǎn)定義樹(shù)的深度。
minInstancesPerNode:對(duì)于要進(jìn)一步拆分的節(jié)點(diǎn),其每個(gè)子節(jié)點(diǎn)必須至少接收到這樣的訓(xùn)練實(shí)例數(shù)(即實(shí)例數(shù)必須等于這個(gè)參數(shù))。
minInfoGain:對(duì)于一個(gè)節(jié)點(diǎn)進(jìn)一步拆分,必須滿足拆分后至少提高這么多信息量。
maxBins:離散連續(xù)特征時(shí)使用的bin數(shù)。
準(zhǔn)備決策樹(shù)的訓(xùn)練數(shù)據(jù)
您不能直接向決策樹(shù)提供任何數(shù)據(jù)。它需要一種特殊的格式來(lái)提供。您可以使用 HashingTF 技術(shù)將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為標(biāo)記數(shù)據(jù),以便決策樹(shù)可以理解。這個(gè)過(guò)程也被稱為數(shù)據(jù)的標(biāo)準(zhǔn)化。
(數(shù)據(jù))供給和獲得結(jié)果
一旦數(shù)據(jù)被標(biāo)準(zhǔn)化,您就可以提供相同的決策樹(shù)算法進(jìn)來(lái)行分類。但在此之前,您需要分割數(shù)據(jù)以用于訓(xùn)練和測(cè)試目的; 為了測(cè)試的準(zhǔn)確性,你需要保留一部分?jǐn)?shù)據(jù)進(jìn)行測(cè)試。你可以像這樣提供數(shù)據(jù):
al splits = data.randomSplit(Array(0.7, 0.3)) val (trainingData, testData) = (splits(0), splits(1)) // Train a DecisionTree model. // Empty categoricalFeaturesInfo indicates all features are continuous. val numClasses = 2 val categoricalFeaturesInfo = Map[Int, Int]() val impurity = "gini" val maxDepth = 5 val maxBins = 32 val model = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo, impurity, maxDepth, maxBins)
在這里,數(shù)據(jù)是我的標(biāo)準(zhǔn)化輸入數(shù)據(jù),為了訓(xùn)練和測(cè)試目的,我將其分成7:3的比例。我們正在使用***深度的為5的"gini" 雜質(zhì)("gini" impurity)。
一旦模型生成,您也可以嘗試預(yù)測(cè)其他數(shù)據(jù)的分類。但在此之前,我們需要驗(yàn)證最近生成的模型的分類準(zhǔn)確性。您可以通過(guò)計(jì)算"test error"來(lái)驗(yàn)證其準(zhǔn)確性。
/ Evaluate model on test instances and compute test error val labelAndPreds = testData.map { point => val prediction = model.predict(point.features) (point.label, prediction) } val testErr = labelAndPreds.filter(r => r._1 != r._2).count().toDouble / testData.count() println("Test Error = " + testErr)
上述就是小編為大家分享的如何解析Apache Spark中的決策樹(shù)了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
名稱欄目:如何解析ApacheSpark中的決策樹(shù)
當(dāng)前地址:http://chinadenli.net/article42/gohpec.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供做網(wǎng)站、企業(yè)建站、服務(wù)器托管、關(guān)鍵詞優(yōu)化、網(wǎng)站內(nèi)鏈、域名注冊(cè)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)