文档章节

spark mllib 随机森林算法

ericSM
 ericSM
发布于 2016/07/29 16:33
字数 428
阅读 795
收藏 2

随机森林机:若干个决策树组成的一个决策树森林

计算机视觉等领域内应用极为广泛的一个算法,它不仅可以用来做分类,也可用来做回归即预测,随机森林机由多个决策树构成,相比于单个决策树算法,它分类、预测效果更好,不容易出现过度拟合的情况.

运行代码如下

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)
  }
}

 

结果如下

每次树的深度和节点会不同

 

 

© 著作权归作者所有

ericSM
粉丝 18
博文 142
码字总数 154379
作品 0
南京
项目经理
私信 提问
加载中

评论(0)

基于Spark自动扩展scikit-learn (spark-sklearn)

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。 https://blog.csdn.net/sunbow0/article/details/50848719 1、基于Spark自动扩展scikit-lear...

sunbow0
2016/03/10
0
0
Spark的39个机器学习库-中文

//Apache Spark 本身// 1.MLlib >AMPLab Spark最初诞生于伯克利 AMPLab实验室,如今依然还是AMPLab所致力的项目,尽管这些不处于Apache Spark Foundation中,但是依然在你日常的github项目中...

MoksMo
2015/11/04
965
0
学途无忧网的视频怎么破解下载?学途无忧网淘宝可以买吗?

学途无忧网的视频怎么破解下载?学途无忧网淘宝可以买吗? 我想下载这几集,或者低价购买这几集 课时7:SparkSQL java操作mysql数据 课时8:Spark统计用户的收藏转换率 课时9:Spark梳理用户...

天池番薯
2016/12/19
1.6K
3
Spark2.1.0之模块设计

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/beliefer/article/details/80386736 在阅读本文之前,读者最好已经阅读了《Spark2.1.0之初识Spark》和《Spark...

泰山不老生
2018/06/05
0
0
基于Spark的机器学习实践 (二) - 初识MLlib

1 MLlib概述 1.1 MLlib 介绍 ◆ 是基于Spark core的机器学习库,具有Spark的优点 ◆ 底层计算经过优化,比常规编码效率往往要高 ◆ 实现了多种机器学习算法,可以进行模型训练及预测 1.2 Spark ...

javaedge
2019/04/09
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 一山里不容二猫

Osc乱弹歌单(2020)请戳(这里) 【今日歌曲】 @薛定谔的兄弟 :分享洛神有语创建的歌单「我喜欢的音乐」: 《数え歌》- 池田綾子 手机党少年们想听歌,请使劲儿戳(这里) @诺墨 :哈哈哈哈...

小小编辑
20分钟前
37
1
敏捷开发验收评审会议

迭代验收评审是Scrum中的重要活动之一,迭代验收评审会议召开过程是否符合敏捷原则,实践是否贴近实际,参照以下:要点一:参加迭代验收评审会议的角色是否完整和投入 ●敏捷团队所有...

沐沐爸比
47分钟前
43
0
js 获取文件本地内存路径

URL.createObjectURL(file)

DrChenXX
今天
51
0
CentOS 6.5 安装 Hadoop 集群【未完】

1、安装 CentOS 6.5 2、关闭 iptables 3、关闭 suliunx 4、修改 IP 4、修改 hostname 5、修改 hosts 6、SSH 免密 7、JDK(1.8)安装 华为镜像直达 8、...

产品哥
今天
59
0
R语言用quantstrat包获取股票、债券、基金、黄金、原油、指数、外汇和全球经济数据

R语言可以非常轻松的获得证券(股票、债券、基金、期货(黄金、原油等)、期权),指数、外汇和美联储提供的各种经济数据。我来详细说一下。 quantstrat包的金融数据很全 yahoo提供的各种证券...

常志伟
今天
49
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部