当前位置: 首页 > news >正文

网站建设服务公没有域名的时候建网站

网站建设服务公,没有域名的时候建网站,网站建设总经理岗位职责,软件培训班出来能找到工作吗目录前言数据加载数据转换模型定义模型训练模型评估模型保存与加载完整代码讨论参考文献前言 大多数数据科学家以往经常常是利用传统的机器学习框架sklearn搭建多元回归模型#xff0c;随着深度学习和强化学习越来越普及#xff0c;很多数据科学家尝试使用深度学习框架来进行… 目录前言数据加载数据转换模型定义模型训练模型评估模型保存与加载完整代码讨论参考文献前言 大多数数据科学家以往经常常是利用传统的机器学习框架sklearn搭建多元回归模型随着深度学习和强化学习越来越普及很多数据科学家尝试使用深度学习框架来进行多元回归实验下面来做一个利用PyTorch深度学习框架做一个完整的多元回归数据科学实验。从该实验你将学到一下内容并通过这一篇博客成功运用深度学习框架PyTorch进行多元回归模型搭建。 如何加载数据如何转换数据如何定义模型如何评估模型如何验收模型如何保存模型和加载模型 一个典型的PyTorch建模过程往往包含了一下几个过程 #mermaid-svg-RtLB1mAx7OQ9F74P {font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;fill:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P .error-icon{fill:#552222;}#mermaid-svg-RtLB1mAx7OQ9F74P .error-text{fill:#552222;stroke:#552222;}#mermaid-svg-RtLB1mAx7OQ9F74P .edge-thickness-normal{stroke-width:2px;}#mermaid-svg-RtLB1mAx7OQ9F74P .edge-thickness-thick{stroke-width:3.5px;}#mermaid-svg-RtLB1mAx7OQ9F74P .edge-pattern-solid{stroke-dasharray:0;}#mermaid-svg-RtLB1mAx7OQ9F74P .edge-pattern-dashed{stroke-dasharray:3;}#mermaid-svg-RtLB1mAx7OQ9F74P .edge-pattern-dotted{stroke-dasharray:2;}#mermaid-svg-RtLB1mAx7OQ9F74P .marker{fill:#333333;stroke:#333333;}#mermaid-svg-RtLB1mAx7OQ9F74P .marker.cross{stroke:#333333;}#mermaid-svg-RtLB1mAx7OQ9F74P svg{font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:16px;}#mermaid-svg-RtLB1mAx7OQ9F74P .label{font-family:"trebuchet ms",verdana,arial,sans-serif;color:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P .cluster-label text{fill:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P .cluster-label span{color:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P .label text,#mermaid-svg-RtLB1mAx7OQ9F74P span{fill:#333;color:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P .node rect,#mermaid-svg-RtLB1mAx7OQ9F74P .node circle,#mermaid-svg-RtLB1mAx7OQ9F74P .node ellipse,#mermaid-svg-RtLB1mAx7OQ9F74P .node polygon,#mermaid-svg-RtLB1mAx7OQ9F74P .node path{fill:#ECECFF;stroke:#9370DB;stroke-width:1px;}#mermaid-svg-RtLB1mAx7OQ9F74P .node .label{text-align:center;}#mermaid-svg-RtLB1mAx7OQ9F74P .node.clickable{cursor:pointer;}#mermaid-svg-RtLB1mAx7OQ9F74P .arrowheadPath{fill:#333333;}#mermaid-svg-RtLB1mAx7OQ9F74P .edgePath .path{stroke:#333333;stroke-width:2.0px;}#mermaid-svg-RtLB1mAx7OQ9F74P .flowchart-link{stroke:#333333;fill:none;}#mermaid-svg-RtLB1mAx7OQ9F74P .edgeLabel{background-color:#e8e8e8;text-align:center;}#mermaid-svg-RtLB1mAx7OQ9F74P .edgeLabel rect{opacity:0.5;background-color:#e8e8e8;fill:#e8e8e8;}#mermaid-svg-RtLB1mAx7OQ9F74P .cluster rect{fill:#ffffde;stroke:#aaaa33;stroke-width:1px;}#mermaid-svg-RtLB1mAx7OQ9F74P .cluster text{fill:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P .cluster span{color:#333;}#mermaid-svg-RtLB1mAx7OQ9F74P div.mermaidTooltip{position:absolute;text-align:center;max-width:200px;padding:2px;font-family:"trebuchet ms",verdana,arial,sans-serif;font-size:12px;background:hsl(80, 100%, 96.2745098039%);border:1px solid #aaaa33;border-radius:2px;pointer-events:none;z-index:100;}#mermaid-svg-RtLB1mAx7OQ9F74P :root{--mermaid-font-family:"trebuchet ms",verdana,arial,sans-serif;}数据加载数据重构模型定义模型训练模型评估模型保存与加载接下来我们就严格按照上面步骤来一步一步进行。 数据加载 数据加载是指将将本地或者服务器云端的数据读取进来并进行必要的预处理包括填充空值去掉异常值编码格式转换数据分裂成训练集和测试集这一步骤可以利用我们熟悉的pandas库处理。 store pd.read_csv(rD:\项目\商简智能\回归预测题目\store.csv) train pd.read_csv(rD:\项目\商简智能\回归预测题目\train.csv) train_df pd.merge(lefttrain, rightstore, left_on商店ID, right_on商店ID, howleft) train_df train_df.query(周销量0) train_df.dropna(howany, inplaceTrue) train_df[商店ID] train_df[商店ID].astype(float64) train_df[年] train_df[年].astype(float64) train_df[周] train_df[周].astype(float64) train_df[节日A] train_df[节日A].astype(float64) train_df[节日B] train_df[节日B].astype(float64) train_df[节日C] train_df[节日C].astype(float64) train_df[商店模式] LabelEncoder() .fit_transform(train_df[商店模式] ) #编码 train_df[商店级别] LabelEncoder() .fit_transform(train_df[商店级别] ) #编码 train_df train_df[[商店ID, 年, 周, 营业天数, 打折天数, 非节日, 节日A, 节日B, 节日C, 商店模式, 商店级别, 竞争者最近距离, 周销量]] X, y train_df.drop([周销量], axis1), train_df.周销量 #特征和目标 X_train, X_test, y_train, y_test train_test_split(X, y, test_size 0.3, shuffleTrue, random_state0) #划分训练测试集 print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)通过上面代码可以看到本次实验是读取本地数据具体数据格式和解读参见这篇文章并将数值型变量统一转化为float64型将类别型变量编码定义出特征列和标签列并利用train_test_split将数据集分裂成训练集和测试集可以打印出训练集和测试集的形状大小以检验数据分割的正确与否 (51300, 12) (21987, 12) (51300,) (21987,)数据转换 经过数据加载步骤后数据没有刺头了变得规规矩矩了哪一块就是哪一块但是都是numpyseriesdataframe等数据格式而深度学习框架只认识张量(tensor)数据格式在PyTorch的世界不管是模型的输入输出还是模型的参数都是由tensor来编码的所以我们需要将之前得到的dataframe转化为tensor并适当的分组(batch)以便输入模型进行小批量(minibatch)训练PyTorch提供了两种原生的数据处理方法torch.utils.data.DataLoader 和 torch.utils.data.DatasetDataset 使得你可以使用一些预置数据和自己的数据经过Dataset的数据存储了样本和其对应的标签而DataLoader 可以把Dataset的样本打包成一个一个小组形成迭代器使得在模型训练的时候可以只对这些迭代器进行循环训练。 X_train, X_test X_train.values, X_test.values y_train, y_test y_train.values.reshape(-1, 1), y_test.values.reshape(-1, 1) X_train torch.from_numpy(X_train).type(torch.FloatTensor) X_test torch.from_numpy(X_test).type(torch.FloatTensor) y_train torch.from_numpy(y_train).type(torch.FloatTensor) y_test torch.from_numpy(y_test).type(torch.FloatTensor) training_data TensorDataset(X_train, y_train) test_data TensorDataset(X_test, y_test) train_dataloader DataLoader(training_data, batch_size64) test_dataloader DataLoader(test_data, batch_size64)模型定义 模型定义是指定义好深度学习的网络结构俗称神经网络神经网络由一些模型和层构成数据在这些结构上进行各种各样的运算在PyTorch里每一个模型都继承 nn.Module我们可以搭建和管理各种风格和各种样子的神经网络。 class Net(nn.Module): def __init__(self, features):super(Net, self).__init__() self.h1 nn.Linear(features, 30, bias True)self.a1 nn.ReLU()self.h2 nn.Linear(30, 10)self.a2 nn.ReLU()self.regression nn.Linear(10, 1)def forward(self, x): x self.h1(x)x self.a1(x)x self.h2(x)x self.a2(x)y_pred self.regression(x)return y_pred通过上面代码我们搭建了一个名为Net的神经网络该网络继承了nn.Module并定义了初始化化和向前传播路径网络由2个Linear层和2个ReLU激活函数组成输入层的参数是特征数(features)30隐藏层是3010输出层是10*1最后返回一个预测值我们可以实例化该网络打印出网络结构 Net((h1): Linear(in_features12, out_features30, biasTrue)(a1): ReLU()(h2): Linear(in_features30, out_features10, biasTrue)(a2): ReLU()(regression): Linear(in_features10, out_features1, biasTrue) )模型训练 深度学习的模型训练首先是向前传播得到预测值其次在给定的损失函数前提下计算损失的梯度不断更新模型里面的参数同时可以记录训练集的损失函数值和测试集的损失函数值以便后续可视化两者变化曲线。 train_loss [] test_loss []epochs 201 for epoch in range(epochs):model.train()for xb, yb in train_dataloader:pred model(xb)loss criterion(pred, yb)loss.requires_grad_(True) optimizer.zero_grad()loss.backward()optimizer.step()if epoch%100:model.eval()with torch.no_grad():train_epoch_loss sum(criterion(model(xb), yb) for xb, yb in train_dataloader)test_epoch_loss sum(criterion(model(xb), yb) for xb, yb in test_dataloader)train_loss.append(train_epoch_loss.data.item() / len(train_dataloader))test_loss.append(test_epoch_loss.data.item() / len(test_dataloader))template (epoch:{:2d}, 训练损失:{:.5f}, 验证损失:{:.5f})print(template.format(epoch, train_epoch_loss.data.item() / len(train_dataloader), test_epoch_loss.data.item() / len(test_dataloader))) print(训练完成)模型评估 模型评估是指对训练好的模型进行某些指标的评估由于在模型训练的时候我们保存了训练集和测试集的损失值可以在这里直接画出来。 fig plt.figure(figsize (6,4)) plt.plot(range(len(train_loss)), train_loss, label train_loss) plt.plot(range(len(test_loss)), test_loss, label test_loss) plt.legend() plt.show()模型保存与加载 辛辛苦苦训练出来并通过相关指标评估的模型自然希望能够保存下来以便下次能够在此利用PyTorch提供2中模型保存和加载策略一个是只存储模型中的参数该方法速度快占用空间少官方推荐使用一个是存储整个模型这里采用前者。 torch.save(model.state_dict(), .\model_parameter.pth) #保存模型parameter torch.load(.\model_parameter.pth) #加载模型 model.load_state_dict(parameter)完整代码 # -*- encoding: utf-8 -*-Project : sales Desc : 基于pytorch的深度学习销量预测 Time : 2023/02/07 16:30:14 Author : 帅帅de三叔,zengbowengood163.com import math import torch from torch import nn import numpy as np import pandas as pd import matplotlib.pyplot as plt from torch.utils.data import TensorDataset from torch.utils.data import DataLoader from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import train_test_split from sklearn.preprocessing import StandardScaler # 数据标准化store pd.read_csv(rD:\项目\商简智能\回归预测题目\store.csv) train pd.read_csv(rD:\项目\商简智能\回归预测题目\train.csv) train_df pd.merge(lefttrain, rightstore, left_on商店ID, right_on商店ID, howleft) train_df train_df.query(周销量0) train_df.dropna(howany, inplaceTrue) train_df[商店ID] train_df[商店ID].astype(float64) train_df[年] train_df[年].astype(float64) train_df[周] train_df[周].astype(float64) train_df[节日A] train_df[节日A].astype(float64) train_df[节日B] train_df[节日B].astype(float64) train_df[节日C] train_df[节日C].astype(float64) train_df[商店模式] LabelEncoder() .fit_transform(train_df[商店模式] ) #编码 train_df[商店级别] LabelEncoder() .fit_transform(train_df[商店级别] ) #编码 train_df train_df[[商店ID, 年, 周, 营业天数, 打折天数, 非节日, 节日A, 节日B, 节日C, 商店模式, 商店级别, 竞争者最近距离, 周销量]] X, y train_df.drop([周销量], axis1), train_df.周销量 #特征和目标 X_train, X_test, y_train, y_test train_test_split(X, y, test_size 0.3, shuffleTrue, random_state0) #划分训练测试集 print(X_train.shape, X_test.shape, y_train.shape, y_test.shape)X_train, X_test X_train.values, X_test.values y_train, y_test y_train.values.reshape(-1, 1), y_test.values.reshape(-1, 1) X_train torch.from_numpy(X_train).type(torch.FloatTensor) X_test torch.from_numpy(X_test).type(torch.FloatTensor) y_train torch.from_numpy(y_train).type(torch.FloatTensor) y_test torch.from_numpy(y_test).type(torch.FloatTensor) training_data TensorDataset(X_train, y_train) test_data TensorDataset(X_test, y_test) train_dataloader DataLoader(training_data, batch_size64) test_dataloader DataLoader(test_data, batch_size64)class Net(nn.Module): def __init__(self, features):super(Net, self).__init__() self.h1 nn.Linear(features, 30, bias True)self.a1 nn.ReLU()self.h2 nn.Linear(30, 10)self.a2 nn.ReLU()self.regression nn.Linear(10, 1)def forward(self, x): x self.h1(x)x self.a1(x)x self.h2(x)x self.a2(x)y_pred self.regression(x)return y_predclass CustomLoss(nn.Module): #自定义损失函数def __init__(self):super(CustomLoss, self).__init__()def forward(self, x, y):loss torch.sqrt(torch.sum(torch.pow((x-y)/x, 2))/len(x))return lossmodel Net(featuresX_train.shape[1]) print(model)model Net(featuresX_train.shape[1]) criterion CustomLoss() optimizer torch.optim.Adam(model.parameters(), lr1e-3)train_loss [] test_loss []epochs 101 for epoch in range(epochs):model.train()for xb, yb in train_dataloader:pred model(xb)loss criterion(pred, yb)# loss.requires_grad_(True) optimizer.zero_grad()loss.backward()optimizer.step()if epoch%100:model.eval()with torch.no_grad():train_epoch_loss sum(criterion(model(xb), yb) for xb, yb in train_dataloader)test_epoch_loss sum(criterion(model(xb), yb) for xb, yb in test_dataloader)train_loss.append(train_epoch_loss.data.item() / len(train_dataloader))test_loss.append(test_epoch_loss.data.item() / len(test_dataloader))template (epoch:{:2d}, 训练损失:{:.5f}, 验证损失:{:.5f})print(template.format(epoch, train_epoch_loss.data.item() / len(train_dataloader), test_epoch_loss.data.item() / len(test_dataloader))) print(训练完成)fig plt.figure(figsize (6,4)) plt.plot(range(len(train_loss)), train_loss, label train_loss) plt.plot(range(len(test_loss)), test_loss, label test_loss) plt.legend() plt.show()torch.save(model.state_dict(), .\model_parameter.pth) #保存模型parameter torch.load(.\model_parameter.pth) #加载模型 model.load_state_dict(parameter)讨论 对于结构化的数据深度学习不一定就比传统机器学习强还需具体问题具体分析不可一概而论。 参考文献 1https://pytorch.org/tutorials/beginner/basics/quickstart_tutorial.html 2https://shenzl.blog.csdn.net/article/details/128632831 3https://sanhangkc.blog.csdn.net/article/details/128818696
http://www.hkea.cn/news/14314410/

相关文章:

  • 哪个网站做的w7系统好做海报图片去哪个网站找 知乎
  • 长春 行业网站wordpress 主题 google字体
  • 网站建设方案平台架构中文wordpress企业主题
  • 奥林匹克做校服的网站网站域名格式
  • 网站建设小知识移动网站开发百科
  • 新桥企业网站建设如何评价网站是否做的好
  • 网站开发中安全性苏州网站定制公司
  • 单页面网站制作视频个人主页网页设计素材
  • 交流网站有哪些成都设计咨询集团官网
  • 人才网站建设百度网盟 网站定向投放
  • 专业制作网站 地摊做网站什么价位
  • 网站建设综合训练深圳网站制作必荐祥奔科技
  • 怎样让网站显示网站建设中东莞宽带哪个好
  • php购物网站开发背景江浦做网站
  • python做网站 不适合重庆蒲公英网站建设公司怎么样
  • 英特尔网站开发框架怎么查找网站备案主体
  • 河南电商网站设计闸北区网站建设网页设
  • 自己怎么建网站appwordpress程序重装
  • 直播是网站怎么做上海中学数学
  • 个人外贸平台有哪些网站建设优化之优化关键字
  • 温州市城市基础设施建设网站大学生网页设计作品
  • 微信 网站模板手机网站教程
  • 道客网站建设推广小程序wordpress 外贸
  • 新网站建设运营年计划江苏建设部网站
  • 高端定制网站建设wordpress修改搜索框全屏
  • 鞍山网站开发十大小程序开发公司
  • 模拟人生4做游戏下载网站龙岩做网站开发价格
  • 快速建站套餐自适应网站开发
  • 上海优化网站公司哪家好网站建设管理情况说明
  • 大兴企业官网网站建设咨询判断网站