【问题标题】:Create xgboost Dmatrix in c++在 C++ 中创建 xgboost Dmatrix
【发布时间】:2016-05-19 07:09:05
【问题描述】:

我想在 c++ 项目中使用 xgboost 进行图像分类。我有特征矩阵 (hist) cv::Mat_ 和标签向量 std::vector,如何在 c++ 中创建 xgboost::DMatrix?我想我应该使用 DMatrix::Create(),但我不明白我应该传递哪些参数。

std::vector<int> labels; //read this labels from csv
auto features = extract_features(img_ident, dir); 
cv::Mat_<float> training_set(features);

xgboost::DMatrix xgb_data = xgboost::DMatrix::Create(????);

【问题讨论】:

    标签: c++ xgboost


    【解决方案1】:

    使用 c_api:

    DMatrixHandle xgbData;
    int success = XGDMatrixCreateFromMat(&features[0], m_nRowCount, m_nColCount, 0, &xgbData);
    if(success != 0)
      THROW_ERROR("Error creating DMatrix\n");
    
    success = XGDMatrixSetFloatInfo(xgbData, "label", &matrixYLabels[0], m_nRowCount);
    if(success != 0)
      THROW_ERROR("Error setting Y values in DMatrix\n");
    
    success = XGDMatrixSaveBinary(xgbData, filename, false);
    if(success != 0)
      THROW_ERROR("Error saving DMatrix\n");
    

    【讨论】:

      猜你喜欢
      • 2017-05-10
      • 2017-08-02
      • 2018-03-20
      • 1970-01-01
      • 2017-04-27
      • 2023-03-22
      • 2016-07-05
      • 2022-08-11
      • 2019-04-29
      相关资源
      最近更新 更多