01- 收入数据集【Pytorch入门实战】

news2024/9/21 0:44:24

目录

一、机器学习基础

二、实战例子

1.数据集分析

2.实战训练

3.总结

三、参考资料


一、机器学习基础

为了解决这个问题,人们想到数据驱动方法,也就是让计算机从现有的大量的带标签图片电学习规律,一旦计算机学习到了其中的规律,当我们输入一张新的图片给计算机时,它就可以准确的预测出这张图片到底是猫还是狗。

数据驱动方法是一种基于大量数据进行决策、预测和模式识别的方法。

这里有两个关键的因素:

一是大量的可学习数据,比如带标签的猫狗图片,二是学习的主体,我们一般称之为模型。

如何理解模型呢?

你可以把模型认为是一个映射函数,它包含一些参数,这些参数可以与输入进行计算得到一个输出,我们一般称之为预测结果

所谓模型学习的过程,就是模型修正其参数、改进映射关系的过程,可以简单的把模型的学习过程总结如下,以预测图片是猫还是狗为例:

1.创建模型;

2.输入一张带标签的图片;

3.使用模型对此图片做出预测

4.将预测结果与实际标签比较,产生的差距为损失

5.以减小损失为优化目标,根据损失优化模型参数,

6.循环重复上述第2-5步

二、实战例子

学习的例子使用的是“受教育程度与收入数据集”

1.数据集分析

单变量线性回归算法(比如,x代表学历,f(x)代表收入)

f(x)= w*+ b  --->    我们使用f(x)这个函数来映射输入特征和输出值

目标:预测函数f(x)与真实值之间的整体误差最小。

如何定义误差最小呢?

减小误差(直线距离两边的点越近越好【绝对值小,难以计算,使用均方误差代替】)

损失函数:使用均方差作为作为成本函数也就是 预测值和真实值之间差的平方取均值

优化的目标(y代表实际的收入)

找到合适的 w 和 b ,使得(f(x)- y)2越小越好

注意:现在求解的是参数 w和 b

如何优化?

使用梯度下降算法。

2.实战训练

①首先是用到的库

import os    
os.environ['KMP_DUPLICATE_LIB_OK'] = 'True'
import torch
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt    #Matplotlib是一个用于数据可视化的Python绘图库。

查看torch版本

torch.__version__

 

②读取数据集,并查看数据集的部分信息。

data = pd.read_csv('datasets/Income1.csv')
data.head()

 

将 data.Education 的值转换为一个二维数组,其中每个元素都是一个单独的列。

data.Education.values.reshape(-1,1)

将一个NumPy数组转换为PyTorch张量,并将其类型设置为FloatTensor。

③得到模型输入与结果

X = torch.from_numpy(data.Education.values.reshape(-1,1)).type(torch.FloatTensor)
Y = torch.from_numpy(data.Income.values.reshape(-1,1)).type(torch.FloatTensor)

查看X、Y的形状:

X.shape,Y.shape

 

④创建模型

from torch import nn     #torch中的高阶模块,包含各种层&损失函数

class EIModel(nn.Module):
    def __init__(self):                   #初始化方法
        super(EIModel, self).__init__()
        self.linear = nn.Linear(1, 1)     #输入的特征长度为1,输出的特征长度为1
    def forward(self, inputs):            #如何应用这些层(前向传播)
        logits = self.linear(inputs)
        return logits
#实例化模型

model = EIModel()

查看模型结构:一个线性层

⑤损失函数&优化器

loss_fn = nn.MSELoss()    #均方误差损失

opt = torch.optim.SGD(model.parameters(), lr=0.0001)    #随机梯度下降

 model.parameters()返回模型的可训练参数【优化的目标】,lr超参数

⑥训练

for epoch in range(1000):
    for x, y in zip(X, Y):
        y_pred = model(x)     #x输入得到y_pred输出,在model上调用,输入x,被forward方法的inputs接受。【模型预测】
        loss = loss_fn(y_pred, y)    #计算损失(input,target)【计算损失】
        
        opt.zero_grad()    #设置每次梯度清零【梯度清零】
        loss.backward()    #计算梯度(下降最快的方向)【损失反向传播】
        opt.step()    #改变参数,使参数沿着下降最快的方向移动【损失优化参数】
        

查看模型训练后的参数

model.linear.weight,model.linear.bias   #返回linear层的weight和bias

⑦绘制图像

plt.scatter(data.Education, data.Income)
plt.xlabel('Education')
plt.ylabel('Income')

plt.plot(X, model(X).detach().numpy(), 'r')

3.总结

输入数据处理

创建一个合适模型

训练

预测、评价

--->

机器学习:抽象出一条直线,来拟合现有的数据。【映射函数,输入映射输出】

三、参考资料

Pytorch深度学习入门与实战 - 网易云课堂 (163.com)

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

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

相关文章

【绝命Coding助力秋招】Python实现<实习僧>海投脚本

hello hello~ ,这里是绝命Coding——老白~💖💖 ,欢迎大家点赞🥳🥳关注💥💥收藏🌹🌹🌹 💥个人主页:绝命Coding-CSDN博客 &a…

异常、File

异常、File 异常 异常就是代表程序出现的问题 Error:代表的系统级别错误(属于严重问题)。系统一旦出现问题,sun公司会把这些错误封装成Error对象。Error是给sun公司自己用,不是给我们程序员用的。因此我们开发人员不…

SpringCloud--常用组件和服务中心

常用组件 Euroke和nacos 区别 负载均衡 负载均衡策略有哪些 自定义负载均衡策略

AV1 编码标准中帧内预测技术概述

AV1 编码标准帧内预测 AV1(AOMedia Video 1)是一种开源的视频编码格式,旨在提供比现有标准更高的压缩效率和更好的视频质量。在帧内预测方面,AV1相较于其前身VP9和其他编解码标准,如H.264/AVC和H.265/HEVC,…

自建文件分享平台Pingvin Share系统

Pingvin Share可以用来代替 WeTransfer 等的分享网站,如果你有自己的服务器,可以支持通过 Docker 部署或者 Stand-alone 部署。 功能介绍 完全自建:轻松使用私有服务器搭建文件共享平台 完全隐私:你的文件只属于你!不…

相交链表+判断环型链表+求环型链表的入口节点

链表OJ题 一.相交链表二.判断环型链表三.求环型链表的入口节点 一.相交链表 相交链表 相交:两个链表从头开始遍历,尾节点一定是同一个节点。 情况一:当两个链表长度相同时: 情况二:当两个链表长度不同时&#xff1…

【详解】Spring Cloud概述

🎥 个人主页:Dikz12🔥个人专栏:Spring学习之路📕格言:吾愚多不敏,而愿加学欢迎大家👍点赞✍评论⭐收藏 目录 1. 认识微服务 1.1 单体架构 1.2 集群和分布式架构 1.3 集群和分布式…

如何利用windows本机调用Linux服务器,以及如何调用jupyter界面远程操控

其实这篇文章没必要存在,教程太多了 参考博客(1 2 3),如侵删 奈何网上的大神总是会漏掉一些凡人遇到的小问题 (1) 建议下载PuTTy for windows,从而建立与远程服务器的SSH连接 需要确认目标服…

nodejs安装部署运行vue前端项目

文章目录 1.安装nodejs2.安装Vue CLI1.配置npm镜像源:2.安装Vue CLI:3.创建Vue项目4.启动Vue项目5.Express 1.安装nodejs Node.js 是一个免费、开源、跨平台的 JavaScript 运行时环境,它让开发人员能够创建服务器、Web 应用、命令行工具和脚…

【C++PythonJava】字符处理详细解读_字符_ASCLL码_字母数字转换_算法竞赛_开发语言

文章目录 Beginning1)ASCLL 码2)大小比较2)判断数字字符3)字符、数字间的相互转换End Beginning 在 C 中,字符和整数有着密不可分的关系。原因就是在计算机中,字符是以一种较 ASCLL 码的整数存储的。自然&…

SpringSecurity框架【认证】

目录 一. 快速入门 二. 认证 2.1 登陆校验流程 2.2 原理初探 2.3 解决问题 2.3.1 思路分析 2.3.2 准备工作 2.3.3 实现 2.3.3.1 数据库校验用户 2.3.3.2 密码加密存储 2.3.3.3 登录接口 2.3.3.4 认证过滤器 2.3.3.5 退出登录 Spring Security是Spring家族中的一个…

C语言之qsort函数

一、qsort 1.库函数qsort qsort是库函数&#xff0c;直接可以用来排序数据&#xff0c;底层使用的是快速排序。 qsort函数可以排序任意类型的数据。 2.头文件 #include<stdlib.h> 3.参数讲解 void*类型的指针是无具体类型的指针&#xff0c;这种类型的指针的不能直接解…

Still-Moving效果惊艳!无需定制视频数据,DeepMind让文生定制视频变得简单!

文章链接&#xff1a; https://arxiv.org/pdf/2407.08674 github链接&#xff1a; https://still-moving.github.io/ Still-Moving 自定义文本生成图像&#xff08;T2I&#xff09;模型最近取得了巨大进展&#xff0c;尤其是在个性化、风格化和条件生成等领域。然而&#xff0c…

星辰计划02-独特视角的spring动态代理

承接上一文 动态代理 &#xff0c;这里探究spring 动态代理 会话1&#xff1a;spring动态代理 quick start &#x1f467;哥哥&#xff0c;哥哥&#xff0c;spring 怎么去搞动态代理的呢&#x1f468; 来来来&#xff0c;听我细细来说 quick start通过Spring的 ProxyFactory…

学习小记-Nacos的服务注册与发现原理

服务注册&#xff1a; 当一个服务实例启动时&#xff0c;它会向 Nacos 服务器注册自己的信息&#xff0c;包括 IP 地址、端口号、元数据&#xff08;如服务版本、区域信息等&#xff09;。服务实例使用 Nacos API 发送注册请求&#xff0c;Nacos 服务器接收请求并存储服务实例信…

浅聊授权-spring security和oauth2

文章目录 前言自定义授权spring security授权oauth2授权概述 前言 通常说到授权&#xff0c;就会想到登录授权、token令牌、JWT等概念&#xff0c;授权。顾名思义就是服务器授予了客户端访问资源的权益&#xff0c;那么要实现授权有几种方案呢&#xff0c;三种授权方式在公司项…

Python个性化电影推荐系统的设计与实现

&#x1f497;博主介绍&#x1f497;&#xff1a;✌在职Java研发工程师、专注于程序设计、源码分享、技术交流、专注于Java技术领域和毕业设计✌ 温馨提示&#xff1a;文末有 CSDN 平台官方提供的老师 Wechat / QQ 名片 :) Java精品实战案例《700套》 2025最新毕业设计选题推荐…

客户端通过服务器进行TCP通信(三)

一. 对TCP的基础讲解 服务端 1. 首先创建一个套接字&#xff0c;TCP是面向字节流的套接字&#xff0c;故需要使用SOCK_STREAM 2. 然后使用bind()函数将套接字与服务器地址关联(如果是在本地测试&#xff0c;直接将地址设置为217.0.0.1或者localhost&#xff0c;端口号为1000…

Mac电脑下运行java命令行出现:错误: 找不到或无法加载主类

mac 电脑 问题复现 随手写了一个main方法&#xff0c;想用命令行操作 进入 BlockDemo.java 所在目录&#xff1a; wnwangnandeMBP wn % cd /Users/wn/IdeaProjects/test/JianZhiOffer/src/main/java/com/io/wn wnwangnandeMBP wn % ls -l total 16 -rw-r--r-- 1 wangnan …

前端框架学习之 搭建vue2的环境 书写案例并分析

目录 搭建vue的环境 Hello小案例 分析案例 搭建vue的环境 官方指南假设你已经了解关于HTML CSS 和JavaScript的中级知识 如果你刚开始学习前端开发 将框架作为你的第一步可能不是最好的主意 掌握好基础知识再来吧 之前有其他框架的使用经验会有帮助 但这不是必需的 最…