7.1.1 数据格式
xgboost
支持直接从下列格式的文件中加载数据:libsvm
文本格式的文件。其格式为:xgboost binary buffer
文件
dtrain = xgb.DMatrix('train.svm.txt') #libsvm 格式
dtest = xgb.DMatrix('test.svm.buffer') # xgboost binary buffer 文件
xgboost
也支持从二维的numpy array
中加载数据你也可以从
scipy.sparse array
中加载数据csr = scipy.sparse.csr_matrix((dat, (row, col)))
dtrain = xgb.DMatrix(csr)
7.1.2 DMatrix
DMatrix
: 由xgboost
内部使用的数据结构,它存储了数据集,并且针对了内存消耗和训练速度进行了优化。参数:
data
:表示数据集。可以为:- 一个字符串,表示文件名。数据从该文件中加载
- 一个二维的
numpy array
, 表示数据集。
label
:一个序列,表示样本标记。missing
: 一个值,它是缺失值的默认值。weight
:一个序列,给出了数据集中每个样本的权重。silent
: 一个布尔值。如果为True
,则不输出中间信息。nthread
:
属性:
feature_names
: 返回每个特征的名字feature_types
: 返回每个特征的数据类型
方法:
.get_base_margin()
: 返回一个浮点数,表示DMatrix
的base margin
。.set_base_margin(margin)
: 设置DMatrix
的base margin
- 参数:
margin
: t一个序列,给出了每个样本的prediction margin
- 参数:
.get_float_info(field)
: 返回一个numpy array
, 表示DMatrix
的 。.set_float_info(field,data)
: 设置DMatrix
的float property
。.set_float_info_npy2d(field,data)
: 设置DMatrix
的float property
。这里的data
是二维的numpy array
参数:
field
: 一个字符串,给出了information
的字段名。注:意义未知。data
: 一个numpy array
,给出了数据集每一个点的float information
.get_uint_info(field)
: 返回DMatrix
的unsigned integer property
。.set_unit_info(field,data)
: 设置DMatrix
的unsigned integer property
。参数:
field
: 一个字符串,给出了information
的字段名。注:意义未知。data
: 一个numpy array
, 给出了数据集每个点的uint information
- 返回值:一个
numpy array
,表示数据集的unsigned integer information
.get_label()
: 返回一个numpy array
,表示DMatrix
的label
。.set_label_npy2d(label)
: 设置样本标记。这里的label
为二维的numpy array
- 参数:
label
: 一个序列,表示样本标记
- 参数:
.get_weight()
: 一个numpy array
,返回DMatrix
的样本权重。.set_weight(weight)
: 设置样本权重。.set_weight_npy2d(weight)
: 设置样本权重。这里的 为二维的numpy array
- 参数:
weight
:一个序列,表示样本权重
- 参数:
.num_col()
: 返回DMatrix
的列数- 返回值:一个整数,表示特征的数量
.num_row()
: 返回DMatrix
的行数- 返回值:一个整数,表示样本的数量
.set_group(group)
: 设置DMatrix
每个组的大小(用于排序任务)- 参数:
group
: 一个序列,给出了每个组的大小
- 参数:
slice(rindex)
: 切分DMaxtrix
,返回一个新的DMatrix
。 该新的DMatrix
仅仅包含rindex
- 参数:
rindex
: 一个列表,给出了要保留的index
- 返回值:一个新的
DMatrix
对象
- 参数:
示例:
data/train.svm.txt
的内容:1 1:1 2:2
1 1:2 2:3
1 1:3 2:4
1 1:4 2:5
0 1:5 2:6
0 1:6 2:7
0 1:7 2:8
0 1:8 2:9
测试代码: