3.4广义线性回归
一般形式:$y = g^{-1} \left( w^T x + b \right)$
单调可微的联系函数 (link function)
令 $g(\cdot) = \ln (\cdot)$ 则得到对数线性回归
$$\ln y = w^T x + b$$实际上是在用$e^{w^T x + b}$逼近$y$
3.5对率回归
线性回归模型产生的实值输出 $z = w^T x + b$
期望输出 $y \in {0, 1}$
理想的"单位阶跃函数" (unit-step function)
$$y = \begin{cases} 0, & z < 0; \\ 0.5, & z = 0; \\ 1, & z > 0, \end{cases}$$性质不好,需找"替代函数" (surrogate function)
常用单调可微、任意阶可导
$$y = \frac{1}{1 + e^{-z}}$$找 $z$和 $y$的联系函数
对数几率函数 (logistic function) 简称"对率函数"
以对率函数为联系函数:$y = \frac{1}{1 + e^{-z}}$
变为$y = \frac{1}{1 + e^{-(w^T x + b)}}$
即:$\ln \left( \frac{y}{1 - y} \right) = w^T x + b$
$\ln \left( \frac{y}{1 - y} \right)$称为几率 (odds),反映了 $x$ 作为正例的相对可能性(log odds,亦称 logit
)。
“对数几率回归”(logistic regression)简称“对率回归”
- 无需事先假设数据分布
- 可得到“类别”的近似概率预测
- 可直接应用现有数值优化算法求取最优解
注意:它是分类学习算法!
3.6多分类任务
一对多(One-vs-Rest, OvR)
原理 为每个类别训练一个独立的二分类器,将该类别作为正类,其他所有类别合并作为负类
实现步骤
- 假设共有K个类别
- 训练K个二分类器(如逻辑回归、SVM等)
- 第i个分类器的训练数据:
- 正样本:原始数据中标签为类别i的样本
- 负样本:原始数据中标签不为类别i的所有样本
- 预测时:
- 用所有K个分类器分别预测
- 选择输出概率/分数最高的类别作为最终预测结果
特点
- 优点:只需训练K个分类器,计算效率较高
- 缺点:当类别数很多时,每个分类器的负样本会远多于正样本,导致类别不平衡问题
一对一(One-vs-One, OvO)
原理 为每两个类别组合训练一个独立的二分类器,专门区分这两个类别
实现步骤
- 假设共有K个类别
- 训练K×(K-1)/2个二分类器(如逻辑回归、SVM等)
- 每个分类器(i,j)的训练数据:
- 只使用原始数据中标签为i或j的样本
- 类别i作为正类,类别j作为负类(或反之)
- 预测时:
- 让所有分类器进行预测并记录"投票"
- 统计每个类别获得的票数
- 选择得票数最多的类别作为最终预测结果
特点
- 优点:每个分类器只关注两个类别,训练数据更均衡
- 缺点:需要训练O(K²)量级的分类器,当K很大时计算开销显著增加