dmlc / dmlc/xgboost

[Feature request] Multi-class classification objective function using OneVersusOne method

Open
#6,242 4 comments 0 reactions 0 assignees View on GitHub
feature-request
Dominant language
C++
Stars
28.8k
Forks
8.9k
Avg merge
1d 12h
Merged PRs (30d)
54

Description

Hi,

For multi-class classification, we have the objective functions of 'multi:softmax' and 'multi"softprob', which basically are using the OneVersusOthers method (correct me if wrong).

In a lot of modeling execrise, for instance, we need to classify A, B, C1 and C2 where C1 and C2 are classes that share a lot similar characteristics. Thus when we have our primary focus on predicting C1, we use the OneVersusOther method, the model is trying to predict C1 versus (A, B and C2) and pick up some variables that may not be as reasonable as the one using the OneVersusOne like C1 vs A.

To make the request clear, it would be great if we have an additional objective function of 'multi:OneVursusOne' , that:
1. we can specify the reference group;
2. the optimization is using 1 versus 1 method. for example in the above example, it basically will evaluate C1 vs A, C2 vs A and B vs A.

best,
Chris

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reviewing the existing multi:softmax and multi:softprob objective functions and how XGBoost represents multiclass objectives. Define how a reference group and the requested one-versus-one comparisons should affect optimization. Done means the new objective is supported with the requested configuration and its behavior is validated against the stated class-comparison example.

Written by the indexing model from the issue text.

Assessment

Tech stack
cpp
Domain
machine-learning
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Mostly clear
Newbie friendliness
30/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.