菜鸟日记——R中xgboost文档解析

来源:互联网 发布:金山office for mac 编辑:程序博客网 时间:2024/05/17 23:15
  1. R中xgboost模型的训练函数
xgb.train(params = list(), data, nrounds, watchlist = list(), obj = NULL,  feval = NULL, verbose = 1, print_every_n = 1L, early_stopping_rounds = NULL, maximize = NULL, save_period = NULL, save_name = "xgboost.model", xgb_model = NULL, callbacks = list(), ...) xgboost(data = NULL, label = NULL, missing = NA, weight = NULL,params = list(), nrounds, verbose = 1, print_every_n = 1L,early_stopping_rounds = NULL, maximize = NULL, save_period = 0,save_name = "xgboost.model", xgb_model = NULL, callbacks = list(), ...)#例如model_time4 <- xgboost(data =  data.matrix(sample_train[,c(-8)]), label = sample_train$companyClassID, max.depth = 6,eta = 0.3, nthread = 2, nround = 10,objective = "multi:softmax",num_class = 89) 

xgb.train()是一种训练的高级界面。xgboost()为训练提供简单的函数接口
2. xgboost参数解析
xgboost在R下的参数解释
3. xgboost特征重要度计算
xgb.importance(colnames(agaricus.train$data), model = bst)
Feature:在模型中用到的特征名称
Gain:每个特性对模型的贡献。对于增强的树模型,每个树的每个特征的每一个增益被考虑在内,然后每个特征的平均给整个模型的视觉。最高百分比意味着预测培训所使用的标签的重要功能(仅适用于树模型)
Cover:与此特性相关的观察数的度量(仅适用于树模型);
Weight:表示某个特征被输入树的相对次数的百分比。
参数解释
feature_names:每个特征的名称作为字符向量。可以从稀疏矩阵中提取(参见示例)。如果模型转储已经包含了特征名,则该参数应该为null。
model:由xgb.train函数生成。
data:用于训练步骤的数据集。将与标号参数一起用于共时计算。详细信息部分。此参数是可选的。
label:用于训练步骤的标签向量。将用于数据参数的联合计算。详细信息部分。此参数是可选的。
target:一个函数返回true或1时,观察应算作一个共同发生,假或0其他。默认的功能是提供在一个二元分类计算有限状态。目标函数应该只有一个参数。这个参数将被用于在分割条件之后提供每个重要的特征向量,因此,这些向量将只做0和1,无论以前的信息是什么。详细信息部分。此参数是可选的。
4. xgboost的交叉验证功能

 xgb.cv(params = list(), data, nrounds, nfold, label = NULL, missing = NA, prediction = FALSE, showsd = TRUE, metrics = list(), obj = NULL, feval = NULL, stratified = TRUE, folds = NULL, verbose = TRUE, print_every_n = 1L, early_stopping_rounds = NULL, maximize = NULL, callbacks = list(), ...

参数解释:
params:参见xgb.train()里任务参数的设置
data:待训练的数据集一般是经过处理后的稀疏矩阵
nrounds:迭代次数
nfold:原始数据集被随机分割成n倍相等大小的子样本。
label:训练样本的标签
missing:仅在输入是密集矩阵时才使用。 默认情况下,设置为NA,这意味着算法应该将NA值视为“丢失”。 有时,可能会使用0或其他极值来表示缺失值。
prediction:指示是否从每个CV模型返回测试折叠预测的逻辑值。 此参数与cb.cv.predict回调有关。
showsd:布尔值,是否显示交叉验证的标准差
metrics:在交叉验证中使用的评估度量列表,当它没有被指定时,根据目标函数来选择评估度量。待选项:error、rmse、logloss、auc、merror(用来检测多分类匹配)
obj:定制目标函数。 用给定的预测和应变返回梯度和二阶梯度(???)
feval:定制的评估功能。 用给定的预测和应变返回列表(metric =’metric-name’,value =’metric-value’)(???)
stratified:布尔值,指示是否应根据结果标签的值对折叠样本进行分层。
folds:列表提供了使用预定义的CV折叠列表的可能性(每个元素必须是测试折叠索引的向量)。 当提供折叠时,将忽略nfold和分层参数,因此一般自定义设置的时候不需要这个参数
verbose:布尔值,在这个过程中打印统计信息
print_every_n:当verbose> 0时,打印每个第n次迭代评估消息。 默认值是1,表示打印所有消息。 这个参数被传递给cb.print.evaluation回调函数。
early_stopping_rounds:如果为NULL,则不会触发早期停止功能。 如果设置为整数k,则如果性能在第k轮中不提高,则使用验证集的训练将停止。 设置此参数将调用cb.early.stop回调
maximize:如果设置了feval和early_stopping_rounds,那么也必须设置此参数。 当它为真时,意味着评价分数越大越好。 该参数被传递给cb.early.stop回调。

#例如cv <- xgb.cv(data =  data.matrix(sample_train[,c(-8)]), label = sample_train$companyClassID,nrounds = 10, nthread = 2, nfold = 5,        max_depth = 6, eta = 0.3,objective = "multi:softmax",num_class = 89)print(cv, verbose=TRUE)

打印CV内容

原创粉丝点击