* Re-implement ROC-AUC. * Binary * MultiClass * LTR * Add documents. This PR resolves a few issues: - Define a value when the dataset is invalid, which can happen if there's an empty dataset, or when the dataset contains only positive or negative values. - Define ROC-AUC for multi-class classification. - Define weighted average value for distributed setting. - A correct implementation for learning to rank task. Previous implementation is just binary classification with averaging across groups, which doesn't measure ordered learning to rank.
15 lines
372 B
C++
15 lines
372 B
C++
#include <gtest/gtest.h>
|
|
#include <xgboost/span.h>
|
|
#include "../../../src/common/common.h"
|
|
|
|
namespace xgboost {
|
|
namespace common {
|
|
TEST(ArgSort, Basic) {
|
|
std::vector<float> inputs {3.0, 2.0, 1.0};
|
|
auto ret = ArgSort<bst_feature_t>(Span<float>{inputs});
|
|
std::vector<bst_feature_t> sol{2, 1, 0};
|
|
ASSERT_EQ(ret, sol);
|
|
}
|
|
} // namespace common
|
|
} // namespace xgboost
|