当前位置: 首页 > news >正文

逻辑回归模型

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

一、概述

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

二、算法原理

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

在这里插入图片描述

  线性回归的表达式可表示为 z = w ⋅ x + b z=w\cdot x+b z=wx+b,sigmoid函数表达式表示为 y = 1 1 + e − z y=\frac{1}{1+e^{-z}} y=1+ez1,那么逻辑回归模型的表达式即是 y = 1 1 + e − ( w ⋅ x + b ) y=\frac{1}{1+e^{-(w\cdot x+b)}} y=1+e(wx+b)1
逻辑回归的分类算法可表示为
{ − 1 , 1 1 + e − ( w ⋅ x + b ) < 0.5 1 , 1 1 + e − ( w ⋅ x + b ) ≥ 0.5 \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. 1,1+e(wx+b)1<0.51,1+e(wx+b)10.5
  逻辑回归模型的训练采用交叉熵损失函数,在优化过程中,计算得到最佳的参数值,表达式如下
J ( θ ) = − 1 m ∑ i = 1 m [ y i l o g ( h ( x i ) ) + ( 1 − y i ) l o g ( 1 − h ( x i ) ) ] 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] J(θ)=m1i=1m[yilog(h(xi))+(1yi)log(1h(xi))]

三、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.mrgr.cn/news/20629.html

相关文章:

  • vue3 通过 绑定 ref 重置 DOM
  • 【计算机网络】TCP连接如何确保传输的可靠性
  • PMP错题总结(十七)
  • Circuitjs 在线电路模拟器使用指南
  • linux curl命令介绍以及使用
  • 科研绘图系列:R语言折线图(linechart plots)
  • 2024年高教杯国赛(E题)数学建模竞赛解题思路|完整代码论文集合
  • Mybatis 多表联查
  • LCR 017
  • 9.5javaweb项目总结
  • kubelet 探针
  • 树莓派点灯(TODO)
  • 从0到1深入理解vite
  • 相机检查内参 外参
  • LeetCode题解:2341. 数组能形成多少数对,哈希表,详细注释
  • QWidget(c++)嵌入window环境的exe
  • 深入解析 Node.js 核心模块与异步编程:高效构建现代服务器应用
  • 阿里中间件——diamond
  • 自定义 SpringBoot Starter
  • 2024国赛数学建模ABC题思路模型