在Spark中使用xgboost訓(xùn)練模型

spark上運(yùn)行xgboost模型,具有內(nèi)存運(yùn)行,速度更快,減少數(shù)據(jù)傳輸?shù)膬?yōu)勢。

1、交互模式測試

使用spark運(yùn)行xgboost首先需要下載依賴的jar包,下載地址https://github.com/criteo-forks/xgboost-jars/releases

主要需要xgboost4j-0.72-criteo-20180518_2.10-linux.jar

在堡壘機(jī)中使用命令 spark-shell --jars xgboost*.jar,進(jìn)入交互模式,可以編寫代碼進(jìn)行測試。

退出shell環(huán)境命令 :quit

2、數(shù)據(jù)準(zhǔn)備

xgboost模型需要將數(shù)據(jù)整理為libsvm格式。

本地可以使用python腳本將數(shù)據(jù)轉(zhuǎn)化。

3、編寫并運(yùn)行程序

首先需要引入依賴

import ml.dmlc.xgboost4j.scala.{DMatrix, XGBoost}

4、IDEA

在IDEA中編寫scala程序,需要定義好類名。
修改pom.xml文件,建立依賴。

<dependency>
<groupId>me.lyh</groupId>
<artifactId>xgboost4j</artifactId>
<version>0.71-20180420-230cb9b7</version>
</dependency>

5、maven打包命令:

mvn clean package -Pcluster

說明:clean是消除其他文件,package是打包,-Pcluster是指將依賴打包

6、生成jar包后執(zhí)行

執(zhí)行命令:spark-submit --class com.jd.iss.xgb.xgb_slass --jars xgboost4j-linux.jar,xgboost4j-spark.jar xgboostDemo.jar

--class是指定義執(zhí)行的類名

--jars是引入依賴的jar包,因?yàn)榫€上環(huán)境一般沒有xgboost的jar包

7、查看任務(wù)日志:

yarn logs --applicationId application_XXXX_XXXX >res.log

8、一些xgboost4j的函數(shù)說明

8、一些xgboost4j的函數(shù)說明

//模型訓(xùn)練:
booster = XGBoost.train(trainMax, paramMap, numRound, watches.toMap)
//獲取特征重要性
val FeatureWeight=booster.getFeatureScore()

//決策樹結(jié)果
val model_dump = booster.getModelDump()
//預(yù)測
val PredictResult = booster.predict(testMax).flatMap(x=>x)
注意:預(yù)測函數(shù)后要接 flatMap(x=>x)

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容