最优化方法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://xiahunao.cn/news/2661217.html

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

相关文章

Golang 链表的基础知识

文章目录 链表链表基础知识部分链表的存储方式链表的定义链表的操作性能分析相关leetcode题目 链表 更多有关于go链表的内容可以见这篇文章链表的创建和读取 链表基础知识部分 什么是链表,链表是一种通过指针串联在一起的线性结构,每一个节点由两部分…

二、类与对象(三)

17 初始化列表 17.1 初始化列表的引入 之前我们给成员进行初始化时,采用的是下面的这种方式: class Date { public:Date(int year, int month, int day)//构造函数{_year year;_month month;_day day;} private:int _year;int _month;int _day; };…

Spring-4-代理

前面提到过,在Spring中有两种类型的代理:使用JDK Proxy类创建的JDK代理以及使用CGLIB Enhancer类创建的基于CGLIB的代理。 你可能想知道这两种代理之间有什么区别,以及为什么 Spring需要两种代理类型。 在本节中,将详细研究代理…

fastadmin想自定义表格的样式,可以使用模板渲染并在模板中调用自定义的方法

fastadmin 如何在模板中使用自定义的方法 比如页面上要对返回的时间&#xff0c;电话&#xff0c;身份证做处理 html页面 <script type"text/html" id"itemtpl"><span id"<%item.id%>" class"margins mobile"><…

播放海康摄像头直播流使用笔记

1、将海康摄像头绑定到萤石云平台&#xff0c;并查看直播流 2、项目中使用 1、安装hls cnpm i hls.js 2、封装组件&#xff08;在components文件夹下新建bodyCapture文件夹下index.vue&#xff09; <template><el-dialogtitle"遗体抓拍"class"bo…

面试题:MySQL 自增主键一定是连续的吗?

文章目录 测试环境&#xff1a;一、自增值的属性特征&#xff1a;1. 自增主键值是存储在哪的&#xff1f;2. 自增主键值的修改机制&#xff1f; 二、新增语句自增主键是如何变化的&#xff1a;三、自增主键值不连续情况&#xff1a;&#xff08;唯一主键冲突&#xff09;四、自…

YBM41567/4A 20V1.0A线性锂电池充电管理芯片

YBM41567/4A 20V1.0A线性锂电池充电管理芯片 概述&#xff1a; YB4156/7/4A是一款狸电池充电管理芯片&#xff0c;集成涓流、恒流、恒压三段式线性充电管理&#xff0c;符合锂电池安全充电规范。充电输入耐压高达24V,充电电流高至1.0A,可通过片外电阻配置。YB4156/7/4A集成防…

【数据结构和算法】独一无二的出现次数

其他系列文章导航 Java基础合集数据结构与算法合集 设计模式合集 多线程合集 分布式合集 ES合集 文章目录 其他系列文章导航 文章目录 前言 一、题目描述 二、题解 2.1 哈希类算法题注意事项 2.2 方法一&#xff1a;判断长度 2.3 方法二&#xff1a; set 判断 2.4 方法…

《手把手教你》系列练习篇之5-python+ selenium自动化测试(详细教程)

1.简介 相信各位小伙伴或者同学们通过前面已经介绍了的PythonSelenium基础篇&#xff0c;通过前面几篇文章的介绍和练习,SeleniumPython的webUI自动化测试算是 一只脚已经迈入这个门槛了要想第二只脚也迈进来。那么就要继续跟随宏哥的脚步继续前行。接下来&#xff0c;宏哥 计…

GLTF编辑器-位移贴图实现破碎的路面

在线工具推荐&#xff1a; 3D数字孪生场景编辑器 - GLTF/GLB材质纹理编辑器 - 3D模型在线转换 - Three.js AI自动纹理开发包 - YOLO 虚幻合成数据生成器 - 三维模型预览图生成器 - 3D模型语义搜索引擎 位移贴图是一种可以用于增加模型细节和形状的贴图。它能够在渲染时针…

C# Winform教程(二):基础窗口程序

1、介绍 winform应用程序是一种智能客户端技术&#xff0c;我们可以使用winform应用程序帮助我们获得信息或者传输信息等。 2、常用属性 Name&#xff1a;在后台要获得前台的控件对象&#xff0c;需要使用Name属性。 Visible&#xff1a;指示一个控件是否可见、 Enable&…

idea 插件开发之 HelloWorld

前言 本文使用的 idea 2023.3 版本进行插件入门开发&#xff0c;首先要说明的是 idea 2023 版本及以后的 idea&#xff0c;对插件开发进行了一定程度的变动&#xff1a; 1、创建项目时不再支持 maven 选项 2、必须是 jdk17 及以后版本&#xff08;点击查看官网版本对应关系&…

【嵌入式开发 Linux 常用命令系列 7.3 -- linux 命令行数值计算】

文章目录 linux 命令行数值计算使用 awk使用 bc 命令使用 Bash 的内置算术扩展使用 expr脚本命令实现 linux 命令行数值计算 在 Linux 命令行中&#xff0c;您可以使用多种方法来执行基本的数学运算。以下是一些示例&#xff1a; 使用 awk awk 是一个强大的文本处理工具&…

【12.28】转行小白历险记-刷算法04

01两两交换链表中的节点 整体思路 1.要修改后一个节点的指向一定要知道前一个节点的指向才可以改变后面一个节点的 2.分情况奇数和偶数节点&#xff0c;终止条件很重要 3.虚拟头节点&#xff0c;是对我们操作的指针是不是头节点进行判断 02删除链表的倒数第N个节点 思路 …

深入理解 C# 中的字符串比较:String.CompareTo vs String.Equals

深入理解 C# 中的字符串比较&#xff1a;String.CompareTo vs String.Equals 在处理字符串时&#xff0c;了解如何正确比较它们对于编写清晰、有效和可靠的 C# 程序至关重要。本文将深入探讨 C# 中的两个常用字符串比较方法&#xff1a;String.CompareTo 和 String.Equals&…

写在2023岁末:敏锐地审视量子计算的当下

本周&#xff0c;《IEEE Spectrum》刊登了一篇出色的文章&#xff0c;对量子计算&#xff08;QC&#xff09;的近期前景进行了深入探讨。 文章的目的并不是要给量子计算的前景泼冷水&#xff0c;而是要说明量子计算的前景还很遥远&#xff0c;并提醒读者量子计算的用例可能很窄…

自定义注解 - java文档生成、结合SpringBoot使用

参考资料&#xff1a; 参考视频 拦截器自定义注解 AOP自定义注解 通过AOP获取属性 拦截器、过滤器、AOP的区别和联系 个人学习笔记及源码 注&#xff1a;这里仅讲怎么使用&#xff0c;具体原理请参考个人学习笔记 自定义注解源码介绍&#xff1a; 其中视频例子2为上述参…

uniapp:全局消息是推送,实现app在线更新,WebSocket,apk上传

全局消息是推送&#xff0c;实现app在线更新&#xff0c;WebSocket 1.在main.js中定义全局的WebSocket2.java后端建立和发送WebSocket3.通知所有用户更新 背景&#xff1a; 开发人员开发后app后打包成.apk文件&#xff0c;上传后通知厂区在线用户更新app。 那么没在线的怎么办&…

如何文件从电脑传到iPhone,这里提供几个方法

本文介绍了如何使用Finder应用程序、iTunes for Windows、iCloud和谷歌照片将照片从Mac或PC传输到iPhone。 如何将照片从Mac传输到iPhone 如果你有一台Mac电脑&#xff0c;里面装满了你想转移到iPhone的照片&#xff0c;这是一件非常简单的事情。只需遵循以下步骤&#xff1a…

参数归一化-实现时间格式化

文章目录 需求分析具体实现完整源码 不知道大家有没有尝试封装过一个时间格式化的函数啊&#xff0c;在之前我封装的时候&#xff0c;开始是觉得手到擒来&#xff0c;但是实践之后发现写非常的shi啊&#xff0c;大量的分支判断&#xff0c;哪怕是映射起到的作用也只是稍微好一点…