我正在使用R包gbm来拟合具有> 2个类的数据集中的概率分类器。我使用distribution = "multinomial"
作为参数,但是要找出该选择实际实现的实现细节有些困难。
gbm
的帮助功能指出
当前可用的选项是“高斯”(平方误差),“拉普拉斯”(绝对损失),“ tdist”(t分布损失),“ bernoulli”(0-1结果的逻辑回归),“受累”(对0-1个结局进行了枢纽式丧失),分类),“ adaboost”(对于0-1个结局采用了AdaBoost指数损失),“ poisson”(对结局进行计数),“ coxph”(对检查结果进行了正确审查),“分位数”或“成对”(使用LambdaMart算法进行排名)。
并且未列出multinomial
,而我复制的那段之前的段落指出
...如果未指定,gbm将尝试猜测:...如果响应是一个因数,则采用多项式; ...
如果我指定distribution = "multinomial"
,我想知道实现了哪个损失函数。小插图中的文档可以通过
utils::browseVignettes("gbm")
不包含“多项式”一词或对该参数所隐含的任何描述。
我试图查看软件包的源代码,但也找不到那里的信息。看来相关的事情发生在文件/src/multinomial.cpp
中的C ++函数中,但是,我对C ++的了解太有限,无法理解那里发生的事情。