9分钟
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测试代码:
import xgboost as xgt
import numpy as np
class MatrixTest:
'''
测试 DMatrix
'''
def __init__(self):
self._matrix1 = xgt.DMatrix('data/train.svm.txt')
self._matrix2 = xgt.DMatrix(data=np.arange(0, 12).reshape((4, 3)),
label=[1, 2, 3, 4], weight=[0.5, 0.4, 0.3, 0.2],
silent=False, feature_names=['a', 'b', 'c'],
feature_types=['int','int','float'], nthread=2)
def print(self,matrix):
print('feature_names:%s'%matrix.feature_names)
print('feature_types:%s' % matrix.feature_types)
def run_get(self,matrix):
print('get_base_margin():', matrix.get_base_margin())
print('get_label():', matrix.get_label())
print('get_weight():', matrix.get_weight())
print('num_col():', matrix.num_col())
print('num_row():', matrix.num_row())
def test(self):
print('查看 matrix1 :')
self.print(self._matrix1)
# feature_names:['f0', 'f1', 'f2']
# feature_types:None
print('\n查看 matrix2 :')
self.print(self._matrix2)
# feature_names:['a', 'b', 'c']
# feature_types:['int', 'int', 'float']
print('\n查看 matrix1 get:')
self.run_get(self._matrix1)
# get_base_margin(): []
# get_label(): [1. 1. 1. 1. 0. 0. 0. 0.]
# get_weight(): []
# num_col(): 3
# num_row(): 8
print('\n查看 matrix2 get:')
self.run_get(self._matrix2)
# get_base_margin(): []
# get_label(): [1. 2. 3. 4.]
# get_weight(): [0.5 0.4 0.3 0.2]
# num_col(): 3
# num_row(): 4
print(self._matrix2.slice([0,1]).get_label())
# [1. 2.]
学员评价