线性模型
基本形式
【引言:为什么学习线性模型】
线性模型(linear\ model)形式简单、易于建模,但却蕴含着机器学习中一些重要的基本思想。
许多功能更为强大的非线性模型(nonlinear\ model)可在线性模型的基础上通过引入层级结构或高级映射而得。
所以,首先学习线性模型是必要的。
【定义:什么是线性模型】
给定由 d 个属性描述的示例 x = (x_1;x_2;...;x_d),其中 x_i 是 x 在第 i 个属性上的取值,
线性模型试图学得一个通过属性的线性组合来进行预测的函数,即
f(x)=w_1x_1+w_2x_2+...+w_dx_d+b
一般用向量形式写成
f(x)=w^Tx+b
其中w=(w_1;w_2;...;w_d),w 和 b 学得之后,模型就得以确定了。
【优点:线性模型的优点】
由于w直观表达了各属性在预测中的重要性,因此线性模型有很好的可解释性(comprehensibility)亦称可理解性(understandability)
例如:若在西瓜问题中学得“f_{好瓜}(x)=0.2x_{色泽}+0.5x_{根蒂}+0.3x_{敲声}+1”,
则意味着可通过综合考虑色泽、根蒂和敲声来判断瓜好不好,其中根蒂最要紧,而敲声比色泽更重要。
【Overview】
本章介绍几种经典的线性模型。
我们先从回归任务开始,然后讨论二分类和多分类任务。
线性回归
【定义:回归中的线性模型——线性回归】
给定数据集D={(x_1,y_1),(x_2,y_2),...,(x_m,y_m)},其中x_i=(x_{i1};x_{i2};...;x_{id}),y_i\in \mathbb{R}。
“线性回归”(linear\ regression)试图学得一个线性模型以尽可能准确地预测实值输出标记。
【简化】??????????这是干啥??????????为啥要这样?????????
为便于讨论,此时我们忽略关于属性的下标,即D={\{(x_i,y_i)\}}_{i=1}^{m},其中x_i\in \mathbb{R}
对于离散属性,
- 若属性间存在“序”(order)关系,可通过连续化将其转化为连续值,
例如,二值属性“身高”的取值“高”“矮”可转化为{1.0,0.1},三值属性“高度”的取值“高”“中”,“低”可转化为{1.0,0.5,0.0}
- 若属性间不存在序关系,假定有k个属性,则通常转化为k维向量,
例如属性“瓜类”的取值“西瓜”,“南瓜”,“黄瓜”可转化为{0,0,1},(0,1,0),(1,0,0)
【例子:简单的情形——属性只有一个(一元线性回归)】
我们先考虑一种最简单的情形:输入属性的数目只有一个。
线性回归试图学得
f(x_i)=wx_i+b,使得 f(x_i)\simeq y_i
如何确定 w 和 b 呢?
显然,关键在于如何衡量 f(x) 与 y 之间的差别。
2.3节介绍过,均方误差(2.2)是回归任务中最常用的性能度量,因此我们可试图让均方误差最小化,即
(w^*,b^*)=\mathop{\arg\min}_{(w,b)}\sum_{i=1}^{m} (f(x_i)-y_i)^2=\mathop{\arg\min}_{(w,b)}\sum_{i=1}^{m} (y_i-wx_i-b)^2
【例子:更一般的情形——有 d 个属性描述(多元线性回归)】
此时我们试图学得
【例子:进行变化——对数线性回归】
线性模型虽然简单,却有丰富的变化。
【例子:推广到一般——广义线性模型】
更一般的,考虑单调可微函数 g(·) ,令
y=g^{-1}(w^Tx+b)
这样的模型称为“广义线性模型”(generalized\ linear\ model)
其中函数 g(·) 称为“联系函数”(link\ function)
显然,对数线性回归是广义线性模型在 g(·)=ln(·) 时的特例
逻辑回归
线性判别分析
多分类学习
类别不平衡问题
【推荐】还在用 ECharts 开发大屏?试试这款永久免费的开源 BI 工具!
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步