机器学习-入门-线性模型(2)
3.4广义线性回归
一般形式: y = g − 1 ( w T x + b ) y = g^{-1} \left( w^T x + b \right) y=g−1(wTx+b)
单调可微的联系函数 (link function)
令 g ( ⋅ ) = ln ( ⋅ ) g(\cdot) = \ln (\cdot) g(⋅)=ln(⋅) 则得到对数线性回归
ln y = w T x + b \ln y = w^T x + b lny=wTx+b
实际上是在用 e w T x + b e^{w^T x + b} ewTx+b逼近 y y y
3.5对率回归
线性回归模型产生的实值输出 z = w T x + b z = w^T x + b z=wTx+b
期望输出 y ∈ { 0 , 1 } y \in \{0, 1\} y∈{0,1}
理想的"单位阶跃函数" (unit-step function)
y = { 0 , z < 0 ; 0.5 , z = 0 ; 1 , z > 0 , y = \begin{cases} 0, & z < 0; \\ 0.5, & z = 0; \\ 1, & z > 0, \end{cases} y=⎩ ⎨ ⎧0,0.5,1,z<0;z=0;z>0,
性质不好,需找"替代函数" (surrogate function)
常用单调可微、任意阶可导
y = 1 1 + e − z y = \frac{1}{1 + e^{-z}} y=1+e−z1
找 z z z和 y y y的联系函数
对数几率函数 (logistic function) 简称"对率函数"
以对率函数为联系函数: y = 1 1 + e − z y = \frac{1}{1 + e^{-z}} y=1+e−z1
变为 y = 1 1 + e − ( w T x + b ) y = \frac{1}{1 + e^{-(w^T x + b)}} y=1+e−(wTx+b)1
即: ln ( y 1 − y ) = w T x + b \ln \left( \frac{y}{1 - y} \right) = w^T x + b ln(1−yy)=wTx+b
ln ( y 1 − y ) \ln \left( \frac{y}{1 - y} \right) ln(1−yy)称为几率 (odds),反映了 x x 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很大时计算开销显著增加