逻辑回归模型

news/2024/9/21 14:35:56/文章来源:https://www.cnblogs.com/flyup/p/18399369

  核心:线性回归+sigmoid映射。

一、概述

  逻辑回归模型(Logistic Regression,LR),由名称上来看,似乎是一个专门用于解决回归问题的模型,事实上,该模型更多地用于解决分类问题,尤其是二分类问题。这并不矛盾,因为逻辑回归直接输出的是一个连续值,我们将其按值的大小进行切分,不足一定范围的作为一个类别,超过一定范围的作为一个类别,这样就实现了对分类问题的解决。概况来说就是,先对数据以线性回归进行拟合,输出值以Sigmoid函数进行映射,映射到0和1之间,最后将S曲线切分上下两个区间作为类别区分的依据。

二、算法原理

  算法核心是线性回归+sigmoid映射。具体来说,就是对于一个待测样本,以指定的权重和偏置量,计算得到一个输出值,进而将该输出值经过sigmoid进一步计算,映射至0和1之间,大于0.5的作为正类,不足0.5的作为负类。模型原理图示可概括为

  线性回归的表达式可表示为 \(z=w\cdot x+b\),sigmoid函数表达式表示为 \(y=\frac{1}{1+e^{-z}}\),那么逻辑回归模型的表达式即是\(y=\frac{1}{1+e^{-(w\cdot x+b)}}\)
逻辑回归的分类算法可表示为

\[\left\{ \begin{aligned} &-1, \frac{1}{1+e^{-(w\cdot x+b)}}<0.5\\ &1, \frac{1}{1+e^{-(w\cdot x+b)}}\geq0.5 \end{aligned} \right. \]

  逻辑回归模型的训练采用交叉熵损失函数,在优化过程中,计算得到最佳的参数值,表达式如下

\[J\left( \theta \right)=-\frac{1}{m} \sum_{i=1}^{m}\left[ {y^ilog(h(x^i))} +(1-y^i)log(1-h(x^i))\right] \]

三、Python实现

import numpy as np
from sklearn.linear_model import LogisticRegression
from sklearn import metrics
## 1.定义数据集
train_x = [[4.8,3,1.4,0.3],[5.1,3.8,1.6,0.2],[4.6,3.2,1.4,0.2],[5.3,3.7,1.5,0.2],[5,3.3,1.4,0.2],[7,3.2,4.7,1.4],[6.4,3.2,4.5,1.5],[6.9,3.1,4.9,1.5],[5.5,2.3,4,1.3],[6.5,2.8,4.6,1.5]
]# 训练数据标签
train_y = ['A','A','A','A','A','B','B','B','B','B'
]# 测试数据
test_x = [[3.1,3.5,1.4,0.2],[4.9,3,1.4,0.2],[5.1,2.5,3,1.1],[6.2,3.6,3.4,1.3]
]# 测试数据标签
test_y = ['A','A','B','B'
]train_x = np.array(train_x)
train_y = np.array(train_y)
test_x = np.array(test_x)
test_y = np.array(test_y)## 2.模型训练
clf_lr = LogisticRegression()
rclf_lr = clf_lr.fit(train_x, train_y)## 3.数据计算
pre_y = rclf_lr.predict(test_x)
accuracy = metrics.accuracy_score(test_y,pre_y)print('预测结果为:',pre_y)
print('准确率为:',accuracy)


End.




pdf下载

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

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

相关文章

Winform下的画板

1. Winform如何实现简单绘图如果想要自己画一个圆,矩形或者其他图形,可以使用控件或窗体自带的Paint事件,在事件中引用Graphics对象; 也可以使用某个窗体或者控件的CreateGraphics方法 需要引用using System.Drawing.Drawing2D;(要画3D就用DirectX)2. 使用Form1窗体Paint…

STM32学习笔记——Keil uVision5建项目

新建文件夹——用于存放工程及工程管理 新建文件夹用于存放整个工程打开“stm32-project”文件夹,新建一些文件夹用于工程源代码的分类这些文件夹都是自己建的用于不同类型代码存放,文件夹个数,命名都因人而异。(后续所有文件放在“stm32-project”中也行,不嫌乱的话) Ha…

Jenkins - 触发器

触发方式 jenkins自带的job触发方式Generic Webhook Trigger插件 在需要外界其他系统触发Jenkins任务的场景,通常使用Generic Webhook Trigger插件来配置 Jenkins 触发器 Generic Webhook Trigger 插件允许使用 Webhook将外部系统与 Jenkins 集成。 通过配置 Webhook,在特定事…

[场景设计]短网址服务

如何设计一个短网址服务(TinyURL)? 使用场景(Scenario) 微博和Twitter都有140字数的限制,如果分享一个长网址,很容易就超出限制,发不出去。短网址服务可以把一个长网址变成短网址,方便在社交网络上传播。 需求(Needs) 很显然,要尽可能的短。长度设计为多少才合适呢? 短网…

增强 softmax 函数的稳定性

概述 oftmax函数的表达式 $ \text{Softmax}(x_i) = \frac{e^{x_i}}{\sum_{j} e^{x_j}} $,但在计算机的运算上有一定的缺陷。这个缺陷就是溢出问题。 softmax函数的实现中要进行指数函数的运算,但是此时指数函数的值很容易变得非常大。比如,e^{10} 的值会超过20000, e^{100…

Linux 系统的操作命令

Author: ACatSmiling Since: 2024-09-05文件与目录结构 Linux 系统中,一切皆文件。 Linux 目录结构:[zeloud@localhost ~]$ cd / [zeloud@localhost /]$ ls bin boot dev etc home lib lib64 media mnt opt proc root run sbin srv sys tmp usr var/bin:存…

chatgpt生成的所有分析函数,感觉很好.

好的,我会列出Hive的主要分析函数,然后创建一个表并插入10条数据来演示这些函数的效果。 Hive的主要分析函数:ROW_NUMBER() RANK() DENSE_RANK() CUME_DIST() PERCENT_RANK() NTILE() LAG() LEAD() FIRST_VALUE() LAST_VALUE()现在,让我们创建一个表并插入数据:-- 创建表 …

大规模MIMO通信系统信道估计matlab性能仿真,对比LS,OMP,MOMP以及CoSaMP

1.算法仿真效果 matlab2022a仿真结果如下(完整代码运行后无水印):2.算法涉及理论知识概要大规模MIMO(Multiple-Input Multiple-Output)通信系统因其能够显著提高无线通信系统的容量和频谱效率而受到广泛关注。在这样的系统中,基站配备了大量的天线(通常数百个),而用户…

docker部署mysql8主从

一、拉取mysql镜像docker pull mysql 二、创建容器# 主库docker run -itd -p 3306:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-master mysql# 从库 docker run -itd -p 3307:3306 -e MYSQL_ROOT_PASSWORD=123456 --name mysql-slave mysql 三、配置主库[mysqld]## 同一…

IDGenRec论文阅读笔记

IDGenRec: LLM-RecSys Alignment with Textual ID Learning论文阅读笔记 Abstract ​ 为了使 LLM 与推荐需求更好地结合,我们提出了 IDGenRec,使用人类语言标记将每个项目表示为唯一、简洁、语义丰富、平台无关的文本 ID。这是通过与基于 LLM 的推荐器一起训练文本 ID 生成器…

基于鱼群算法的散热片形状优化matlab仿真

1.课题概述使用浴盆曲线进行空隙外形的模拟,然后通过优化,计算得到最优的浴盆曲线的各个参数,从而计算出最优的R值。浴盆曲线函数如下所示:从上面的仿真结果可知,直接对目标函数进行优化,仿真速度非常慢,这里我们使用浴缸曲线结合鱼群算法进行优化。从而得到最佳的孔隙度…

Transformer: Attention is all you need

Transformer于2017年提出,最开始应用于NLP领域,随着Transformer的快速发展,在视觉领域中也越来越多的论文或应用用到了Transformer,这里记录一下自己学习的一些知识点。 PDF: 《Attention Is All You Need》 Code: attention-is-all-you-need-pytorch 一、前置知识 1.1 注…