spark高级数据分析实战---用决策树预测森林植被

这是我写的这本书的第二个程序,这几天一直研究storm,没时间写,第一个推荐系统由于时间我没及时发回头会补充给大家,这个找了时间参照书上写的,希望对大家有帮助。


package mllib.tree
import org.apache.log4j.{Level, Logger}
import org.apache.spark.mllib.evaluation.MulticlassMetrics
import org.apache.spark.mllib.linalg.Vectors
import org.apache.spark.mllib.regression.LabeledPoint
import org.apache.spark.mllib.tree.DecisionTree
import org.apache.spark.mllib.tree.model.DecisionTreeModel
import org.apache.spark.rdd.RDD
import org.apache.spark.{SparkContext, SparkConf}

/**
  * Created by 汪本成 on 2016/7/12.
  */
object trainCovtype {

  //开始时间
  var beg = System.currentTimeMillis()

  //屏蔽不必要的日志显示在终端上
  //Logger.getLogger("org.apache.spark").setLevel(Level.WARN)
  //Logger.getLogger("org.apache.eclipse.jetty.server").setLevel(Level.OFF)

  //创建入口对象
  val conf = new SparkConf().setAppName("trainCovtype").setMaster("local")
  val sc= new SparkContext(conf)

  val HDFS_COVDATA_PATH = "hdfs://node1:9000/user/spark/sparkLearning/mllib/covtype.data"
  val rawData = sc.textFile(HDFS_COVDATA_PATH)

  //设置LabeledPoint格式
  val data = rawData.map{
    line =>
      val values = line.split(",").map(_.toDouble)
      // init返回除最后一个值之外的所有值,最后一列是目标
      val FeatureVector = Vectors.dense(values.init)
      //决策树要求(目标变量)label0开始,所以要减一
      val label = values.last - 1
      LabeledPoint(label, FeatureVector)
  }

  //分成训练集(80%),交叉验证集(10%),测试集(10%)
  val Array(trainData, cvData, testData) = data.randomSplit(Array(0.8, 0.1, 0.1))
  trainData.cache()
  cvData.cache()
  testData.cache()

  //新建决策树
  val numClass = 7  //分类数量
  val categoricalFeaturesInfo = Map[Int, Int]()  //map存储类别(离散)特征及每个类特征对应值
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值