二分类是什么?只有两种可能结果的分类问题
二分类(Binary Classification)是最基本的分类任务:把每个样本分到两个类别中的一个。两个类别通常被称为正类和负类,正类一般是我们关心或要检测的那一类,比如“是垃圾邮件”“患病”“是欺诈交易”。
常见的例子
二分类问题无处不在:判断一封邮件是不是垃圾邮件;根据检查结果判断病人是否患有某种疾病;判断一笔交易是否是欺诈;判断一位客户下个月是否会流失;判断一条评论是正面还是负面;判断一张图片中有没有人脸;判断一个零件是否合格。很多多分类问题也可以拆解成多个二分类问题来解决。
模型怎么做判断
大多数二分类模型并不直接输出“是”或“否”,而是先输出一个分数或概率,表示样本属于正类的可能性有多大,再与一个阈值进行比较:大于阈值判为正类,否则判为负类。默认的阈值通常是 0.5,但它可以根据实际需要调整:降低阈值,会把更多样本判为正类,找出更多的正例,但误报也会增多;提高阈值则相反。阈值的选择应当考虑两类错误各自的代价和类别的比例。
常用的方法
逻辑回归是二分类最经典的方法:对特征进行加权求和,再通过 Sigmoid 函数把结果转换为 0 到 1 之间的概率。支持向量机寻找间隔最大的分界面。决策树、随机森林和梯度提升树在表格数据上效果很好。朴素贝叶斯常用于文本分类。神经网络做二分类时,输出层通常只有一个神经元,接 Sigmoid 函数输出概率,训练时使用二元交叉熵损失。
如何评价
二分类的结果可以用一个 2 乘 2 的混淆矩阵来总结:真阳性、假阳性、真阴性、假阴性。在此基础上可以计算多种指标:准确率,所有样本中判对的比例;查准率(精确率),判为正类的样本中真正是正类的比例;查全率(召回率、灵敏度),所有正类样本中被找出来的比例;特异度,所有负类样本中被正确判为负类的比例;F1 分数,查准率和查全率的调和平均;ROC 曲线及其下面积 AUC,衡量模型在所有阈值下区分两类的整体能力;以及 P-R 曲线和平均精度。如果需要使用模型输出的概率,还要检查概率是否校准良好。
需要注意的问题
类别不平衡:很多二分类问题中正类非常少,此时准确率会产生误导,应关注查全率、F1 和 PR 曲线,并采用重采样、类别加权或调整阈值等方法。错误代价不对等:漏诊和误诊、漏掉欺诈和误拦正常交易,代价往往不同,应根据业务确定合适的阈值。数据泄露:要防止在特征中混入只有在知道结果之后才能获得的信息,否则模型在测试中表现很好,实际使用时却会失灵。