Spark MLlib决策树ID3代码


代码:

package workStudy.MLlib

import org.apache.spark.mllib.tree.DecisionTree
import org.apache.spark.mllib.util.MLUtils
import org.apache.spark.{SparkConf, SparkContext}
/**
 *  决策时 -- ID3
 */
object day3 {
  def main(args: Array[String]) {
    val conf =new SparkConf()
    .setMaster("local")
    .setAppName("day3")
    val sc=new SparkContext(conf)
    val data=MLUtils.loadLibSVMFile(sc,"E://machinedata/ID3/sparkMLlib.txt")
    //val data=sc.textFile("")

    val numClasses=2 //设置分类数量
    val categoricalFeatureInfo=Map[Int,Int]() //设定输入格式
    val impurity="entropy" //设定信息增信计算公式
    val maxDepth=5  //设定树高度
    val maxBins=3   //设定分裂数据集

    val model=DecisionTree.trainClassifier(data,numClasses,categoricalFeatureInfo,impurity,maxDepth,maxBins)  //建立模型
    println("model.depth:" + model.depth)
    println("model.numNodes:" + model.numNodes)
    println("model.topNode:" + model.topNode)
  }
}


结果:

model.depth:4
model.numNodes:11
model.topNode:id = 1, isLeaf = false, predict = 1.0 (prob = 0.625), impurity = 0.9544340029249649, split = Some(Feature = 0, threshold = 0.0, featureType = Continuous, categories = List()), stats = Some(gain = 0.04879494069539847, impurity = 0.9544340029249649, left impurity = 0.8112781244591328, right impurity = 1.0)

数据:

1 1:1 2:0 3:0 4:1
0 1:1 2:0 3:1 4:1
0 1:0 2:1 3:0 4:0
1 1:1 2:1 3:0 4:1
1 1:0 2:0 3:0 4:0
1 1:0 2:1 3:1 4:0
1 1:1 2:0 3:0 4:1
0 1:1 2:0 3:1 4:1
0 1:0 2:1 3:0 4:0
1 1:1 2:1 3:0 4:1
1 1:0 2:1 3:1 4:0
1 1:0 2:1 3:0 4:1
0 1:1 2:1 3:1 4:1
1 1:0 2:0 3:1 4:0
0 1:1 2:1 3:1 4:1
1 1:0 2:0 3:1 4:0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值