机器学习基础之《回归与聚类算法(4)—逻辑回归与二分类(分类算法)》

一、什么是逻辑回归

1、逻辑回归(Logistic Regression)是机器学习中的一种分类模型,逻辑回归是一种分类算法,虽然名字中带有回归,但是它与回归之间有一定的联系。由于算法的简单和高效,在实际中应用非常广泛

2、叫回归,但是它是一个分类算法

二、逻辑回归的应用场景

1、应用场景
广告点击率:预测是否会被点击
是否为垃圾邮件
是否患病
金融诈骗:是否为金融诈骗
虚假账号:是否为虚假账号

均为二元问题

2、看到上面的例子,我们可以发现其中的特点,那就是都属于两个类别之间的判断。逻辑回归就是解决二分类问题的利器
会有一个正例,和一个反例

三、逻辑回归的原理

1、逻辑回归的输入
线性回归的输出,就是逻辑回归的输入

逻辑回归的输入就是一个线性回归的结果

2、怎么用输入来分类
要进行下一步处理,带入到sigmoid函数当中,我们把它叫做激活函数

3、sigmoid函数

可以理解为,f(x)=1/(1+e^(-x)),1加上e的负x次方分之1

sigmoid函数又称S型函数,它是一种非线性函数,可以将任意实数值映射到0-1之间的值,通常用于分类问题。它的表达式为:f(x)=1/(1+e^(-x)),其中e为自然对数的底数。它的输出值均位于0~1之间,当x趋向正无穷时,f(x)趋向1;当x趋向负无穷时,f(x)趋向0

4、分析
将线性回归的输出结果,代入到x的部分
输出结果:[0, 1]区间中的一个概率值,默认为0.5为阈值
逻辑回归最终的分类是通过属于某个类别的概率值来判断是否属于某个类别,并且这个类别默认标记为1(正例),另外的一个类别会标记为0(反例)。(方便损失计算)

5、假设函数/线性模型
1/(1 + e^(-(w1x1 + w2x2 + w3x3 + ... + wnxn +b)))
如何得出权重和偏置,使得这个模型可以准确的进行分类预测呢?

6、损失函数(真实值和预测值之间的差距)
我们可以用求线性回归的模型参数的方法,来构建一个损失函数

线性回归的损失函数:(y_predict - y_true)平方和/总数,它是一个值
而逻辑回归的真实值和预测值,是否属于某个类别
所以就不能用均方误差和最小二乘法来构建
要使用对数似然损失

7、优化损失(正规方程和梯度下降)
用一种优化方法,将损失函数取得最小值,所对应的权重值就是我们求的模型参数

四、对数似然损失

1、公式
逻辑回归的损失,称之为对数似然损失

(1)它是一个分段函数
(2)如果y=1,真实值是1,属于这个类别,损失就是 -log(y的预测值)
(3)如果y=0,真实值是0,不属于这个类别,损失就是 -log(1-y的预测值)

2、怎么理解单个的式子呢?这个要根据log的函数图像来理解
当y=1时:(横坐标是y的预测值)

前提真实值是1,如果预测值越接近于1,则损失越接近0。如果预测值越接近于0,则损失越大

当y=0时:(横坐标是y的预测值)

前提真实值是0,如果预测值越接近1,则损失越大

3、综合完整损失函数

损失函数:-(y真实*logy预测+(1-y真实)*log(1-y预测)),求和

是线性回归的输出,经过sigmoid函数映射之后的一个概率值

4、计算样例

五、优化损失

同样使用梯度下降优化算法,去减少损失函数的值。这样去更新逻辑回归前面对应算法的权重参数,提升原本属于1类别的概率,降低原本是0类别的概率

六、逻辑回归API

1、sklearn.linear_model.LogisticRegression(solver='liblinear', penalty='l2', C=1.0)
solver:优化求解方式(默认开源的liblinear库实现,内部使用了坐标轴下降法来迭代优化损失函数)
    auto:根据数据集自动选择,随机平均梯度下降
penalty:正则化的种类
C:正则化力度

2、LogisticRegression方法相当于SGDClassifier(loss="log", penalty=" ")
SGDClassifier是一个分类器
SGDClassifier实现了一个普通的随机梯度下降学习,也支持平均随机梯度下降法(ASGD),可以通过设置average=True
而使用LogisticRegression它的优化器已经可以使用SAG

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/110017.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用cpolar内网端口映射技术实现U8用友ERP本地部署的异地访问

文章目录 前言1. 服务器本机安装U8并调试设置2. 用友U8借助cpolar实现企业远程办公2.1 在被控端电脑上,点击开始菜单栏,打开设置——系统2.2 找到远程桌面2.3 启用远程桌面 3. 安装cpolar内网穿透3.1 注册cpolar账号3.2 下载cpolar客户端 4. 获取远程桌面…

NTFS磁盘格式读写工具Tuxera NTFS 2023 for Mac中文破解版v2023含最新激活序列号

Tuxera NTFS 2023 Mac 是一个NTFS文件系统驱动程序,为解决Mac上不能对NTFS格式硬盘进行访问和读写而生。实现苹果Mac OS X系统读写Microsoft Windows NTFS文件系统,在硬盘、U盘等外接设备中进行全面访问、删除、修改等相关操作。 tuxera ntfs 2023 破解…

Web架构安全分析/http/URL/Cookie攻击

Web 架构安全分析 Web 工作机制及基本概念 传统 Web 架构 LAMP 网页 概念 网页就是我们可以通过浏览器上网看到的精美页面,一般都是经过浏览器渲染过的 .html 页面,html 语言在浏览器中渲染。其中包含了CSS、JavaScript 等前端技术。通过浏览器访问…

24届好未来数开笔试

目录 选择、多选SQL题目描述输入 目标解答解析 题目分享 选择、多选 Java, int x 1, float y 2, x/y 0.5 2. Hive 的数据结构 基本数据类型 复合数据类型 text 不是 Hive 内外表 建表时如果不显示声明表的类型为 外表 Kafka 通过()避免任务重复执行…

【技巧】如何设置Excel表只输入固定内容?

如果你需要在Excel表格中输入固定的内容,可以设置“限制录入内容”,这样就只能输入设置好的内容,避免不小心输入错误信息。下面来看看如何设置吧。 首先,打开Excel表格后,选中需要输入固定内容的表格区域。 比如图片…

Flutter笔记:发布一个Flutter头像模块 easy_avatar

Flutter笔记 发布一个头像Flutter模块 easy_avatar 作者:李俊才 (jcLee95):https://blog.csdn.net/qq_28550263 邮箱 :291148484163.com 本文地址:https://blog.csdn.net/qq_28550263/article/details/1339…

利用PHP快速抓取音频数据的方法与技巧

目录 使用cURL库抓取音频数据 优点 潜在问题及解决方案 使用file_get_contents函数抓取音频数据 优点 潜在问题及解决方案 总结 随着互联网的发展,音频内容在网络上的应用越来越广泛,如音乐播放、语音通信等。有时,我们需要从特定的音…

ModStartCMS v7.4.0 公共图片库支持,安全功能升级

ModStart 是一个基于 Laravel 模块化极速开发框架。模块市场拥有丰富的功能应用,支持后台一键快速安装,让开发者能快的实现业务功能开发。 系统完全开源,基于 Apache 2.0 开源协议,免费且不限制商业使用。 功能特性 丰富的模块市…

【Linux-常用命令-基础命令-删除文件夹以及内容-rm--r-命令-笔记】

【Linux-常用命令-基础命令-删除文件夹以及内容-rm--r-命令-笔记】 1、前言2、操作3、自己的操作 1、前言 最近,在使用Linux的时,使用相关基础命令是,总是容易忘记,上网一搜,大部分都写的比较繁琐,关于删除…

Python学习笔记——存储容器

食用说明:本笔记适用于有一定编程基础的伙伴们。希望有助于各位! 列表 列表类似数组,其中可以包含不同类型的元素,写法如下: list1 [Google, Runoob, 1997, 2000] list2 [1, 2, 3, 4, 5 ] list3 ["a", …

Qt工具开发,该不该跳槽?

Qt工具开发,该不该跳槽? 就这样吧,我怕你跳不动。 嵌入式UI,目前趋势是向着LVGL发展。QT已经在淘汰期了。很多项目还在用,但技术上已经落后。QT短期内不会全面淘汰,但退位让贤的大趋势已经很清楚了。 最近很多小伙伴…

liunx下软链接和硬链接的用法

什么是软链接(类似快捷方式): 符号连接(Symbolic Link),也叫软连接。 软链接文件有类似于 Windows 的快捷方式。它实际上是一个特殊的文件。在符号连接中,文件实际上是一个文本文件&#xff0c…

嵌入式开发学习之STM32F407串口(USART)收发数据(三)

嵌入式开发学习之STM32F407串口(USART)收发数据(三) 开发涉及工具一、选定所使用的串口二、配置串口1.配置串口的I/O2.配置串口参数属性3.配置串口中断4.串口中断在哪里处理5.串口如何发送字符串 三、封装串口配置库文件1.创建头文…

【OpenVINO】OpenVINO C# API 常用 API 详解与演示

OpenVINO C# API 常用 API 详解与演示 1 安装OpenVINO C# API2 导入程序集 3 初始化OpenVINO 运行时内核4 加载并获取模型信息4.1 加载模型4.2 获取模型信息 5 编译模型并创建推理请求6 张量Tensor6.1 张量的获取与设置6.2 张量的信息获取与设置 7 加载推理数据7.1 获取输入张量…

循环日程安排问题(分治法)

函数接口定义&#xff1a; void Plan(int a[][N],int k); 裁判测试程序样例&#xff1a; #include #include <math.h> #include using namespace std; #define N 100 void Plan(int a[][N],int k); int main() { int i,j,a[N][N],k,size; cin>>k; sizepow(2,k)…

金山终端安全系统V9.0 SQL注入漏洞复现

0x01 产品简介 金山终端安全系统是一款为企业提供终端防护的安全产品&#xff0c;针对恶意软件、病毒和外部攻击提供防范措施&#xff0c;帮助维护企业数据和网络。 0x02 漏洞概述 金山终端安全系统V9.0 /inter/update_software_info_v2.php页面存在sql注入漏洞&#xff0c;该…

VsCode通过Git History插件查看某个页面的版本修改记录

首先需要安装插件Git History 方式一&#xff1a;通过 点击File History 查看某个文件变更&#xff1b;即通过commit的提交记录去查看某个文件的修改 方式二&#xff1a;通过点击选择toggle File Blame 查看当前页面每一行所有提交修改记录

通讯协议学习之路:USART协议理论

通讯协议之路主要分为两部分&#xff0c;第一部分从理论上面讲解各类协议的通讯原理以及通讯格式&#xff0c;第二部分从具体运用上讲解各类通讯协议的具体应用方法。 后续文章会同时发表在个人博客(jason1016.club)、CSDN&#xff1b;视频会发布在bilibili(UID:399951374) 一、…

手机抬手亮屏解锁,用到了哪些硬件?

随着时代发展&#xff0c;智能手机以丰富的功能及便利性&#xff0c;成为了人们必不可少的物品&#xff0c;其中人脸解锁功能是非常有用的功能&#xff0c;广受年轻人的喜爱&#xff0c;那么你知道她是如何实现吗&#xff1f;今天凡小亿带你们探索&#xff01; 手机抬手亮屏解锁…

mysql—表单二

一、查询环境 1.创建student和score表 CREATE TABLE student ( id INT(10) NOT NULL UNIQUE PRIMARY KEY , name VARCHAR(20) NOT NULL , sex VARCHAR(4) , birth YEAR, department VARCHAR(20) , address VARCHAR(50) ); 创建score表。SQL代码如下&#xff1a; CR…