从 'gblinear' 助推器对象中提取系数,该对象由使用参数 booster="gblinear" 的 xgb.train() 生成。
注意:如果传入的助推器模型不是 "gblinear" 类型,此函数将报错。
用法
# S3 method for class 'xgb.Booster'
coef(object, ...)值
提取的系数
- 如果数据中每列只有一个系数,则将以向量形式返回,可能包含特征名称(如果可用),截距作为第一列。 
- 如果数据中每列有多个系数(例如,当使用 - objective="multi:softmax"时),则将以矩阵形式返回,维度等于- [num_features, num_cols],截距作为第一行。请注意,列(多类分类中的类别)维度将不命名。
此处返回的截距将包含 'base_score' 参数(与模型转储中的 'bias' 或最后一个系数不同,后者没有添加 'base_score'),因此调用 predict(..., outputmargin = TRUE) 和对 model.matrix(~., ...) 执行矩阵乘法应得到相同的值。
请注意,系数是通过先将其转换为字符串再转换回来获得的,因此与 predict.xgb.Booster 使用的实际系数相比,总会有一些非常小的精度损失。
示例
library(xgboost)
data(mtcars)
y <- mtcars[, 1]
x <- as.matrix(mtcars[, -1])
dm <- xgb.DMatrix(data = x, label = y, nthread = 1)
params <- xgb.params(booster = "gblinear", nthread = 1)
model <- xgb.train(data = dm, params = params, nrounds = 2)
coef(model)