XGBoost模型文件转化为PMML

    xiaoxiao2025-02-07  18

    运用java包和指令行讲XGBoost模型转化为PMML通用模型文件。 前期准备 下载jpmml-xgboost, https://github.com/jpmml/jpmml-xgboost/archive/master.zip ;安装java1.7或以上版本;安装 Apache Maven。 配置环境 在终端进入项目的根目录,执行:   mvn clean install 这一步是根据项目目录中的pom.xml文件新建一个可执行的java包  target/converter-executable-1.1-SNAPSHOT.jar。 使用步骤 转化过程可以概括为以下三步: 运用XGBoost训练模型;保存模型及其相关的特征信息;运用JPMML-XGBoost转化命令行将第二步中的两个文件转化为一个pmml格式的文件。 训练模型并保存为本地文件 使用 mtcars 数据,应用R包xgboost训练一个线性模型。代码如下: library("xgboost") source("src/main/R/util.R") data(mtcars) # Convert selected columns from numeric datatype to integer or factor datatypes mtcars$cyl = as.integer(mtcars$cyl) mtcars$vs = as.factor(mtcars$vs) mtcars$am = as.factor(mtcars$am) mtcars$gear = as.integer(mtcars$gear) mtcars$carb = as.integer(mtcars$carb) mpg_y = mtcars[, 1] mpg_X = mtcars[, 2:ncol(mtcars)] # Generate DMatrix file mpg.dmatrix = genDMatrix(mpg_ympg_X"xgboost.svm # genDMatrix是 在util.R中定义的 # Generate feature map file mpg.fmap   =  genFMap( mpg_X "xgboost.fmap # genFMap是在util.R中定义的 set.seed( 31 ) # Train a linear regression model mpg.xgb   =  xgboost( data   =   mpg.dmatrix objective   =   "reg:linear" nrounds   =   7 ) # Save the model in XGBoost proprietary binary format xgb.save( mpg.xgb "xgboost.model" ) # Dump the model in text format xgb.dump( mpg.xgb "xgboost.model.txt" fmap   =   "xgboost.fmap" ) 模型转化为PMML文件 运用JPMML-XGBoost转化命令行将第二步中的两个文件 xgboost.model和 xgboost.fmap 转化为一个pmml格式的文件 java -jar target/converter-executable-1.1-SNAPSHOT.jar --model-input xgboost.model --fmap-input xgboost.fmap --target-name mpg --pmml-output xgboost.pmml 获取帮助详情 java -jar target/converter-executable-1.1-SNAPSHOT.jar --help
    转载请注明原文地址: https://ju.6miu.com/read-1296198.html
    最新回复(0)