处理多维特征的输入(Multiple Dimension Input)

 输入x有多个特征features,最终得到输出y的类别。

在上一节提到,左边是我们最开始了解的线性回归,右边是我们的logistics回归(返回值为一个离散的集合)。对于本节,就是在logistics回归输入x的基础上让其多一些特征。如下

每一行叫一个sample。每一列叫一个feature。

一:多维度特征模型

计算y_hat模型的变化:

   

根据上图的计算过程,得出我们的代码:

class Model(torch.nn.Module):def __init__(self):super(LogisticRegressionModel,self).__init__()self.linear = torch.nn.Linear(8,1)self.sigmoid = torch.nn.Sigmoid()def forward(self,x):#logistic回归和线性回归就差F.sigmoid这一步的运算 y_pred = F.sigmoid(self.linear(x))#先进行一次线性变换,随后进行sigmoid运算return y_predmodel = Model()

把之前的(1,1)变成(8,1)就可以,为什么是这样,可以看下图 。其实就是把八维的空间向量映射到一维的空间向量上。

维度是可以从高到低,也可以从低到高。

中间的步骤越多,中间的神经元越多,对非线性变化的学习能力就越强(那就好奇,学习能力强不是好事吗?那我直接从最高维一步一步变成最低维就好了)。

其实不然,学习能力越强并不一定是好事,因为学习能力过强,会将我们数据的噪声学会,而噪声是我们不想要的(希望最终的学习能力要有泛化能力)。

二:神经网络的构造

 

最开始输入是八维,通过layer1变成六维,使用Linear(8,6)

变换后的输入是六维,通过layer2变成四维,使用Linear(6,4)

最后使用得到的四维为输入,通过layer3变成一维,使用Linear(4,1)

分层降维可以学到更多的数据特征,但是过多层就会导致过拟合问题出现。

神经网络解决多维数据的分类问题四大步:建立数据集,设计模型,构造损失和优化器,训练。

三:数据集准备

最好准好csv文件,有比较全面的数值。课程所有的所需文件。

链接:https://pan.baidu.com/s/1cUI518pgLWY1oCn2DkjuEQ?pwd=kif1  提取码:kif1

import numpy as np
import torch
xy = np.loadtxt("./dataset/diabetes.csv",delimiter=',',dtype=np.float32)#糖尿病人的相关因素
x_data = torch.from_numpy(xy[:,:-1])#所有行,从第一列开始到最后一列(最后一列不要)
y_data = torch.from_numpy(xy[:,[-1]])#所有行,最后一列([]是为了保证最后一列是一个矩阵,否则就是一个向量)

 
四:建立模型

以上是模型的建立过程,一下是代码部分:

class Model(torch.nn.Module):def __init__(self):super(Model,self).__init__()self.linear1 = torch.nn.Linear(8,6)self.linear2 = torch.nn.Linear(6,4)self.linear3 = torch.nn.Linear(4,1)self.sigmoid = torch.nn.Sigmoid()def forward(self,x):x = self.sigmoid(self.linear1(x))#此时的x为图中的o1x = self.sigmoid(self.linear2(x))#此时的x为图中的o2x = self.sigmoid(self.linear3(x))#此时的x为图中的y_hat#在实际编写时,取前一个结果为当前输入,一系列同样操作时,建议只使用一个变量xreturn xmodel = Model()

五:构造损失和优化器

 

 与上一章没区别,因为损失依然是一个二分类的概率。

criterion = torch.nn.BCELoss(size_average=False)
optimizer = torch.optim.SGD(model.parameters(),lr=0.01)

五:训练模型 

由于数据量比较多,我们通常使用mini-batch,但是此时我们没使用,后续在DataLoader会使用。

for epoch in range(100):#Forwardy_pred = model(x_data)  #先计算出y_hatloss = criterion(y_pred,y_data) #再计算出lossprint(epoch,loss.item()) #Backwardoptimizer.zero_grad()#在反馈前将梯度清0loss.backward()#反馈#Updataoptimizer.step()#更新

大家可以使用其他的激活函数,我们使用的是sigmoid,下面也列出来了很多的激活函数,大家可以自己尝试使用(ReLU)。

 

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

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

相关文章

中伟视界:矿山智能化——AI引领创新,行车不行人检测算法实现实时预警,防范行车不行人事故发生

行车不行人检测AI分析算法通过利用人工智能和深度学习技术,对井下行人和车辆的行驶情况进行实时检测和识别。该算法在提升矿山安全管理、减少事故发生方面具有重要作用。本文将详细介绍该AI算法的识别过程、应用场景及其技术特点。 一、识别过程 行车不行人检测AI分…

Hadoop安装报错

报错:ERROR 2023-03-09 21:33:00,178 NetUtil.py:97 - SSLError: Failed to connect. Please check openssl library versions. 解决方案: 在安装失败得客户端执行 编辑 /etc/python/cert-verification.cfg 配置文件,将 [https] 节的 verify 项 设为禁用…

怎么查看一个网站的ip地址?

1、使用nslookup nslookup 是一个网络诊断工具,用于查询域名系统(DNS)记录,将域名解析为IP地址,或者查询其他DNS记录类型,如MX(邮件交换记录)、CNAME(别名记录&#xff…

css - - - - - 环形倒计时进度条实现

css - - - - - 环形倒计时进度条实现 1. 效果图展示2. 代码展示 1. 效果图展示 2. 代码展示 // html <view class"father"><view class"progress" style"--progress:{{red}}; --last:{{gray}}"></view> </view>// css …

mac合并pdf文件最简单的方法,mac如何合并pdf文件

在数字化办公和学习的过程中&#xff0c;pdf 格式因其稳定性和跨平台兼容性而广受欢迎。但有时候&#xff0c;我们免不了需要将多个pdf文件合并为一个&#xff0c;以便于管理和分享。今天&#xff0c;就让我来为大家介绍几种简单高效的pdf合并方法&#xff0c;让你轻松合并文件…

深度学习落地实战:手势识别

前言 大家好&#xff0c;我是机长 本专栏将持续收集整理市场上深度学习的相关项目&#xff0c;旨在为准备从事深度学习工作或相关科研活动的伙伴&#xff0c;储备、提升更多的实际开发经验&#xff0c;每个项目实例都可作为实际开发项目写入简历&#xff0c;且都附带完整的代…

Android 11 HAL层集成FFMPEG

1.集成目录&#xff1a; android/vendor/noch/common/external/NoboMediaCodec 2.文件夹目录 3. Android.mk实现 # Copyright #LOCAL_PATH : $(call my-dir)SF_COMMON_MK : $(LOCAL_PATH)/common.mkinclude $(call first-makefiles-under,$(LOCAL_PATH))4.common.mk实现 # #…

【EI检索】第二届机器视觉、图像处理与影像技术国际会议(MVIPIT 2024)

一、会议信息 大会官网&#xff1a;www.mvipit.org 官方邮箱&#xff1a;mvipit163.com 会议出版&#xff1a;IEEE CPS 出版 会议检索&#xff1a;EI & Scopus 检索 会议地点&#xff1a;河北张家口 会议时间&#xff1a;2024 年 9 月 13 日-9 月 15 日 二、征稿主题…

Mysql解忧杂货铺

欢迎来到一夜看尽长安花 博客&#xff0c;您的点赞和收藏是我持续发文的动力 对于文章中出现的任何错误请大家批评指出&#xff0c;一定及时修改。有任何想要讨论的问题可联系我&#xff1a;3329759426qq.com 。发布文章的风格因专栏而异&#xff0c;均自成体系&#xff0c;不足…

【python虚拟环境管理】【mac m3】 使用pipx安装poetry

文章目录 一. 安装 pipx二. 安装Poetry1. 安装2. advanced 操作 官网文档&#xff1a;https://python-poetry.org/docs/ pipx介绍文档&#xff1a;https://blog.51cto.com/u_15064632/2570626 一. 安装 pipx pipx 用于全局安装 Python 命令行应用程序&#xff0c;同时在虚拟环…

注册安全分析报告:OneApm

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 暴力破解密码&#xff0c;造成用户信息泄露短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造成亏损无底洞 …

【大型实战】企业网络实验(华为核心交换、ESXI7.0vmware虚拟机、DHCP中继、服务端网络及用户端网络配置)

需求 实验 vmware网络配置&#xff08;企业内部一般为ESXI&#xff09; 这样服务器虚拟机使用192.168.200.X网段才能与用户侧互通 vmware虚拟机配置&#xff08;DHCP服务器网络配置&#xff09; 打开网络管理页面 nmtui重置一下网络连接&#xff08;重启网卡&#xff09; …

十分钟“手撕”七大排序

前言&#xff1a;可以通过目录来找你需要的排序的源代码。先是解释底层原理&#xff0c;后附带代码。 目录 稳定的概念 一、插入排序 二、希尔排序 三、选择排序 四、堆排序 五、冒泡排序 六、快速排序 七、归并排序 八、排序总结 额外&#xff1a;计数排序 稳定的…

论文翻译:Explainability for Large Language Models: A Survey

https://arxiv.org/pdf/2309.01029 目录 可解释性在大型语言模型中&#xff1a;一项调查摘要1 引言2 LLMs的训练范式2.1 传统微调范式2.2 提示范式 3 传统微调范式的解释3.1 局部解释3.1.1 基于特征归因的解释3.1.2 基于注意力的解释3.1.3 基于示例的解释 3.2 全局解释3.2.1 基…

大规模优化问题,Scipy?Ceres?PyTorch!

背景&#xff1a; 优化问题一般通过scipy.optimize或者Ceres Solver优化器求解。但在参数量较大的优化问题上&#xff0c;scipy提供的BFGS、L-BFGS-B、CG、SLSQP等梯度优化算法其复杂度和存储需求指数级上升&#xff0c;无法满足计算效率&#xff1b;而Ceres需要额外的语言来支…

VTK----3D picking的原理、类型及实现

目录 3D picking概述 3D射线投射原理 VTK picking框架 vtkPicker(选Actor) vtkPointPicker(选点) vtkCellPicker(选单元) vtkAreaPicker(框选) 3D picking概述 3D picking 是一种在三维场景中确定用户点击或指向的对象的技术。这在3D应用程序和游戏中非常常见,…

React Native 自定义 Hook 获取组件位置和大小

在 React Native 中自定义 Hook useLayout 获取 View、Pressable 等组件的位置和大小的信息 import {useState, useCallback} from react import {LayoutChangeEvent, LayoutRectangle} from react-nativeexport function useLayout() {const [layout, setLayout] useState&l…

JavaScript Math 函数举例

https://andi.cn/page/621577.html

Mongodb数组字段索引之多键索引

学习mongodb&#xff0c;体会mongodb的每一个使用细节&#xff0c;欢迎阅读威赞的文章。这是威赞发布的第92篇mongodb技术文章&#xff0c;欢迎浏览本专栏威赞发布的其他文章。如果您认为我的文章对您有帮助或者解决您的问题&#xff0c;欢迎在文章下面点个赞&#xff0c;或者关…

【中项第三版】系统集成项目管理工程师 | 第 5 章 软件工程② | 5.4 - 5.8

前言 第 5 章对应的内容选择题和案例分析都会进行考查&#xff0c;这一章节属于技术的内容&#xff0c;学习要以教材为准。 目录 5.4 软件实现 5.4.1 软件配置管理 5.4.2 软件编码 5.4.3 软件测试 5.5 部署交付 5.5.1 软件部署 5.5.2 软件交付 5.5.3 持续交付 5.5.4…