XGBoost预测

XGBoost算法在Boosting算法的基础上进行了扩展和升级,具有较好的易用性和鲁棒性,被广泛用在各种机器学习生产系统和竞赛领域,该算法支持分类和回归。XGBoost预测组件是在开源社区的基础上进行包装,您可以使用该组件对XGBoost训练组件生成的模型进行离线推理。本文为您介绍该组件的配置方法。

使用限制

支持的计算引擎为MaxCompute、FlinkDLC。

数据格式

当前支持Table格式和LibSVM格式的数据。

  • Table格式示例如下:

    f0

    f1

    label

    0.1

    1

    0

    0.9

    2

    1

  • LibSVM格式示例如下:

    示例数据

    1 2:1 9:1 10:1 20:1 29:1 33:1 35:1 39:1 40:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1

    0 0:1 9:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 115:1 121:1

    1 2:1 8:1 18:1 20:1 29:1 33:1 35:1 39:1 41:1 52:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 116:1 123:1

    0 2:1 9:1 13:1 21:1 28:1 33:1 36:1 38:1 40:1 53:1 57:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 97:1 105:1 113:1 119:1

    0 0:1 9:1 18:1 20:1 22:1 33:1 35:1 38:1 44:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 104:1 115:1 121:1

    0 0:1 8:1 18:1 20:1 23:1 33:1 35:1 38:1 41:1 52:1 55:1 64:1 68:1 76:1 85:1 87:1 91:1 94:1 101:1 105:1 116:1 121:1

可视化配置组件参数

Designer支持通过可视化方式,配置XGBoost预测组件参数。

参数名

类型

参数描述

字段设置

算法保留列名

字符串数组

保留列。

特征列名数组

字符串数组

表格数据中特征列。和向量列名互斥,代表输入数据的格式为表格数据。

向量列名

字符串

LibSVM格式数据列名,和特征列名数组互斥。代表输入数据的格式为LibSVM数据。

参数设置

预测结果列名

字符串

预测结果输出列名。

执行调优

节点个数

正整数

单个节点内存大小参数配对使用。取值范围为[1, 9999]。

单个节点内存大小

正整数

单位为兆。取值范围为[1024, 64*1024]。

使用示例

本示例使用Designer预置模板,通过希格斯玻色子事件的分类场景,介绍如何在Designer中使用XGBoost算法。关于如何创建使用XGBoost算法探究希格斯玻色子事件分类案例工作流,请参见创建工作流:预置模板

image

其中:

XGBoost预测组件输出为原生XGBoost库输出的JSON序列化,如果您想在工作流中接入二分类评估组件,您需要在XGBoost预测组件的下游接入SQL脚本组件,并配置以下代码,将XGBoost预测组件输出的JSON序列化转换为二分类评估组件需要的格式。更多内容,详情请参见XGBoost参数说明

set odps.sql.udf.getjsonobj.new=true;

select *, CONCAT("{\"0\":", 1.0-prob, ",\"1\":", prob, "}") as detail
FROM (
select *, cast(get_json_object(pred, '$[0]') as double) as prob FROM ${t1})

相关文档

  • XGBoost预测组件与XGBoost训练组件配合使用,关于XGBoost训练组件的配置方法,请参见XGBoost训练

  • Designer预置了多种算法组件,你可以根据不同的使用场景选择合适的组件进行数据处理,详情请参见组件参考:所有组件汇总