trick

benchmark

就0-1分类问题而言,可以将训练集target整体均值作为测试集每个样本的预测概率。从而找到最基本的benchmark。

而且,还可以根据提交得分反推出1类占比。

\begin{split} logloss &&= - \frac{1}{n} \sum y_i \log p + (1 - y_i) \log (1-p) \newline
&&= - (r \log p + (1 - r) \log (1 - p)) \newline
&&= r \log \frac{1-p}{p} - \log (1 - p)\end{split}
由此推得1类占比:
\begin{split} r = (logloss + \log (1-p))/ \log \frac{1-p}{p}\end{split}

score

以logloss得分为例。

假设原训练集不均衡。在建模时通过采样使得训练集均衡,然后对测试集进行预测。通过设定threshold,将预测概率0-1化,计算准确率是没有问题的。

但是,由于采用logloss评分,实际上预测概率会偏大!因为真实的正负样本比例小于0.5!最简单的方法就是将预测结果除以采样后正负样本比例再乘以真实比例!