利用xgboost4j下的xgboost分类模型案例
package spark.xgb.test
import ml.dmlc.xgboost4j.scala.Booster
import ml.dmlc.xgboost4j.scala.spark.XGBoost
import org.apache.spark.SparkConf
import org.apache.spark.sql.SparkSession
/**
* Created by zhaijianwei on 2017/12/7.
*/
object sparkWithDataFrame {
def main(args: Array[String]) {
if(args.length != 4){
println(
"usage: program num_of_rounds num_workers training_path test_path")
sys.exit(1)
}
val numRound = args(0).toInt
val num_workers = args(1).toInt
val inputTrainPath = args(2)
val inputTestPath = args(3)
// 使用kyro序列化,需要对序列化的类进行注册
val sparkConf = new SparkConf().setAppName("sparkWithDataFrame")
.set("spark.serializer", "org.apache.spark.serializer.KryoSerializer")
sparkConf.registerKryoClasses(Array(classOf[Booster]))
val sparkSession = SparkSession.builder().config(sparkConf).getOrCreate()
val trainDF = sparkSession.sqlContext.read.format("libsvm").load(inputTrainPath)
val testDF = sparkSession.sqlContext.read.format("libsvm").load(inputTestPath)
val params = List(
"eta" -> 0.1f,
"max_depth" -> 2,
"objective" -> "binary:logistic"
).toMap
val xgbModel = XGBoost.trainWithDataFrame(trainDF, params, numRound, num_workers, useExternalMemory = true)
xgbModel.transform(testDF).show()
}
}
提交spark的shell程序:
numRound=100
num_workers=10
inputTrainPath="/tmp/zjw/agaricus.txt.train" //存放训练数据的hdfs路径
inputValidPath="/tmp/zjw/agaricus.txt.test" //存放测试数据的hdfs路径
spark-submit --class spark.xgb.test.sparkWithDataFrame \
--num-executors 60 \
--executor-memory 16g \
--driver-memory 16g \
--executor-cores 4 \
--queue root.bdp_jdw_up \
--jars ./jar/xgboost4j-0.7.jar,./jar/xgboost4j-spark-0.7.jar \
./jar/spark_prac-1.0-SNAPSHOT.jar $numRound $num_workers $inputTrainPath $inputValidPath
运行结果:
---------------------
作者:Alex-大伟
来源:CSDN
原文:https://blog.csdn.net/zjwcdd/article/details/78739201
版权声明:本文为博主原创文章,转载请附上博文链接!
- 利用xgboost4j下的xgboost分类模型案例
- 用xgboost构建一个简单的模型
- XGBoost4J: Portable Distributed XGBoost in Spark, Flink and Dataflow
- 利用VS2013在win7 64位机器上搭建xgboost 0.6+Anaconda3 环境
- XGBoost:二分类问题
- xgboost: 速度快效果好的boosting模型
- 树模型的学习----XGBOOST的学习
- 利用树的集成模型分类器RandomForestClassifier/GradientBoostingClassifier进行二类分类(复习6)
- python机器学习案例系列教程——集成学习(Bagging、Boosting、随机森林RF、AdaBoost、GBDT、xgboost)
- caffe:利用python分类,并可视化模型参数、数据
- XGBoost:二分类问题
- 利用朴素贝叶斯模型进行文档分类
- 利用分类模型学习特征权重
- 【Caffe的C++接口使用说明(三)】Ubuntu14.04下Caffe利用训练好的模型进行分类的C++接口使用说明(三)
- 机器学习笔记-利用线性模型进行分类
- 基于决策树的分类回归(随机森林,xgboost, gbdt)
- 【教程】利用libsvm-mat建立分类模型model参数解密【by faruto】
- 利用Amazon Machine Learning与Amazon Redshift建立二进制分类模型
- Tensorflow利用训练好的Inception模型进行图像识别分类
- 利用KVC写的一个分类实现自动生成模型属性代码