Logistic 回归是线性回归中一个很重要的部分。

Logistic 函数:

\[\sigma(x) = \frac {L} {1 + \exp(-k(x - x_0))}
\]

其中:

  • \(L\) 表示最大值
  • \(x_0\) 表示对称中心
  • \(k\) 表示倾斜度

一般来说,都将 \(L\) 设为 \(1\),而 \(k\) 和 \(x_0\) 在参数中控制。


认为特征只有一个,那么自然:

\[p(y = 1 | x) = \sigma(\omega_0 + \omega_1 x) = \frac 1 {1 + \exp(\omega_0 + \omega_1 x)}
\]

认为 \(\vec x\) 是特征向量,并且是增广向量,也就是:

\[\vec x = \begin{bmatrix}
x_0 & x_1 & \ldots & x_c & 1
\end{bmatrix}
\]

认为参数向量也是增广的:

\[\omega = \begin{bmatrix}
\omega_0 \\
\omega_1 \\
\vdots \\
\omega_c \\
1
\end{bmatrix}
\]

那么:

\[p(y = 1 | \vec x) = \sigma(\vec x \omega) = \frac 1 { 1 + \exp(\vec x \omega)}
\]

对于多组数据,\(X = \begin{bmatrix} \vec x_0 \\ \vec x_1 \\ \ldots \\ \vec x_m \end{bmatrix}\):

\[p(\vec y = 1 | X) = \sigma(X \omega)
\]

注意最终得到是一个向量,\(\sigma\) 函数作用于向量中的每个单独的元素。


利用交叉熵作为损失函数:

\[R(\omega) = - \frac 1 m \sum_{n = 1}^m \left(y_n \log \hat y_n + \left(1 - y_n \right)\log \left(1 - \hat y _n \right) \right)
\]

其中 \(\hat y\) 表示预测分类,而 \(y\) 表示实际分类。

由于 \(\sigma'(x) = \sigma(x)(1 - \sigma(x))\),自然的可以推出其偏导数:

\[
\begin{aligned}
\frac \delta {\delta \omega} R(\omega)
&= - \frac 1m \sum \left( y_n \frac {\hat y_n (1 - \hat y_n)}{\hat y_n} x_n + (1 - y_n) \frac {- \hat y_n (1 - \hat y_n)}{1 - \hat y_n} x_n \right) \\
&= - \frac 1m \sum \left( y_n - \hat y_n \right) x_n \\
\end{aligned}
\]

写成向量形式也就是:

\[- \frac 1 m (\hat y - y) \cdot x
\]

于是利用梯度下降算法:

\[\omega = \omega - \frac \alpha m X {\Large (}\sigma(X \omega) - y{\Large )}
\]

代码和梯度下降函数十分相似。


Feature Mapping

合理的利用线性回归可以解决很多复杂的问题。

大概率我们需要一个类似于圆的东西才可以拟合。

考虑到在高中我们学过:

\[C: Ax^2 + B y^2 + C x + D y + F =0
\]

可以表示一个圆,那么我们就可以利用重映射:

\[(x, y) \to \begin{bmatrix} 1 & x & y & xy & x^2 & y^2 \end{bmatrix}
\]

的方式将特征向量进行一点点简单的变换,那么自然就变成了对于多个参数的线性回归问题,一种可能的拟合是:

当然,我们也可以更复杂的利用这些参数,例如 \(x^3\),\(\sqrt x\),\(\frac 1 x\) 之类的参数,这取决于我们想要如何去拟合。


正则化参数

和平方损失函数的正则化方式一模一样,见 机器学习笔记(1): 梯度下降算法


Softmax Regression

其实就是多分类的 Logistic 回归:

\[p(y = c | \vec x) = {\rm softmax}(\vec x W) = \frac {\exp(\vec x W_c)}{\sum_{k = 1}^C \exp(\vec W_k)}
\]

其中 \(C\) 表示分类数,而 \(W = \begin{bmatrix} \omega_1 & \omega_2 & \ldots & \omega_C \end{bmatrix}\),其中 \(\omega_i\) 就表示某一个 Logistic 函数的参数。

由于其实就是多个 Logistic 函数,所以其偏导数和参数学习过程非常相似:

\[W = W - \frac \alpha m X \left( \sigma(X W) - Y \right)
\]

值得注意的是,对于每一个 \(\omega_i\) 减去同一个 \(\theta\) 结果不会改变,意味着一般都需要正则化。

机器学习笔记(2): Logistic 回归的更多相关文章

  1. 吴恩达机器学习笔记 —— 7 Logistic回归

    http://www.cnblogs.com/xing901022/p/9332529.html 本章主要讲解了逻辑回归相关的问题,比如什么是分类?逻辑回归如何定义损失函数?逻辑回归如何求最优解?如何 ...

  2. 机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归

    机器学习实战(Machine Learning in Action)学习笔记————05.Logistic回归 关键字:Logistic回归.python.源码解析.测试作者:米仓山下时间:2018- ...

  3. 机器学习(4)之Logistic回归

    机器学习(4)之Logistic回归 1. 算法推导 与之前学过的梯度下降等不同,Logistic回归是一类分类问题,而前者是回归问题.回归问题中,尝试预测的变量y是连续的变量,而在分类问题中,y是一 ...

  4. 机器学习实战笔记5(logistic回归)

    1:简单概念描写叙述 如果如今有一些数据点,我们用一条直线对这些点进行拟合(改线称为最佳拟合直线),这个拟合过程就称为回归.训练分类器就是为了寻找最佳拟合參数,使用的是最优化算法. 基于sigmoid ...

  5. 机器学习实战 - 读书笔记(05) - Logistic回归

    解释 Logistic回归用于寻找最优化算法. 最优化算法可以解决最XX问题,比如如何在最短时间内从A点到达B点?如何投入最少工作量却获得最大的效益?如何设计发动机使得油耗最少而功率最大? 我们可以看 ...

  6. 机器学习实战读书笔记(五)Logistic回归

    Logistic回归的一般过程 1.收集数据:采用任意方法收集 2.准备数据:由于需要进行距离计算,因此要求数据类型为数值型.另外,结构化数据格式则最佳 3.分析数据:采用任意方法对数据进行分析 4. ...

  7. 机器学习实践之Logistic回归

        关于本文说明,本人原博客地址位于http://blog.csdn.net/qq_37608890,本文来自笔者于2017年12月17日 19:18:31所撰写内容(http://blog.cs ...

  8. 机器学习之线性回归---logistic回归---softmax回归

    在本节中,我们介绍Softmax回归模型,该模型是logistic回归模型在多分类问题上的推广,在多分类问题中,类标签 可以取两个以上的值. Softmax回归模型对于诸如MNIST手写数字分类等问题 ...

  9. 机器学习(1):Logistic回归原理及其实现

    Logistic回归是机器学习中非常经典的一个方法,主要用于解决二分类问题,它是多分类问题softmax的基础,而softmax在深度学习中的网络后端做为常用的分类器,接下来我们将从原理和实现来阐述该 ...

  10. 机器学习实战之Logistic回归

    Logistic回归一.概述 1. Logistic Regression 1.1 线性回归 1.2 Sigmoid函数 1.3 逻辑回归 1.4 LR 与线性回归的区别 2. LR的损失函数 3. ...

随机推荐

  1. numpy函数向量化,np.vectorize

    import numpy as np import time def myfunc(a, b): if a>b: return a-b else: return a+b vfunc = np.v ...

  2. 力扣224(java)-基本计算器(困难)

    题目: 给你一个字符串表达式 s ,请你实现一个基本计算器来计算并返回它的值. 注意:不允许使用任何将字符串作为数学表达式计算的内置函数,比如 eval() . 示例 1: 输入:s = " ...

  3. HarmonyOS NEXT应用开发案例—自定义日历选择器

    介绍 本示例介绍通过CustomDialogController类显示自定义日历选择器. 效果图预览 使用说明 加载完成后显示主界面,点当前日期后会弹出日历选择器,选择日期后会关闭弹窗,主页面日期会变 ...

  4. Kubernetes 稳定性保障手册 -- 可观测性专题

    简介: 伴随大家对稳定性重视程度的不断提升.社区可观测性项目的火热,可观测性成为了一个很热门的话题,站在不同的角度会产生不同的理解. 我们从软件开发的生命周期出发,尝试形成对可观测性的一个宏观理解,并 ...

  5. 基于 MaxCompute 的智能推荐解决方案

    简介: 在互联网行业红利已过.在获客成本越来越高.在用户在线时长全网基本无增长以及信息大爆炸的情况下,如何更好的转化新用户和提升老用户粘性就变得至关重要,智能化的个性化推荐无疑是经过验证的重要手段之一 ...

  6. [FE] 关于网页的一些反爬手段的解析思路,比如 58 等

    这里主要是贴一些资料,有兴趣的可以再深入研究,比如做一些自动化库. www.cnblogs.com/TRHX/p/11740616.html blog.csdn.net/DzzzzzZzzzz/art ...

  7. 使用 SizeBench 分析 Exe 文件体积

    本文将介绍微软开源免费的 SizeBench 工具,使用 SizeBench 工具可以用来分析 Exe 二进制文件的体积,分析 Exe 文件大小里面有哪些是可以优化的 下载安装方式: 请前往应用商店安 ...

  8. 数据分析之pyecharts v1版本

    维护人员,感谢他们 https://github.com/chenjiandongx https://github.com/chfw https://github.com/kinegratii中文文档 ...

  9. 通过Google浏览器Cookie文件获取cookie信息,80以上版本有效

    public class ReadCookie { /// <summary> /// </summary> /// <param name="hostName ...

  10. 第二讲 Cadence建立工程和元件库

    第二讲 Cadence建立工程和元件库 1.创建工程,设置图纸参数.Design Entry CIS / Orcad Capture CIS / Option /Design Template,可以设 ...