xgboost 实现多分类问题demo以及原理

本文先把xgboost支持的多分类问题的demo写起来,打印出生成的树结构,然后理解xgboost实现多分类问题的原理。这个顺序比较好理解一些。

xgboost 多分类问题 demo

这个demo从xgboost的源代码中就可以看到。在这个位置:/demo/multiclass_classification/train.py。train.py文件里的数据(dermatology.data)可以在  https://archive.ics.uci.edu/ml/machine-learning-databases/dermatology/dermatology.data  这个网址下载。下载下来的文件的后缀是.data,改成  .csv  或者  .txt  就可以直接用了。我把数据改成了  'data.txt'  。

现在来看看train.py 里的代码吧~

我把代码直接写在下边:这份数据的标签有6类,下边的代码我设置迭代了2轮。

import numpy as np
import xgboost as xgb

# label need to be 0 to num_class -1
data = np.loadtxt('data.txt', delimiter='\t',
        converters={33: lambda x:int(x == '?'), 34: lambda x:int(x) - 1})
sz = data.shape

train = data[:int(sz[0] * 0.7), :]
test = data[int(sz[0] * 0.7):, :]

train_X = train[:, :33]
train_Y = train[:, 34]

test_X = test[:, :33]
test_Y = test[:, 34]

xg_train = xgb.DMatrix(train_X, label=train_Y)
xg_test = xgb.DMatrix(test_X, label=test_Y)
# setup parameters for xgboost
param = {}
# use softmax multi-class classification
param['objective'] = 'multi:softmax'
# scale weight of
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值