XGBClassifier
我意外地发现,如果我将参数目标设置为多类并增加类的数量,我会更适合我的二进制数据集。然而,与此同时,拟合需要更长的时间并消耗两倍的内存。
不幸的是,我无法为这种行为创建一个玩具示例。但在下面的示例中,我仍然看到不同num_class
参数值的不同对数损失:
X = DataFrame([[0.5, 0.2, 0.1], [0.3, 0.4, 0.1], [0.4, 0.1, 0.5], [0.8, 0.4, 0.4]])
y = Series([0, 0, 1, 1])
regressor = xgb.XGBClassifier(subsample=1, n_estimators=2, max_depth=4, objective="multi:softprob", num_class=4)
regressor.fit(X, y)
num_class=2
导致 0.644 的对数损失,因为num_class=3
我得到 0.741 ,因为num_class=10
我得到 1.126。
我想这与一些早期停止标准或一些学习率适应有关?有任何想法吗?