小编给大家分享一下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中如何实现随机森林算法”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注亿速云行业资讯频道!
亿速云「云服务器」,即开即用、新一代英特尔至强铂金CPU、三副本存储NVMe SSD云盘,价格低至29元/月。点击查看>>
免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。
原文链接:https://my.oschina.net/sunmin/blog/720717