课程评价 (0)

请对课程作出评价:
0/300

学员评价

暂无精选评价
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.]