原论文地址:here,本文主要记录论文中重要的部分。
1. Abstract
CatBoost 中最主要的两个算法性的特点在于:实现了有序提升,排列驱动以代替经典算法;一种新颖的算法处理分类变量。这些方法旨在解决prediction shift(普遍存在于梯度提升算法中)。
2. Introduction
所有现存的梯度提升算法都存在统计学上的问题。经过多次提升的预测模型 F F F 依赖于训练样本的目标变量的。我们论证了:这会导致来自训练样本中 X k X_k Xk 的 F ( X k ) ∣ X k F(X_k)|X_k F(Xk)∣Xk 分布与测试样本中 X X X 的 F ( X k ) ∣ X k F(X_k)|X_k F(Xk)∣Xk 分布的偏移。这最终会导致训练模型的prediction shift。我们将这种的问题称作:target leakage。
3. Categorical features
一种有效的处理分类特征的方法就是:使用一个计算出的数值(target statistic (TS))来代替 x k i x_k^{i} xki (表示第k个训练样本的第i个分类型特征)。这个数值TS计算如下: x ^ k i = E ( y ∣ x i = x k i ) \hat x_k^{i}=E(y|x^i=x_k^i) x^ki=E(y∣xi=xki)。
3.1 Greedy TS
由于某些类别出现次数少,所以需要做平滑处理:
x ^ k i = ∑ j = 1 n I { x j i = x k i } ⋅ y j + a P ∑ j = 1 n I { x j i = x k i } + a \hat x_k^{i}=\frac{\sum_{j=1}^{n}I_{\{x_j^i=x_k^i\}}\cdot y_j+aP}{\sum_{j=1}^{n}I_{\{x_j^i=x_k^i\}}+a} x^ki=∑j=1nI{
xji=xki}+a∑j=1nI{
xji=xki}⋅yj