一、问题
上篇文章中我们已经搞明白了逻辑回归的问题中,xgboost的train(),fit()方法以及不同参数的objective的对应的输出结果和关系,这篇文章我们就来研究下xgboost再做多分类时,train(),fit()建模后输出的值是怎么样的,它都有那些objective的参数,并且分别对应着怎样的输出?
二、objective参数比较
xgboost的官方文档关于多分类的objective如下:
从文档中我们可以看出,multi:softmax是使用softmax后产生的分类结果,而multi:softprob是输出的概率矩阵。我们这里以标签为0,1,2的三分类数据为例,前者输出的结果是一维数据,0,1,2的分类标签;后者输出的是n*3的概率矩阵(n为测试数据的条数)。
这两个参数之间有什么关系呢?
从这里我们可以看出,最终的分类标签是从概率矩阵中得到的,在n*3的概率矩阵中(如下图):
我们可以看出概率矩阵中每行数据的数值相加得1,我们取每行数据中概率值最大数值的下标作为最终的分类标签,然后给multi:softmax的输出结果做对比看是否一致。
xgb_params = {
'learning_rate': 0.1, # 步长
'n_estimators': 10,
'max_depth': 5,