您好,登錄后才能下訂單哦!
小編給大家分享一下spark mllib中如何實現隨機森林算法,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
計算機視覺等領域內應用極為廣泛的一個算法,它不僅可以用來做分類,也可用來做回歸即預測,隨機森林機由多個決策樹構成,相比于單個決策樹算法,它分類、預測效果更好,不容易出現過度擬合的情況.
package spark.DT import org.apache.spark.mllib.tree.RandomForest import org.apache.spark.mllib.util.MLUtils import org.apache.spark.{SparkConf, SparkContext} /** * 隨機雨林決策樹 * 若干個決策樹組成的決策樹森林, * 隨機雨林的實質就是建立多個決策樹,然后取得所有決策樹的平均值 * ps:一個數據集中包括一項評分,假設一共5個分數,在實際應用中采用二分法 * 1 2 3 | 4 5 * 即 bin 有2個,分別裝有數據集{1,2,3},{4,5} * split被設置為3 * * Created by eric on 16-7-20. */ object RFDTree { val conf = new SparkConf() //創建環境變量 .setMaster("local") //設置本地化處理 .setAppName("ZombieBayes") //設定名稱 val sc = new SparkContext(conf) def main(args: Array[String]) { val data = MLUtils.loadLibSVMFile(sc, "./src/main/spark/DT/DTree.txt") val numClasses = 2//分類數量 val categoricalFeaturesInfo = Map[Int, Int]()//設定輸入格式 val numTrees = 3// 隨機雨林中決策樹的數目 val featureSubSetStrategy = "auto" //設置屬性在節點計算數,自動決定每個節點的屬性數 val impurity = "entropy" //設定信息增益計算方式 val maxDepth = 5 //最大深度 val maxBins = 3 // 設定分割數據集 val model = RandomForest.trainClassifier( data, numClasses, categoricalFeaturesInfo, numTrees, featureSubSetStrategy, impurity, maxDepth, maxBins )// 建立模型 model.trees.foreach(println)//打印每棵樹信息 println(model.numTrees) } }
每次樹的深度和節點會不同
以上是“spark mllib中如何實現隨機森林算法”這篇文章的所有內容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內容對大家有所幫助,如果還想學習更多知識,歡迎關注億速云行業資訊頻道!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。