人工智能之机器学习-逻辑回归、回归(Regression)-Pytorch快速实现
文章目录
- 概述
- 直接上pytorch
- 网络搭建
- 设置优化器
- 选择损失函数
- 开始训练(炼丹)
- 测试模式(nograd)
- 进阶指南
听说点进蝈仔帖子的都喜欢点赞加关注~~
老规矩,先送上官网,建议不知道优化器,损失函数,网络模型的朋友们看看官网
https://pytorch.org/
https://pytorch.org/docs/stable/nn.html
基本都在torch.nn下
鸣谢:
https://zhuanlan.zhihu.com/p/74874291?utm_source=com.youdao.note
https://zhuanlan.zhihu.com/p/86982616
https://zhuanlan.zhihu.com/p/127972563
先拿出宝可梦之王李老师的课件
概述
先给个直观的描述。
回归问题是机器学习三大基本模型中很重要的一环,其功能是建模和分析变量之间的关系。
回归问题多用来预测一个具体的数值,如预测房价、未来的天气情况等等。例如我们根据一个地区的若干年的PM2.5数值变化来估计某一天该地区的PM2.5值大小,预测值与当天实际数值大小越接近,回归分析算法的可信度越高。
面对一个回归问题,我们可简要描述其求解流程:
选定训练模型,即我们为程序选定一个求解框架,如线性回归模型(Linear Regression)等。
导入训练集 train_set,即给模型提供大量可供学习参考的正确数据。
选择合适的学习算法,通过训练集中大量输入输出结果让程序不断优化输入数据与输出数据间的关联性,从而提升模型的预测准确度。
在训练结束后即可让模型预测结果,我们为程序提供一组新的输入数据,模型根据训练集的学习成果来预测这组输入对应的输出值。
李宏毅李老师这么说:
关键的loss,也是训练所要做的事情
直接上pytorch
注意:这里使用cpu模式,可以增加todevice的cuda判断使用cuda加速运算。
网络搭建
class LinearRegression(torch.nn.Module):"""Linear Regressoin Module, the input features and output features are defaults both 1"""def __init__(self):super().__init__()self.linear = torch.nn.Linear(1,1)def forward(self,x):out = self.linear(x)return out
设置优化器
self.optimizer = torch.optim.Adam(self.model.parameters(), lr=self.learning_rate)
torch.optim.Adam(params,lr,betas, eps=,weight_decay,amsgrad)
选择损失函数
这里使用最为常用的mseloss方法
self.loss_function = torch.nn.MSELoss()
开始训练(炼丹)
import torch
import matplotlib.pyplot as pltdef create_linear_data(nums_data, if_plot= False):"""Create data for linear modelArgs:nums_data: how many data points that wantedReturns:x with shape (nums_data, 1)"""x = torch.linspace(0,1,nums_data)x = torch.unsqueeze(x,dim=1)k = 2y = k * x + torch.rand(x.size())if if_plot:plt.scatter(x.numpy(),y.numpy(),c=x.numpy())plt.show()data = {"x":x, "y":y}return datadata = create_linear_data(300, if_plot=True)
print(data["x"].size())def train(self, data, model_save_path="model.pth"):"""Train the model and save the parametersArgs:model_save_path: saved name of modeldata: (x, y) = data, and y = kx + bReturns: None"""x = data["x"]y = data["y"]for epoch in range(self.epoches):prediction = self.model(x)loss = self.loss_function(prediction, y)self.optimizer.zero_grad()loss.backward()self.optimizer.step()if epoch % 500 == 0:print("epoch: {}, loss is: {}".format(epoch, loss.item()))torch.save(self.model.state_dict(), "linear.pth")
测试模式(nograd)
def test(self, x, model_path="linear.pth"):"""Reload and test the model, plot the predictionArgs:model_path: the model's path and namedata: (x, y) = data, and y = kx + bReturns:None"""x = data["x"]y = data["y"]self.model.load_state_dict(torch.load(model_path))prediction = self.model(x)plt.scatter(x.numpy(), y.numpy(), c=x.numpy())plt.plot(x.numpy(), prediction.detach().numpy(), color="r")plt.show()
进阶指南
这块想要进阶只能在dataloader和batch上下文章了,加快训练速度并且提升模型泛化能力,其他的好像没有什么可以做的了。
人工智能之机器学习-逻辑回归、回归(Regression)-Pytorch快速实现相关推荐
- 【人工智能】机器学习:岭回归与LASSO回归(Ridge/LASSO Regression)
机器学习:岭回归与LASSO回归 (Ridge / LASSO Regression) 文章目录 机器学习:岭回归与LASSO回归 (Ridge / LASSO Regression) 1. Ridg ...
- Coursera公开课笔记: 斯坦福大学机器学习第六课“逻辑回归(Logistic Regression)”
Coursera公开课笔记: 斯坦福大学机器学习第六课"逻辑回归(Logistic Regression)" 斯坦福大学机器学习第六课"逻辑回归"学习笔记,本次 ...
- 斯坦福大学机器学习第四课“逻辑回归(Logistic Regression)”
斯坦福大学机器学习第四课"逻辑回归(Logistic Regression)" 本次课程主要包括7部分: 1) Classification(分类) 2) Hypothesis R ...
- 机器学习笔记04:逻辑回归(Logistic regression)、分类(Classification)
之前我们已经大概学习了用线性回归(Linear Regression)来解决一些预测问题,详见: 1.<机器学习笔记01:线性回归(Linear Regression)和梯度下降(Gradien ...
- 机器学习--逻辑回归模型(Logistic Regression)
1.逻辑回归 逻辑回归(Logistic Regression)是一种用于二元分类问题的机器学习算法.逻辑回归的目的是基于输入特征预测一个样本属于某个特定的类别的概率. 逻辑回归的核心思想是将线性回归 ...
- 机器学习:逻辑回归(logistics regression)
title: 机器学习:逻辑回归(logistics regression) date: 2019-11-30 20:55:06 mathjax: true categories: 机器学习 tags ...
- 吴恩达机器学习 8.6 逻辑回归(Logistic Regression)
6.1 分类问题 参考文档: 6 - 1 - Classification (8 min).mkv 在这个以及接下来的几个视频中,开始介绍分类问题. 在分类问题中,你要预测的变量 $y$ 是离散的值, ...
- Lecture6 逻辑斯蒂回归(Logistic Regression)
目录 1 常用数据集 1.1 MNIST数据集 1.2 CIFAR-10数据集 2 课堂内容 2.1 回归任务和分类任务的区别 2.2 为什么使用逻辑斯蒂回归 2.3 什么是逻辑斯蒂回归 2.4 Si ...
- 逻辑回归(logistic regression)的本质——极大似然估计
文章目录 1 前言 2 什么是逻辑回归 3 逻辑回归的代价函数 4 利用梯度下降法求参数 5 结束语 6 参考文献 1 前言 逻辑回归是分类当中极为常用的手段,因此,掌握其内在原理是非常必要的.我会争 ...
最新文章
- 使用复合索引代替单键索引,来避免单键有null值的情况
- 蓝桥杯 算法训练 最大的算式
- mybaits九:自定义结果映射规则
- 自动驾驶「无视」障碍物:百度研究人员攻陷激光雷达
- [vue] 为什么data属性必须声明为返回一个初始数据对应的函数呢?
- 如何利用小熊派获取MPU6050六轴原始数据
- [转]地图的色彩设计——艺术与技术共存
- python 读取文本文件_如何在Python中读取大文本文件
- ElasticSearch 状态查询Cat接口
- js 正则去前后空格且长度不大于20_js去除空格的正则用法
- PWM驱动MOS管H桥电路
- 如何让计算机断开网络连接网络设置,电脑怎样设置定时断网,教您怎么设置
- android 用户绑定银行卡,android 开发 怎么实现银行卡转账,绑定银行卡。 怎么实现评论回复功能。...
- 易基因|表观发育:ChIP-seq揭示精子H3K4me3可传递到胚胎并与代谢功能障碍遗传有关
- 基于IFB对网络入口流量设置Qos策略
- 【生信分析】生物分子网络构建基础——酶动力学
- VS Code 必须要安装的插件(超详细)
- 插入排序(Insertion Sort)
- logit模型应用实例_最大似然估计(上)——离散选择模型之十
- 产品经理需要的文档汇总