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

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.mzph.cn/news/583501.shtml

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

相关文章

探索Apache Commons Imaging处理图像

第1章:引言 大家好,我是小黑,咱们今天来聊聊图像处理。在这个数字化日益增长的时代,图像处理已经成为了一个不可或缺的技能。不论是社交媒体上的照片编辑,还是专业领域的图像分析,图像处理无处不在。而作为…

盘点 | 飞凌嵌入式这5款100%全国产核心板值得推荐

近期,飞凌嵌入式有5款核心板产品通过了中国赛宝实验室的权威认证,实现了100%的电子元器件国产化率,本篇文章小编就带大家盘点一下这5款产品。 一、FET3568-C系列核心板 FET3568-C和FET3568J-C核心板基于Rockchip RK3568系列处理器开发设计&am…

three.js绘制网波浪

无图不欢&#xff0c;先上图 使用方法&#xff08;以vue3为例&#xff09; <template><div class"net" ref"net"></div> </template><script setup> import { ref, onMounted } from vue import NetAnimation from /utils…

EBDP:解锁大数据的奥秘✨

大数据时代已经来临&#xff0c;你是否也想掌握这门“显学”&#xff1f;&#x1f31f; EBDP&#xff0c;这个让众多专业人士趋之若鹜的认证&#xff0c;究竟有何魅力&#xff1f;今天就带你一探究竟&#xff01; &#x1f31f;EBDP&#xff1a;大数据的“敲门砖”&#x1faa…

Koordinator 助力云原生应用性能提升:小红书混部技术实践

作者&#xff1a;宋泽辉&#xff08;小红书&#xff09;、张佐玮&#xff08;阿里云&#xff09; 编者按&#xff1a; Koordinator 是一个开源项目&#xff0c;是基于阿里巴巴内部多年容器调度、混部实践经验孵化诞生&#xff0c;是行业首个生产可用、面向大规模场景的开源混…

CNAS中兴新支点——源代码审计对企业有哪些好处?

源代码扫描&#xff0c;对应用程序进行静态漏洞扫描&#xff0c;分析源代码中存在的安全风险&#xff0c;运行应用于模拟器中对应用进行实时漏洞攻击检测。 你是否了解源代码扫描对企业的好处&#xff1f; 一、源代码扫描&#xff0c;通常能够帮助企业解决这些问题&#xff1…

BDD - Python Behave 配置文件 behave.ini

BDD - Python Behave 配置文件 behave.ini 引言behave.ini配置参数的类型配置项 behave.ini 应用feature 文件step 文件创建 behave.ini执行 Behave查看配置默认值 behave -v 引言 前面文章 《BDD - Python Behave Runner Script》就是为了每次执行 Behave 时不用手动敲一长串…

VSCode Python开发环境配置

目录 1 插件安装2 Debug和测试配置常见问题 1 插件安装 1.1 基础编译插件&#xff0c;Python、Pylance 1.2 修改语言服务器类型&#xff0c;进入用户配置页面搜索Python: Language Server&#xff0c;选择Pylance&#xff08;一定要修改可以提供很多语法提示&#xff09; 1…

根据commitID删除某一次提交

1.查看提交历史 git log --prettyoneline2.找到需要删除的那个commit,然后找到上次提交的commitID 比如想要删除下面这一条 我们找到上次提交的commitID 3.执行rebase git rebase -i efa11da0a684977bf8ac047ebb803e2ded2063a4 进入编辑状态显示如下 将需要删除的那个提交前…

探索 EndNote:卓越文献管理工具的功能与应用

引言 在当今科研与学术写作的领域&#xff0c;文献管理是每一位研究者都不可避免面对的挑战。为了有效地整理、引用和协作&#xff0c;研究者需要强大而灵活的文献管理工具。EndNote作为一款备受推崇的文献管理软件&#xff0c;在解决这一问题上发挥着关键作用。本文将深入探讨…

设备健康管理系统助力制造企业实现数字化转型

在当今快速变革的制造业环境中&#xff0c;数字化转型已成为制造企业保持竞争力和实现可持续发展的关键。在这个数字化转型的浪潮中&#xff0c;设备健康管理系统正发挥着重要的作用。设备健康管理系统通过实时监测、预测分析和智能诊断等功能&#xff0c;为制造企业提供了全面…

基于PyQt5自定义UI的详细教程

PyQt5和Qt designer的详细安装教程&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135185233?spm1001.2014.3001.5501Qt designer界面和所有组件功能的详细介绍&#xff1a;https://blog.csdn.net/qq_43811536/article/details/135186862?spm1001.2014.3001…

运行天地图Cesium.js三维服务案例

零、技术选型及相关网址 技术选型&#xff1a;Vue2、VueCli5、Cesium.js、天地图 相关网址&#xff1a;三维服务 - 天地图 帮助文档 一、cesium 初始化参数解析 initializeCesium() {this.viewer new Cesium.Map("cesiumContainer", {shouldAnimate: true, // 是否…

gem5学习(7):内存系统中创建 SimObjects--Creating SimObjects in the memory system

目录 一、gem5 master and slave ports 二、Packets 三、Port interface 1、主设备发送请求时从设备忙 2、从设备发送响应时主设备忙 四、Simple memory object example 1、Declare the SimObject 2、Define the SimpleMemobj class 3、Define the SimpleMemobj class…

EST-100身份证社保卡签批屏按捺终端PC版web版本http协议接口文档,支持web网页开发对接使用

<!DOCTYPE html><html lang"zh-CN"><head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width,initial-scale1.0"><title>演示DEMO</title><script type"text/…

亚马逊SEO是什么意思?亚马逊标题的SEO方法是什么?-站斧浏览器

亚马逊SEO是什么意思&#xff1f; 亚马逊SEO主要包括了对标题、描述、五点简介等元素的优化&#xff0c;以及评价和评论的管理等方面。下面将详细分析亚马逊SEO的相关内容&#xff0c;帮助卖家更好地理解和应用。 在亚马逊平台上进行SEO优化需要考虑以下几个方面&#xff1a;…

gin框架使用系列之四——json和protobuf的渲染

系列目录 《gin框架使用系列之一——快速启动和url分组》《gin框架使用系列之二——uri占位符和占位符变量的获取》《gin框架使用系列之三——获取表单数据》 上篇我们介绍了如何获取数据&#xff0c;本篇我们介绍一下如何返回固定格式的数据。 一、返回JSON数据 在web开发中…

Linux管理LVM逻辑卷

目录 一、LVM逻辑卷介绍 1. 概述 2. LVM基本术语 2.1 PV&#xff08;Physical Volume&#xff0c;物理卷&#xff09; 2.2 VG (Volume Group&#xff0c;卷组&#xff09; 2.3 LV (Logical Volume&#xff0c;逻辑卷&#xff09; 3. 常用的磁盘命令 4. 查看系统信息的命…

golang第一卷---go入门

go入门 对于使用go的好处环境变量配置开发工具 参考网站 &#xff1a;go入门 对于使用go的好处 简单好记的关键词和语法。轻松上手&#xff0c;简单易学。更高的效率。比Java&#xff0c;C等拥有更高的编译速度&#xff0c;同时运行效率媲美C&#xff0c;同时开发效率非常高。…

爬虫工作量由小到大的思维转变---<第三十三章 Scrapy Redis 23年8月5日后会遇到的bug)>

前言: 收到回复评论说,按照我之前文章写的: 爬虫工作量由小到大的思维转变---&#xff1c;第三十一章 Scrapy Redis 初启动/conn说明书)&#xff1e;-CSDN博客 在启动scrapy-redis后,往redis丢入url网址的时候遇到: TypeError: ExecutionEngine.crawl() got an unexpected …