首页 > 其他分享 >[machine-learning学习笔记]逻辑回归

[machine-learning学习笔记]逻辑回归

时间:2023-03-09 18:24:20浏览次数:32  
标签:frac 函数 回归 笔记 machine learning 线性 theta partial

逻辑回归

目的:分类

一、Sigmoid函数

​ 公式如下:

\[g(z) = \frac {1}{1+e^{-z}} \]

sigmoid

​ 图中\(Sigmoid\)函数将任意输入映射到\([0,1]\)区间,我们通过线性回归的到预测值,再将该值映射到\(Sigmoid\)函数中,这样就完成了值到概率的转换。变成了分类任务。

​ 利用\(Sigmoid\)函数得出的预测函数:

\[h_{\theta} = g(\theta^Tx) = \frac{1}{1+e^{-\theta x}} \]

​ 其中

\[\theta_0 + \theta_1x_1+,...,+\theta_nx_n = \sum_{i=1}^{n}\theta_ix_i = \theta^Tx \]

​ 这个就和线性回归中的函数很像了。

​ 由于是二分类,只有\(True\)、\(False\)两种结果,因此由上述函数得到的预测分类的概率分别为:

\[P(y=1|x;\theta) = h_{\theta}(x) \]

\[P(y=0|x;\theta) = 1-h_{\theta}(x) \]

​ 因此

\[P(y|x;\theta) = (h_{\theta}(x))^y(1-h_{\theta}(x))^{1-y} \]

​ 解释:这里只不过是把上面\(P(y=1)P(y=0)\)整合了一下。

​ 利用似然函数来得到损失函数(如果不太清楚直接看损失函数就可以,这里损失函数与线性回归不一样),似然函数如下:

\[L(\theta) = \prod_{i=1}^m(h_{\theta}(x_i))^{y_i}(1-h_{\theta}(x_i))^{1-y_{i}} \]

​ 将似然函数取对数得损失函数为:

\[l(\theta) = logL(\theta) = \sum_{i=1}^{m}(y_ilogh_{\theta}(x_i)+(1-y_i)log(1-h_{\theta}(x))) \]

​ 我们得到代价函数为(\(for\quad each \quad\theta\)):

\[J(\theta) = -\frac{1}{m}\sum_{i=1}^m[l(\theta)] \]

​ 我们的目标为最小化代价函数。

​ 那么,为什么要这样来构造损失函数呢?

​ 因为如果按照线性回归的方法来构造损失函数,那么得到的函数并不是凸函数,由于初始化参数不同,很容易走到局部最小值点而非全局最小值点。采用如上方法构造的函数为凸函数,这使得其能更好的利用到梯度下降算法中。(关于推导记住就行)

​ 我们采用梯度下降法时的偏导数如下,

\[\frac {\partial}{\partial_{\theta_j}}J(\theta) = \frac{1}{m}\sum_{i=1}^m(h_{\theta}(x_i)-y_i)x_i^j \]

​ 因此,我们进行同步更新时的柿子:(看起来和线性回归差不多)

\[\theta_j = \theta_j-\alpha\frac {\partial}{\partial_{\theta_j}}J(\theta) \]

​ 总结:逻辑回归是要预测二分类问题,在线性回归的基础上增加了一个\(sigmoid\)外壳,然后改写损失函数,进而将其变为凸函数,从而更好地进行梯度下降操作。

标签:frac,函数,回归,笔记,machine,learning,线性,theta,partial
From: https://www.cnblogs.com/violentbear/p/17199528.html

相关文章

  • GO语言学习笔记-接口篇 Study for Go ! Chapter six - Interface
    持续更新Go语言学习进度中......GO语言学习笔记-类型篇StudyforGo!Chapterone-Type-slowlydance2me-博客园(cnblogs.com)GO语言学习笔记-表达式篇Study......
  • FLINK实时数仓笔记2
    离线架构优点:耦合性能低,稳定性高缺点:时效性差一点说明:1.项目经理(架构师)是大公司出来的,追求系统的稳定性2.耦合性低,稳定性高3.考虑到公司未来的发展,数据量一定会变得......
  • C++笔记--函数、预处理
    1函数1.1函数的介绍1.1.1函数的概述函数是c语言的功能单位。实现一个功能可以封装一个函数来实现。定义函数的时候一切以功能为目的,根据功能去定函数的参数和返回值......
  • React学习笔记(三)—— 组件高级
    一、列表和keys1.1、ListsandKeys(列表和键)首先,我们回顾一下在javascript中怎么去变换列表。下面了的代码,我们用到了数组函数的map方法来实现数组的每一个值变成它的2......
  • 《逆向工程核心原理》学习笔记3
    《逆向工程核心原理》学习笔记3http://blog.iz4.cc/note/2021/11/%E3%80%8A%E9%80%86%E5%90%91%E5%B7%A5%E7%A8%8B%E6%A0%B8%E5%BF%83%E5%8E%9F%E7%90%86%E3%80%8B%E5%AD%......
  • Flutter 笔记
    FlutterFlutter核心原理底层绘制采用OpenGL,调用原生绘图接口,实现高性能什么是UI框架?由于操作系统直接操作API来绘制图片十分繁琐,将操作系统原生API封装在一个编程框架......
  • 论文笔记(一):基于特征动态对齐和细化的VI图像融合--平移鲁棒融合
    文章标题Featuredynamicalignmentandrefinementforinfrared–visibleimagefusion:TranslationrobustfusionHuafengLi,云南昆明科技大学;JunzhiZhao,云南......
  • 【笔记】docker compose安装
    1、查看当前最新dockercompose发行版本https://github.com/docker/compose/releases2、运行如下命令,下载DockerCompose的当前稳定版本sudocurl-L"https://githu......
  • 【笔记】docker镜像相关命令
    1.显示当前docker下的所有镜像dockerimages2.从远程仓库查看指定名称的镜像dockersearch镜像名只列出N个镜像,默认25个dockersearch--limitN镜像名3.下载镜......
  • 【笔记】docker服务启停、容器删除相关命令
    一、docker服务启停命令1.1.启动dockersystemctlstartdocker1.2.关闭dockersystemctlstopdocker1.3.重启dockersystemctlrestartdocker1.4.查看docker运......