最优化方法Python计算:无约束优化应用——逻辑回归模型

news2024/10/6 3:27:02

S型函数 sigmoid ( x ) = 1 1 + e − x \text{sigmoid}(x)=\frac{1}{1+e^{-x}} sigmoid(x)=1+ex1将全体实数 R \text{R} R映射到 ( 0 , 1 ) (0,1) (0,1),称为逻辑函数。其图像为
在这里插入图片描述
该函数连续、有界、单调、可微,性质量好。拟合函数为
F ( w ; x ) = sigmoid ( ( x ⊤ , 1 ) w ) = 1 1 + e − ( x ⊤ , 1 ) w F(\boldsymbol{w};\boldsymbol{x})=\text{sigmoid}((\boldsymbol{x}^\top,1)\boldsymbol{w})=\frac{1}{1+e^{-(\boldsymbol{x}^\top,1)\boldsymbol{w}}} F(w;x)=sigmoid((x,1)w)=1+e(x,1)w1
的回归模型称为逻辑回归模型。其实,逻辑回归模型的拟合函数就是线性回归拟合函数与sigmoid函数的复合。下列代码实现逻辑回归模型

import numpy as np								#导入numpy
sigmoid = lambda x: 1/(1 + np.exp(-x))			#逻辑函数
class LogicModel(LineModel):					#逻辑模型
    def F(self, w, x):							#重载拟合函数
        return sigmoid(LineModel.F(self, w, x))    
class LogicRegressor(Regression, LogicModel):
    '''逻辑回归模型'''

程序的第2行将逻辑函数sigmoid实现为Python的lambda表达式。第3~5行表示逻辑模型的LogicModel实现为LineModel类(详见博文《最优化方法Python计算:无约束优化应用——线性回归模型》)的子类。在LogicModel的实现体中,仅在第4~5重载了拟合函数F,即表示为线性模型的拟合函数与sigmoid函数的复合。与Regression类(详见博文《最优化方法Python计算:无约束优化应用——回归模型的测试》)配合即可构成第6~7行的用于预测的逻辑回归模型LogicRegressor类。
例1 电影公司生产的影片的票房收入与该片的拍摄投资和广告推广费用相关。下表给出了5部影片的数据。

No.投资(百万)广告(百万)票房(百万)
1619
29312
312229
414335
516459

x = ( x 1 x 2 ) ∈ R 2 \boldsymbol{x}=\begin{pmatrix}x_1\\x_2\end{pmatrix}\in\text{R}^2 x=(x1x2)R2,其中, x 1 , x 2 x_1,x_2 x1,x2分别表示影片投资与广告费用, y ∈ R y\in\text{R} yR表示影片的票房收入。数据集 ( x i , y i ) (\boldsymbol{x}_i,y_i) (xi,yi) i = 1 , 2 , ⋯   , 5 i=1,2,\cdots,5 i=1,2,,5。构成样本特征矩阵 X = ( 6 1 9 3 12 2 14 3 16 4 ) \boldsymbol{X}=\begin{pmatrix}6&1\\9&3\\12&2\\14&3\\16&4\end{pmatrix} X= 6912141613234 ,标签向量 y = ( 9 12 29 35 59 ) \boldsymbol{y}=\begin{pmatrix}9\\12\\29\\35\\59\end{pmatrix} y= 912293559 。假定新影片的拍摄投资 x 1 = 10 x_1=10 x1=10,广告费用 x 2 = 3 x_2=3 x2=3,预测票房价值 y y y。如果拍摄投资 x 1 = 18 x_1=18 x1=18,广告费用 x 2 = 6 x_2=6 x2=6呢?
:下列代码用给定数据训练逻辑回归模型类LogicRegressor对象,并计算预测票房。

import numpy as np							#导入numpy
x = np.array([[6, 1],						#设置训练数据
              [9, 3],
              [12, 2],
              [14, 3],
              [16, 4]])
y = np.array([9, 12, 29, 35, 59])
movi = LogicRegressor()						#创建逻辑回归模型
movi.fit(x, y)								#训练模型
x1 = np.array([[10, 3],						#设置预测数据
               [18, 6]])
print('对新的影片数据x1')
print(x1)
print('预测票房分别为:%s'%movi.predict(x1))	#预测

就这么简单,看官借助注释信息不难理解代码意义。运行程序,输出

训练中...,稍候
14次迭代后完成训练。
对新的影片数据x1
[[10  3]
 [18  6]]
预测票房分别为:[14.4999173  56.96081974]

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

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

相关文章

localsec.dll缺少怎么办?localsec.dll文件下载,一键修复

看到很多小伙伴都在问,自己的电脑,在启动游戏或某些软件的时候,Windows会弹出系统错误提示框,称一个名为“localsec.dll的文件丢失了,造成错误,可尝试重新安装程序,以解决问题”。 根据错误提示…

如何使用Redis实现抢红包功能

【内容摘要】 在这篇文章中,我们将探讨如何使用Redis来设计和实现一个抢红包的业务场景。从业务场景、需求分析、技术选型、代码实现,痛点问题等进行多维分析和思考。 【业务场景】 下面引入一个实际的使用案例,如微信群中常用的红包功能。…

计算机网络复习2

物理层 文章目录 物理层通讯基础奈奎斯特定理香农定理编码与调制交换传输介质(了解)物理层设备 通讯基础 数据信号码元信源信道信宿单工通道:只有一个方向半双工通道:不能同时发送和接收全双工通道 奈奎斯特定理 规定&#xff…

裕泰微YT8521SH PHY芯片在uboot下的代码适配(二)

裕泰微YT8521SH PHY芯片在uboot下的代码适配(一) 文章目录 代码搜索移植步骤具体代码备注 本文主要是介绍uboot下的适配代码来源和具体修改。 代码搜索 https://github.com/starfive-tech/u-boot/blob/JH7110_VisionFive2_devel/drivers/net/phy/motorc…

Linux中的gcc\g++使用

文章目录 gcc\g的使用预处理编译汇编链接函数库gcc选项 gcc\g的使用 这里我们需要知道gcc和g实际上是对应的c语言和c编译器,而其他的Java(半解释型),PHP,Python等语言实际上是解释型语言,因此我们经常能听…

Ps:混合颜色带 - 基础篇

混合颜色带 Blend If是“图层样式”对话框中的一个高级功能,允许根据下方图层或当前图层的色彩信息来混合图层,无需进行复杂的选区或蒙版操作。 混合颜色带是基于亮度(灰色)或颜色通道的特定范围来显示或隐藏图层的特定区域。 “当…

Android : 使用GestureDetector 进行手势识别—简单应用

示例图: GestureDetector 介绍: GestureDetector 是 Android 开发中用于识别和处理手势的一个类。它允许开发者检测用户在触摸屏上的各种手势,如滑动、长按、双击等。通过使用 GestureDetector,您可以轻松地为应用程序添加手势识…

GLTF 编辑器实现逼真3D动物毛发效果

在线工具推荐: 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 要实现逼真的3D动物毛发效果,可以采用以下技术和方法&…

AI数字人克隆系统源代码克隆系统开发--本地源码部署

随着人工智能技术的不断发展,AI数字人克隆系统逐渐成为现实。这一系统通过克隆人的外貌和行为模式,可以创建具有自我认知、学习和情感的数字化人类。而为了更好地开发AI数字人克隆系统,本地源码部署是一项关键步骤。 在开始介绍本地源码部署…

低功耗蓝牙模块:促进智慧城市发展的关键技术

在科技快速发展的时代,智慧城市的概念正引领着城市管理的革新。为实现城市更高效、可持续和智能化的管理,低功耗蓝牙模块成为推动智慧城市发展的关键技术之一。本文将探讨低功耗蓝牙模块在智慧城市中的作用,以及其在城市基础设施、公共服务等…

6、LLaVA

简介 LLaVA官网 LLaVA使用Vicuna(LLaMA-2)作为LLM f ϕ ( ⋅ ) f_\phi() fϕ​(⋅),使用预训练的CLIP图像编码器 ViT-L/14 g ( X v ) g(X_v) g(Xv​)。 输入图像 X v X_v Xv​,首先获取feature Z v g ( X v ) Z_vg(X_v) Zv​g(Xv​)。考虑到最后一…

ROS-ID®活性氧/活性氮检测试剂盒

自由基和其他活性种在许多心理和病理生理过程中发挥着重要作用。自由基一旦在细胞内产生,就会破坏多种细胞成分,包括蛋白质、脂质和DNA。然而,在较低浓度下,自由基可以作为细胞信号传导中的第二信使。 Enzo Life Sciences的ROS-I…

svn外网打不开url地址怎么解决

在家或者出差在外经常会有连接到公司内部SVN服务器的需求, 但是 svn外网打不开url地址怎么解决?如何才能连接到公司内部SVN服务器?今天小编教你一招,在本地SVN服务的内网IP端口用快解析软件添加映射,一步就可以提供让公…

PC9095高性能可调限流OVP过压过流保护 软启动 抗浪涌 集成功率FET开关

特点 •输入电压范围: •PC9095A、PC9095KA:2.5伏~13.5伏 •PC9095B,PC9095KB:2.5伏~10伏 •PC9095C,PC9095KC:2.5伏~5.5伏 •28V绝对最大额定电压VOUT •带外部电阻器的可调限流器 •集成功率FET开关,53mΩRds&#xff08…

【Vue2+3入门到实战】(14)路由入门之单页应用程序、路由 、 VueRouter的基本使用 详细示例

目录 一、学习目标1.路由入门 二、单页应用程序介绍1.概念2.具体示例3.单页应用 VS 多页面应用4.总结 三、路由介绍1.思考2.路由的介绍3.总结 四、路由的基本使用1.目标2.作用3.说明4.官网5.VueRouter的使用(52)6.代码示例7.两个核心步骤8.总结 五、组件…

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结

关于MybatisPlus自动转化驼峰命名规则配置mapUnderscoreToCamelCase的个人测试和总结 测试一:没有添加 自动转化的配置,且domain中的属性名称和数据库的字段名称一致测试二:没有添加自动转化配置i,domain属性名userPassword和数据…

泽攸科技PECVD设备助力开发新型石墨烯生物传感器

近日,松山湖材料实验室许智团队与清华大学符汪洋合作在纳米领域头部期刊《Small》上发表了一项引人注目的研究成果,题为“Ultrasensitive biochemical sensing platform enabled by directly grown graphene on insulator”(硅晶圆上直接生长…

计算机网络——应用层与网络安全(六)

前言: 前几章我们已经对TCP/IP协议的下四层已经有了一个简单的认识与了解,下面让我们对它的最顶层,应用层进行一个简单的学习与认识,由于计算机网络多样的连接形式、不均匀的终端分布,以及网络的开放性和互联性等特征&…

使用NTC负温度系数热敏电阻控制温度

鱼缸原来的加热棒使用的是NTC负温度系数的热敏电阻测温,负温度系数是指随着温度的升高,电阻是不断按照指数形式减小的,在22度的情况下实测电阻是10K多,可以断定使用了10K(25度下是10K)的电阻,为…

configure: error: no acceptable C compiler found in $PATH解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…