机器学习平衡正负样本方法

https://www.zhihu.com/question/56662976
按照周志华老师《机器学习》中所说,假如反例998个,正例2个,那么只要学习方法学习一个永远将样本预测为反例的学习器,那么精度就能达到99.8%,这样的学习器是没有价值的。

关于正负样本不均衡的问题,最常见的方法就是过采样(如SMOTE)、欠采样(如EasyEnsemble)了,而像lr这样直接用概率做分类的,本来分类阈值是50%,所以可以根据正负样本比例调整阈值(叫做“阈值移动”)。

机器学习平衡正负样本方法
机器学习平衡正负样本方法
机器学习平衡正负样本方法

通过用不同的评价指标

不用准确率:准确率是我们最常见的评价指标,而且很容易理解,就是被分对的样本数除以所有的样本数
尝试用 精确度,召回率等等

精确度:被分为正样本中,真的是正样本的比例(查准率)
召回率:有多少正样本被正确分出来了(查全率)
PR曲线:查准-查全率曲线
F1得分:2/F1 = 1/P + 1/R

混淆矩阵:
机器学习平衡正负样本方法
ROC曲线:(需要会手画,很重要)
机器学习平衡正负样本方法

机器学习平衡正负样本方法
机器学习平衡正负样本方法
y轴:TPR = 按某个阈值,正样本被分为正的个数/总的正例个数
x轴:FPR = 安某个阈值,负样本被分为正的个数/总的负例个数
以二者为坐标,建立曲线,越接近左上角,越好

auc:roc曲线下面的面积就是

面试一句话:一个正例,一个负例,预测为正的概率值比预测为负的概率值还要大的可能性。

机器学习平衡正负样本方法