自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Apache Spark中的決策樹

大數(shù)據(jù) Spark
Apache Spark中沒有決策樹的實(shí)現(xiàn)可能聽起來很奇怪。然而從技術(shù)上來說是有的。在Apache Spark中,您可以找到一個(gè)隨機(jī)森林算法的實(shí)現(xiàn),該算法實(shí)現(xiàn)可以由用戶指定樹的數(shù)量。因此,Apache Spark使用一棵樹來調(diào)用隨機(jī)森林。

Apache Spark中的決策樹

決策樹是在順序決策問題進(jìn)行分類,預(yù)測和促進(jìn)決策的有效方法。決策樹由兩部分組成:

  • 決策(Desion)
  • 結(jié)果(Outcome)

決策樹包含三種類型的節(jié)點(diǎn):

  • 根節(jié)點(diǎn)(Root node):包含所有數(shù)據(jù)的樹的頂層節(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é)中的樹的概念而言,就是指分支節(jié)點(diǎn),下面的翻譯為了強(qiáng)調(diào)"分支"有時(shí)會(huì)翻譯成分支結(jié)點(diǎn),譯者注)

為了抵達(dá)終端結(jié)點(diǎn)或者說獲得結(jié)果,該過程從根節(jié)點(diǎn)開始。根據(jù)在根節(jié)點(diǎn)上做出的決定,選擇分支節(jié)點(diǎn)?;谠诜种Ч?jié)點(diǎn)上做出的決定,選擇下一個(gè)子分支節(jié)點(diǎn)。這個(gè)過程繼續(xù)下去,直到我們到達(dá)終端節(jié)點(diǎn),終端節(jié)點(diǎn)的值是我們的結(jié)果。

Apache Spark中的決策樹

Apache Spark中沒有決策樹的實(shí)現(xiàn)可能聽起來很奇怪。然而從技術(shù)上來說是有的。在Apache Spark中,您可以找到一個(gè)隨機(jī)森林算法的實(shí)現(xiàn),該算法實(shí)現(xiàn)可以由用戶指定樹的數(shù)量。因此,Apache Spark使用一棵樹來調(diào)用隨機(jī)森林。

在Apache Spark中,決策樹是在特征空間上執(zhí)行遞歸二進(jìn)制分割的貪婪算法。樹給每個(gè)***部(即葉子結(jié)點(diǎn))分區(qū)預(yù)測了相同的標(biāo)簽。為了***化樹的節(jié)點(diǎn)處的信息增益,通過在一組可能的分支中選擇其中的***分割來貪婪地選擇每個(gè)分支結(jié)點(diǎn)。

節(jié)點(diǎn)不純度(impurity)是節(jié)點(diǎn)上標(biāo)簽一致性的度量。目前的實(shí)施提供了兩種不純的分類方法(Gini雜質(zhì)和熵(Gini impurity and entropy))。

 

停止規(guī)則

在滿足以下列條件之一的情況下,在節(jié)點(diǎn)處停止遞歸樹構(gòu)建(即只要滿足一個(gè)就停止,譯者注):

  • 節(jié)點(diǎn)深度等于訓(xùn)練用的 maxDepth 參數(shù)。
  • 沒有候選的分割結(jié)點(diǎn)導(dǎo)致信息收益大于 minInfoGain 。
  • 沒有候選的分割結(jié)點(diǎn)去產(chǎn)生(至少擁有訓(xùn)練minInstancesPerNode實(shí)例)的子節(jié)點(diǎn) 。

有用的參數(shù)

  • algo:它可以是分類或回歸。
  • numClasses:分類類的數(shù)量。
  • maxDepth:根據(jù)節(jié)點(diǎn)定義樹的深度。
  • minInstancesPerNode:對于要進(jìn)一步拆分的節(jié)點(diǎn),其每個(gè)子節(jié)點(diǎn)必須至少接收到這樣的訓(xùn)練實(shí)例數(shù)(即實(shí)例數(shù)必須等于這個(gè)參數(shù))。
  • minInfoGain:對于一個(gè)節(jié)點(diǎn)進(jìn)一步拆分,必須滿足拆分后至少提高這么多信息量。
  • maxBins:離散連續(xù)特征時(shí)使用的bin數(shù)。

準(zhǔn)備決策樹的訓(xùn)練數(shù)據(jù)

您不能直接向決策樹提供任何數(shù)據(jù)。它需要一種特殊的格式來提供。您可以使用 HashingTF 技術(shù)將訓(xùn)練數(shù)據(jù)轉(zhuǎn)換為標(biāo)記數(shù)據(jù),以便決策樹可以理解。這個(gè)過程也被稱為數(shù)據(jù)的標(biāo)準(zhǔn)化。

(數(shù)據(jù))供給和獲得結(jié)果

一旦數(shù)據(jù)被標(biāo)準(zhǔn)化,您就可以提供相同的決策樹算法進(jìn)來行分類。但在此之前,您需要分割數(shù)據(jù)以用于訓(xùn)練和測試目的; 為了測試的準(zhǔn)確性,你需要保留一部分?jǐn)?shù)據(jù)進(jìn)行測試。你可以像這樣提供數(shù)據(jù):

 

  1. al splits = data.randomSplit(Array(0.7, 0.3)) 
  2. val (trainingData, testData) = (splits(0), splits(1)) 
  3.  
  4. // Train a DecisionTree model. 
  5. // Empty categoricalFeaturesInfo indicates all features are continuous. 
  6.  
  7. val numClasses = 2 
  8. val categoricalFeaturesInfo = Map[IntInt]() 
  9. val impurity = "gini" 
  10. val maxDepth = 5 
  11. val maxBins = 32 
  12. val model = DecisionTree.trainClassifier(trainingData, numClasses, categoricalFeaturesInfo, 
  13. impurity, maxDepth, maxBins) 

在這里,數(shù)據(jù)是我的標(biāo)準(zhǔn)化輸入數(shù)據(jù),為了訓(xùn)練和測試目的,我將其分成7:3的比例。我們正在使用***深度的為5的"gini" 雜質(zhì)("gini" impurity)。

一旦模型生成,您也可以嘗試預(yù)測其他數(shù)據(jù)的分類。但在此之前,我們需要驗(yàn)證最近生成的模型的分類準(zhǔn)確性。您可以通過計(jì)算"test error"來驗(yàn)證其準(zhǔn)確性。

 

  1. / Evaluate model on test instances and compute test error 
  2. val labelAndPreds = testData.map { point => 
  3. val prediction = model.predict(point.features) 
  4. (point.label, prediction) 
  5.  
  6. val testErr = labelAndPreds.filter(r => r._1 != r._2).count().toDouble / testData.count() 
  7. println("Test Error = " + testErr) 

就是這樣!你可以在這里查看一個(gè)正在運(yùn)行的例子。

責(zé)任編輯:未麗燕 來源: 網(wǎng)絡(luò)大數(shù)據(jù)
相關(guān)推薦

2022-11-11 08:00:00

決策樹機(jī)器學(xué)習(xí)監(jiān)督學(xué)習(xí)

2017-11-21 13:00:20

機(jī)器學(xué)習(xí)決策樹可視化

2016-09-30 16:12:47

GBDT算法決策樹

2019-05-15 09:00:00

決策樹機(jī)器學(xué)習(xí)人工智能

2022-12-21 14:39:35

機(jī)器學(xué)習(xí)案發(fā)決策樹

2022-01-24 09:00:00

機(jī)器學(xué)習(xí)決策樹算法

2012-08-06 09:04:01

決策樹建模

2017-09-11 13:33:44

大數(shù)據(jù)數(shù)據(jù)可視化決策樹

2017-05-10 15:41:29

機(jī)器學(xué)習(xí)算法數(shù)據(jù)

2017-07-18 16:25:31

機(jī)器學(xué)習(xí)算法決策樹

2017-12-12 12:24:39

Python決策樹

2022-10-19 11:33:07

決策樹策略搜索

2014-07-07 10:05:57

機(jī)械學(xué)習(xí)

2017-08-04 14:28:40

決策樹隨機(jī)森林CART模型

2017-02-23 08:45:36

Python決策樹數(shù)據(jù)集

2023-08-11 17:30:54

決策樹機(jī)器學(xué)習(xí)算法

2018-02-02 17:08:48

機(jī)器學(xué)習(xí)算法決策樹

2021-11-08 07:11:49

決策樹數(shù)據(jù)分類器

2017-10-18 14:11:20

機(jī)器學(xué)習(xí)決策樹隨機(jī)森林

2020-11-02 13:54:41

Python可視化決策樹
點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)