IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 数据结构与算法 -> 机器学习——线性回归与逻辑回归 -> 正文阅读

[数据结构与算法]机器学习——线性回归与逻辑回归

两者的优缺点

优点

  • 模型简单,原理容易理解
  • 计算代价不高,易于理解和实现
    缺点
  • 易过拟合
  • 特征很多的时候,效果 不好
  • 处理线性问题效果比较好,而对于更复杂的问题可能效果较差

逻辑回归LR推导

基本条件

  • 线性回归: ∑ i = 0 m θ i x i \sum^m_{i=0}\theta_ix_i i=0m?θi?xi?
  • sigmoid函数: g ( z ) = 1 1 + e ? z g(z)=\frac{1}{1+e^{-z}} g(z)=1+e?z1?,求导:KaTeX parse error: Expected group after '^' at position 5: g(z)^?'=g(z)(1-g(z))
  • 逻辑回归: h θ ( x ) = 1 1 + e ? θ T x h_{\theta}(x)=\frac{1}{1+e^{-\theta^Tx}} hθ?(x)=1+e?θTx1?

损失函数推导
对于分类任务:
P ( y = 1 ∣ x ; θ ) = h θ ( x ) P(y=1|x;\theta)=h_\theta(x) P(y=1x;θ)=hθ?(x)
P ( y = 0 ∣ x ; θ ) = 1 ? h θ ( x ) P(y=0|x;\theta)=1-h_\theta(x) P(y=0x;θ)=1?hθ?(x)
P ( y ∣ x ; θ ) = ( h θ ( x ) ) y ( 1 ? h θ ( x ) ) 1 ? y P(y|x;\theta) = (h_\theta(x))^y(1-h_\theta(x))^{1-y} P(yx;θ)=(hθ?(x))y(1?hθ?(x))1?y
似然函数: L ( θ ) = ∏ i = 1 m ( h θ ( x i ) ) y i ( 1 ? h θ ( x i ) ) 1 ? y i L(\theta) = \prod^m_{i=1}(h_\theta(x_i))^{y_i}(1-h_\theta(x_i))^{1-y_i} L(θ)=i=1m?(hθ?(xi?))yi?(1?hθ?(xi?))1?yi?
对数似然: l o g L ( θ ) = ∑ i = 1 m [ y i l o g h θ ( x i ) + ( 1 ? y i ) l o g ( 1 ? h θ ( x I ) ) ] logL(\theta)=\sum^m_{i=1}[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_I))] logL(θ)=i=1m?[yi?loghθ?(xi?)+(1?yi?)log(1?hθ?(xI?))]
引入 ? 1 m -\frac{1}{m} ?m1?,得到损失函数:
L o s s = ? 1 m ∑ i = 1 m [ y i l o g h θ ( x i ) + ( 1 ? y i ) l o g ( 1 ? h θ ( x I ) ) ] Loss=-\frac{1}{m}\sum^m_{i=1}[y_ilogh_\theta(x_i)+(1-y_i)log(1-h_\theta(x_I))] Loss=?m1?i=1m?[yi?loghθ?(xi?)+(1?yi?)log(1?hθ?(xI?))]

梯度求导
目标函数为 J ( θ ) = ? 1 m l o g L ( θ ) J(\theta) = -\frac{1}{m}logL(\theta) J(θ)=?m1?logL(θ),求最小值:
? J ( θ ) ? θ = ? J ( θ ) ? h θ ( x ) ? ? h θ ( x ) ? θ = ? 1 m ∑ i = 1 m [ y i 1 h θ ( x i ) ? h θ ( x i ) ? θ ? ( 1 ? y i ) 1 1 ? h θ ( x i ) ? h θ ( x i ) ? θ ] = ? 1 m ∑ i = 1 m [ y i h θ ( x i ) ? ( 1 ? y i ) 1 ? h θ ( x i ) ] h θ ( x i ) ( 1 ? h θ ( x i ) ) x i = ? 1 m ∑ i = 1 m [ y i ( 1 ? h θ ( x i ) ) ? ( 1 ? y i ) h θ ( x i ) ] x i = ? 1 m ∑ i = 1 m [ h θ ( x i ) ? y i ) ] x i \begin{aligned} \frac{\partial J(\theta)}{\partial \theta} &=\frac{\partial J(\theta)}{\partial h_{\theta}(x)} \cdot \frac{\partial h_{\theta}(x)}{\partial \theta} \\=-\frac{1}{m} \sum_{i=1}^{m}\left[y_{i} \frac{1}{h_{\theta}\left(x_{i}\right)} \frac{\partial h_{\theta}\left(x_{i}\right)}{\partial \theta}-\left(1-y_{i}\right) \frac{1}{1-h_{\theta}\left(x_{i}\right)} \frac{\partial h_{\theta}\left(x_{i}\right)}{\partial \theta}\right] \\=-\frac{1}{m} \sum_{i=1}^{m}\left[\frac{y_{i}}{h_{\theta}\left(x_{i}\right)}-\frac{\left(1-y_{i}\right)}{1-h_{\theta}\left(x_{i}\right)}\right] h_{\theta}\left(x_{i}\right)\left(1-h_{\theta}\left(x_{i}\right)\right) x_{i} \\ &=-\frac{1}{m} \sum_{i=1}^{m}\left[y_{i}\left(1-h_{\theta}\left(x_{i}\right)\right)-\left(1-y_{i}\right) h_{\theta}\left(x_{i}\right)\right] x_{i} \\ &\left.=-\frac{1}{m} \sum_{i=1}^{m}\left[h_{\theta}\left(x_{i}\right)-y_{i}\right)\right] x_{i} \end{aligned} ?θ?J(θ)?=?m1?i=1m?[yi?hθ?(xi?)1??θ?hθ?(xi?)??(1?yi?)1?hθ?(xi?)1??θ?hθ?(xi?)?]=?m1?i=1m?[hθ?(xi?)yi???1?hθ?(xi?)(1?yi?)?]hθ?(xi?)(1?hθ?(xi?))xi??=?hθ?(x)?J(θ)???θ?hθ?(x)?=?m1?i=1m?[yi?(1?hθ?(xi?))?(1?yi?)hθ?(xi?)]xi?=?m1?i=1m?[hθ?(xi?)?yi?)]xi??

每次梯度下降,迭代后的参数:
θ j ? = θ j ? α 1 m ∑ i = 1 m [ h θ ( x i ) ? y i ) ] x i \left.\theta_{j}^{*}=\theta_{j}-\alpha \frac{1}{m} \sum_{i=1}^{m}\left[h_{\theta}\left(x_{i}\right)-y_{i}\right)\right] x_{i} θj??=θj??αm1?i=1m?[hθ?(xi?)?yi?)]xi?
α \alpha α是学习率

回归和分类的区别

  • 两者的预测目标变量类型不同,回归问题是连续变量,分类问题离散变量
  • 回归问题是定量问题,分类问题是定性问题
  • 回归目标是得到最优拟合,而分类目标是得到决策边界
  • 评价指标不同:回归的评价指标通常是MSE,分类指标通常是Accuracy, Prescision, Recall

逻辑回归特征是否归一化

逻辑回归本身不受量纲影响,但是其使用梯度下降法求解参数量纲影响大,如果不进行特征归一化,可能由于变量不同量纲导致参数迭代求解缓慢

如何提升LR的模型性能

  • 构造更多的数据,无论评估模型还是训练,都会更加可靠
  • 挖掘更有价值的Feature,即特征工程
  • 加入正则化项,L1/L2.交叉验证确定最优的参数。这会加快模型开发速度,会自动化筛选变量

逻辑回归为啥要做特征离散化

非线性:逻辑回归属于广义线性模型,表达能力受限;单变量离散化为N个后,每个变量有单独的权重,相当于为模型引入了非线性,能够提升模型表达能力,加大拟合;离散特征的增加和减少都很容易,易于模型的快速迭代
速度快:稀疏向量内积乘法运算速度快,计算结果方便存储,容易扩展
鲁棒性:离散化后的特征对异常数据有很强的鲁棒性:比如一个特征是“年龄>30是1,否则0”。如果特征没有离散化,一个异常数据“年龄300岁”会给模型造成很大 的干扰
方便交叉与特征组合:离散化后可以进行特征交叉,由M+N个变量变为M*N个变量,进一步引入非线性,提升表达能力
简化模型:特征离散化后,起到了简化逻辑回归模型的作用,降低了模型过拟合的风险

最小二乘法在什么条件下与极大似然估计等价

当模型估计值和真实值间的残差项服从均值是0的高斯分布时,就有最小二乘估计和最大似然估计等价

逻辑回归为什么不用平方损失函数

  • 因为平方损失函数权重更新过慢,采用交叉熵损失函数可以完美解决过慢的问题,它具有误差大的时候,权重更新快;误差小的时候,权重更新慢的良好性质
  • sigmoid作为激活函数的时候,如果采用均方误差损失函数,那么这是一个非凸优化问题,不易求解,容易陷入局部最优解。而采用交叉熵损失函数依然是一个凸优化问题

LR可以处理非线性情况吗?

可以,同样可以使用核方法

LR的参数可以初始化0吗?

可以
在逻辑回归中,
y ^ = sigmoid ? ( w T x + b ) \hat{y}=\operatorname{sigmoid}\left(w^{T} x+b\right) y^?=sigmoid(wTx+b)
sigmoid ? sin ? ( t ) = 1 1 + e ? t \operatorname{sigmoid}^{\sin }(t)=\frac{1}{1+e^{-t}} sigmoidsin(t)=1+e?t1?
sigmoid ? ′ ( t ) = sigmoid ? ( t ) ? ( 1 ? sigmoid ? ( t ) ) \operatorname{sigmoid}^{\prime}(t)=\operatorname{sigmoid}(t) \cdot(1-\operatorname{sigmoid}(t)) sigmoid(t)=sigmoid(t)?(1?sigmoid(t))
Loss = ? y ln ? y ^ ? ( 1 ? y ) ln ? ( 1 ? y ^ ) =-y \ln \hat{y}-(1-y) \ln (1-\hat{y}) =?ylny^??(1?y)ln(1?y^?)
因此在LR的反向传播中,我们假设 w = [ w 1 , w 2 ] T w=[w_1,w_2]^T w=[w1?,w2?]T,则
w 1 ? = w 1 ? α . ? L o s s ? w 1 w^*_1 = w_1-\alpha.\frac{\partial{Loss}}{\partial{w_1}} w1??=w1??α.?w1??Loss?

? ?Loss? ? w 1 = ? ?Loss? ? y ^ ? y ^ ? ( w T x + b ) ? ? ( w T x + b ) ? w 1 \frac{\partial \text { Loss }}{\partial w_{1}}=\frac{\partial \text { Loss }}{\partial \hat{y}} \cdot \frac{\hat{y}}{\partial\left(w^{T} x+b\right)} \cdot \frac{\partial\left(w^{T} x+b\right)}{\partial w_{1}} ?w1???Loss??=?y^???Loss????(wTx+b)y^????w1??(wTx+b)?
= ( ? y y ^ ? 1 ? y 1 ? y ^ ) ? ( y ^ ( 1 ? y ^ ) ) ? x 1 =\left(-\frac{y}{\hat{y}}-\frac{1-y}{1-\hat{y}}\right) \cdot(\hat{y}(1-\hat{y})) \cdot x_{1} =(?y^?y??1?y^?1?y?)?(y^?(1?y^?))?x1?
= ( ? y + y ^ ) ? x 1 =(-y+\hat{y}) \cdot x_{1} =(?y+y^?)?x1?
? L o s s ? b = y ^ ? y \frac{\partial L o s s}{\partial b}=\hat{y}-y ?b?Loss?=y^??y
因而
w 1 ? = w 1 ? α ( y ^ ? y ) ? x 1 w_{1}^{*}=w_{1}-\alpha(\hat{y}-y) \cdot x_{1} w1??=w1??α(y^??y)?x1?
w 2 ? = w 2 ? α ( y ^ ? y ) ? x 2 w_{2}^{*}=w_{2}-\alpha(\hat{y}-y) \cdot x_{2} w2??=w2??α(y^??y)?x2?
b ? = b ? α ( y ^ ? y ) b^{*}=b-\alpha(\hat{y}-y) b?=b?α(y^??y)
可以看出,就算初始 w 1 , w 2 , b w_1,w_2,b w1?,w2?,b设为0,后续梯度还是会更新

  数据结构与算法 最新文章
【力扣106】 从中序与后续遍历序列构造二叉
leetcode 322 零钱兑换
哈希的应用:海量数据处理
动态规划|最短Hamilton路径
华为机试_HJ41 称砝码【中等】【menset】【
【C与数据结构】——寒假提高每日练习Day1
基础算法——堆排序
2023王道数据结构线性表--单链表课后习题部
LeetCode 之 反转链表的一部分
【题解】lintcode必刷50题<有效的括号序列
上一篇文章      下一篇文章      查看所有文章
加:2022-04-30 08:55:25  更:2022-04-30 08:57:25 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/26 5:48:21-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码