For unbalanced data in binary classification this is very important. The logic in xgboost is that class value of 0 = negative class and class value of 1 = positive class. In KNIME however it’s not possible to use a integer as class value for xgboost and there is no setting to define which is the positive class.
It’s completely obscure which class is assigned the positive class. In fact I have string column with 0/1 as classes and 0 seems to be labeled as the positive class.
My suggestion is to have a configuration option to select the positive class value and also allow integer classes where 0 per default is negative class.
thank you for bringing this up.
I’ll open a feature request for the selection of the positive class value where I’ll also mention the suggestion about integers but I don’t see the reason for it if it’s possible to specify the positive class.
Until this is implemented you will have to make do with a workaround that achieves the desired behavior:
Currently the classes are assigned in the order of the possible values of the class column i.e. the first possible value gets assigned 0, the second 1 and so on. Therefore you can specify the positive class by changing the order of the possible values via the Edit Nominal Domain node.