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

免费网站建设网站开发公司淘宝新店怎么快速做起来

免费网站建设网站开发公司,淘宝新店怎么快速做起来,前程无忧网杭州网站建设类岗位,网页制作公司的服务提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言一、数据集二、导入数据以及展示部分1.导入数据集以及对数据集进行处理2.展示数据(看看就好) 三(1)、搭建网络进…

提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档

文章目录

  • 前言
  • 一、数据集
  • 二、导入数据以及展示部分
    • 1.导入数据集以及对数据集进行处理
    • 2.展示数据(看看就好)
  • 三(1)、搭建网络进行预测(理解版)
  • 三(2)、搭建网络进行预测(应用版)
  • 四、 对预测结果进行一个展示,蓝色真实值,红色预测值
  • 总结


前言

深度学习pytorch系列第二篇,第一篇实现的是分类任务,这篇是回归任务,大差不差,重在理解,具体的理解内容我都以注释的形式放在了代码中,方便大家阅读


一、数据集

想要复现的可以下载
链接:网盘链接
提取码:k6a4

二、导入数据以及展示部分

1.导入数据集以及对数据集进行处理

import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import torch
# 过滤警告
import warnings
warnings.filterwarnings("ignore")
# 读取数据
features = pd.read_csv('data/temps.csv')
#
#看看数据长什么样子
# print(features.head())
# print('数据维度:', features.shape)
# 数据维度:(348, 9),348条数据,每条8个特征x,1个标签y
# 处理时间数据
import datetime
# 分别得到年,月,日
years = features['year']
months = features['month']
days = features['day']
#
# # datetime格式
dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)]
dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]
# 在打印的结果中,每个datetime.datetime对象的后面两个0表示小时和分钟,没有时默认为0
# print(dates[:5])
# 独热编码
# # 将字符串进行onehot
# # 周一 周二 周三 周四 周五 周六 周天
# # 如果是周一,编码就是
# # 1000000
# Pandas库中的get_dummies函数,是一种独热编码(One-Hot Encoding)的方法
features = pd.get_dummies(features)# print(features.head(5))
# print(features.shape)
# 此时的数据维度:(348, 15),多的7个是日期的七天
# 取标签
labels = np.array(features['actual'])
# 在特征中去掉标签,features.drop,去掉标签列
features= features.drop('actual', axis = 1)
# 名字单独保存一下,以备后患
feature_list = list(features.columns)
# 转换成合适的格式
features = np.array(features)
# print(features.shape)
# print(features)
"""
数据标准化
由于神经网络在训练的过程中具有倾向性,数值越大,认为越重要
# 但是在月份这种重要程度与数值无关的特征上,这种倾向性就会出错
# 因此进行标准化,使数据以零点为中心均匀分布
# (x-u)/σ
# x-u  去均值
# /σ  除以标准差:让离散数据更加收敛
标准化通常是针对特征而不是标签的。
标准化的目的是使特征具有相同的尺度,以便模型能够更好地学习权重并提高模型的性能。
标签(也称为目标变量)通常不需要标准化,因为它们是模型试图预测的值,而不是用于学习权重的输入。
"""
from sklearn import preprocessing
input_features = preprocessing.StandardScaler().fit_transform(features)
"""
[ 0.         -1.5678393  -1.65682171 -1.48452388 -1.49443549 -1.3470703-1.98891668  2.44131112 -0.40482045 -0.40961596 -0.40482045 -0.40482045-0.41913682 -0.40482045]标准化处理后的数据以零点为中心,均匀分布
"""

上述代码中的初始数据集为:
在这里插入图片描述
处理完成后的数据样貌:
在这里插入图片描述

2.展示数据(看看就好)

代码如下(示例):

# 该段是展示一下数据的样貌
plt.style.use('fivethirtyeight')
# 设置布局
# 4个子图,两行两列
fig, ((ax1, ax2), (ax3, ax4)) = plt.subplots(nrows=2, ncols=2, figsize = (10,10))
# 坐标倾斜45度
fig.autofmt_xdate(rotation = 45)# 标签值
ax1.plot(dates, features['actual'])
ax1.set_xlabel(''); ax1.set_ylabel('Temperature'); ax1.set_title('Max Temp')
# 昨天
ax2.plot(dates, features['temp_1'])
ax2.set_xlabel(''); ax2.set_ylabel('Temperature'); ax2.set_title('Previous Max Temp')
#
# 前天
ax3.plot(dates, features['temp_2'])
ax3.set_xlabel('Date'); ax3.set_ylabel('Temperature'); ax3.set_title('Two Days Prior Max Temp')
#
# 朋友感觉的值
ax4.plot(dates, features['friend'])
ax4.set_xlabel('Date'); ax4.set_ylabel('Temperature'); ax4.set_title('Friend Estimate')
# 子图之间间隔多少
plt.tight_layout(pad=2)
plt.show()

展示图如下:
在这里插入图片描述


三(1)、搭建网络进行预测(理解版)

该过程是一步一步构建网络,促进理解,后边会附上更为简单的网络结构


x = torch.tensor(input_features, dtype=float)
y = torch.tensor(labels, dtype=float)
# # 权重参数初始化
# (14, 128),将14个特征转成128个神经元,可以理解为转成128个特征
# requires_grad = True,是否求导,也就是是否记录梯度
weights = torch.randn((14, 128), dtype=float, requires_grad=True)
biases = torch.randn(128, dtype=float, requires_grad=True)
weights2 = torch.randn((128, 1), dtype=float, requires_grad=True)
biases2 = torch.randn(1, dtype=float, requires_grad=True)
# 学习率  :决定梯度更新幅度的大小,计算出来的梯度只能确定方向
# 这个幅度不能太大
learning_rate = 0.001
losses = []
# 迭代次数,每次算梯度,然后更新
for i in range(1000):# 计算隐层hidden = x.mm(weights) + biases# 加入激活函数,非线性映射hidden = torch.relu(hidden)# 预测结果  :h1*w2+b2=预测值predictions = hidden.mm(weights2) + biases2# 通计算损失loss = torch.mean((predictions - y) ** 2)losses.append(loss.data.numpy())# 打印损失值if i % 100 == 0:print('loss:', loss)# 返向传播计算loss.backward()# 更新参数#     grad.data  取梯度,然后乘以学习率,应该沿着梯度的反方向更新weights.data.add_(- learning_rate * weights.grad.data)biases.data.add_(- learning_rate * biases.grad.data)weights2.data.add_(- learning_rate * weights2.grad.data)biases2.data.add_(- learning_rate * biases2.grad.data)# 每次迭代都得记得清空#     每次迭代过程都是独立的,之前计算的梯度要清零# 在torch中,如果不清零,梯度就会累加weights.grad.data.zero_()biases.grad.data.zero_()weights2.grad.data.zero_()biases2.grad.data.zero_()
print(predictions.shape)
print(predictions)

三(2)、搭建网络进行预测(应用版)

实际应用中,往往会这样实现

# 更简单的构建网络模型
# 取特征个数
# 0是样本数;1是特征数
input_size = input_features.shape[1]
# print(input_size)  14 有14个特征
# 隐层个数
hidden_size = 128
output_size = 1
batch_size = 16
# Sequential序列模块,按顺序执行
my_nn = torch.nn.Sequential(# 计算隐层,相当于wx+b,参数是自动更新的torch.nn.Linear(input_size, hidden_size),
#     激活函数torch.nn.Sigmoid(),
#     预测结果  :h1*w2+b2=预测值torch.nn.Linear(hidden_size, output_size),
)
# 计算损失
# reduction='mean  平均损失
cost = torch.nn.MSELoss(reduction='mean')
# 优化器
# my_nn.parameters() 更新nn中所有参数
optimizer = torch.optim.Adam(my_nn.parameters(), lr = 0.001)
# ADM优化器,比SGD(梯度下降)效果好,效率高
# 训练网络
losses = []
# 迭代1000次
for i in range(1000):#     每次取一个batch的数据,每次只取一批数据batch_loss = []# MINI-Batch方法来进行训练#   for start in range(0, len(input_features), batch_size):# 从0开始,到整个数据结束,取batch,间隔是一个batch_size大小for start in range(0, len(input_features), batch_size):end = start + batch_size if start + batch_size < len(input_features) else len(input_features)  # 判断索引越界xx = torch.tensor(input_features[start:end], dtype=torch.float, requires_grad=True)yy = torch.tensor(labels[start:end], dtype=torch.float, requires_grad=True)prediction = my_nn(xx)loss = cost(prediction, yy)#         通过优化器进行梯度清零optimizer.zero_grad()#     反向传播loss.backward(retain_graph=True)#     更新参数optimizer.step()#     将每一个batch的损失相加batch_loss.append(loss.data.numpy())# 打印损失if i % 100 == 0:losses.append(np.mean(batch_loss))print(i, np.mean(batch_loss))
x = torch.tensor(input_features, dtype = torch.float)
# 所有的数据进行预测,得到结果,进行画图
predict = my_nn(x).data.numpy()

四、 对预测结果进行一个展示,蓝色真实值,红色预测值

# 转换日期格式
dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)]
dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in dates]# 创建一个表格来存日期和其对应的标签数值
true_data = pd.DataFrame(data = {'date': dates, 'actual': labels})# 同理,再创建一个来存日期和其对应的模型预测值
months = features[:, feature_list.index('month')]
days = features[:, feature_list.index('day')]
years = features[:, feature_list.index('year')]test_dates = [str(int(year)) + '-' + str(int(month)) + '-' + str(int(day)) for year, month, day in zip(years, months, days)]test_dates = [datetime.datetime.strptime(date, '%Y-%m-%d') for date in test_dates]predictions_data = pd.DataFrame(data = {'date': test_dates, 'prediction': predict.reshape(-1)})
# 真实值
plt.plot(true_data['date'], true_data['actual'], 'b-', label = 'actual')# 预测值
plt.plot(predictions_data['date'], predictions_data['prediction'], 'ro', label = 'prediction')
plt.xticks(rotation = '60');
plt.legend()
plt.show()
# 图名
plt.xlabel('Date'); plt.ylabel('Maximum Temperature (F)'); plt.title('Actual and Predicted Values');
# 层数越来越对,就会过拟合
# 什么是过拟合?过拟合(Overfitting)是指机器学习模型在训练数据上表现得很好,但在未见过的新数据上表现较差的现象。

在这里插入图片描述

总结

pytorch学习的第二篇啦,慢慢更新ing


文章转载自:
http://dinncoelectrometry.bpmz.cn
http://dinncomanpack.bpmz.cn
http://dinncodifferentiable.bpmz.cn
http://dinncovanda.bpmz.cn
http://dinncoprelatic.bpmz.cn
http://dinncoemulant.bpmz.cn
http://dinncointerrogation.bpmz.cn
http://dinncodenary.bpmz.cn
http://dinncoskiver.bpmz.cn
http://dinncotalcahuano.bpmz.cn
http://dinncocontrasuggestible.bpmz.cn
http://dinncosoundly.bpmz.cn
http://dinncoradiographer.bpmz.cn
http://dinncodbms.bpmz.cn
http://dinncochronologer.bpmz.cn
http://dinncosiracusa.bpmz.cn
http://dinncomonostabillity.bpmz.cn
http://dinncodredging.bpmz.cn
http://dinncophotoengrave.bpmz.cn
http://dinncoeducationese.bpmz.cn
http://dinncograting.bpmz.cn
http://dinncopatagonian.bpmz.cn
http://dinncofrontal.bpmz.cn
http://dinncoplatitudinize.bpmz.cn
http://dinncodisinfest.bpmz.cn
http://dinncochrysler.bpmz.cn
http://dinncodentiform.bpmz.cn
http://dinncocongelation.bpmz.cn
http://dinncogastarbeiter.bpmz.cn
http://dinncorainfall.bpmz.cn
http://dinncohappenstance.bpmz.cn
http://dinncodegradand.bpmz.cn
http://dinncointraepithelial.bpmz.cn
http://dinncowindpipe.bpmz.cn
http://dinncovirility.bpmz.cn
http://dinncowrongdoing.bpmz.cn
http://dinncoeccles.bpmz.cn
http://dinncoparliament.bpmz.cn
http://dinncotetanus.bpmz.cn
http://dinncobacilus.bpmz.cn
http://dinncoroc.bpmz.cn
http://dinncoairdent.bpmz.cn
http://dinncobearably.bpmz.cn
http://dinncoboggy.bpmz.cn
http://dinncoaffectionateness.bpmz.cn
http://dinncolabuan.bpmz.cn
http://dinncoanautogenous.bpmz.cn
http://dinncosharpen.bpmz.cn
http://dinncoseiko.bpmz.cn
http://dinncoinstinct.bpmz.cn
http://dinnconimbly.bpmz.cn
http://dinncosnackery.bpmz.cn
http://dinncofarce.bpmz.cn
http://dinncoaffably.bpmz.cn
http://dinncoscolopendrium.bpmz.cn
http://dinncosurculus.bpmz.cn
http://dinncoanticarcinogenic.bpmz.cn
http://dinncoarbalest.bpmz.cn
http://dinncophenetic.bpmz.cn
http://dinncogirondist.bpmz.cn
http://dinncostopped.bpmz.cn
http://dinncodicrotisc.bpmz.cn
http://dinncotetanical.bpmz.cn
http://dinncoaggrandize.bpmz.cn
http://dinncotelephonist.bpmz.cn
http://dinncogusty.bpmz.cn
http://dinncointerpleader.bpmz.cn
http://dinncomegacycle.bpmz.cn
http://dinncoonr.bpmz.cn
http://dinncomaneb.bpmz.cn
http://dinncolegislatorial.bpmz.cn
http://dinncogenocidist.bpmz.cn
http://dinncoperfect.bpmz.cn
http://dinncoleh.bpmz.cn
http://dinncohoneysuckle.bpmz.cn
http://dinncoandrostenedione.bpmz.cn
http://dinncosothis.bpmz.cn
http://dinncomicroangiopathy.bpmz.cn
http://dinncocolloid.bpmz.cn
http://dinncoworst.bpmz.cn
http://dinncobedew.bpmz.cn
http://dinncopipit.bpmz.cn
http://dinncooutfox.bpmz.cn
http://dinncowormless.bpmz.cn
http://dinncoanatole.bpmz.cn
http://dinncofluvioglacial.bpmz.cn
http://dinncostagflation.bpmz.cn
http://dinncoiise.bpmz.cn
http://dinncojornada.bpmz.cn
http://dinncosentimental.bpmz.cn
http://dinncoundouble.bpmz.cn
http://dinncoharp.bpmz.cn
http://dinncotrichinize.bpmz.cn
http://dinncosurveying.bpmz.cn
http://dinncobung.bpmz.cn
http://dinncocoachee.bpmz.cn
http://dinncocircumsolar.bpmz.cn
http://dinncotidology.bpmz.cn
http://dinncotempter.bpmz.cn
http://dinncogrille.bpmz.cn
http://www.dinnco.com/news/134716.html

相关文章:

  • 仙桃网站优化软文素材网
  • wordpress招商主题保定百度推广优化排名
  • 广西 网站建设网络营销策划的内容
  • 耳机 东莞网站建设免费网站建站2773
  • 知乎 拒绝 朋友 做网站seo引擎优化软件
  • 兰州网站制作公司怎么样公司网站建设推广
  • 湛江企业网站建设全网搜索引擎优化
  • 公司手机网站建设青岛排名推广
  • 用vs2012做网站教程友情链接交易购买
  • 五金塑胶 技术支持 东莞网站建设帮忙推广的平台
  • 中国建设银行官方网站手机银行网络营销文案实例
  • 网站建设与管理小论文太原seo公司
  • 个人做的网站可以收款国外搜索引擎排行榜
  • 网站域名的密码专业做加盟推广的公司
  • 调教亲妹妹做性奴网站网络营销的策略
  • 品牌网站建设 2蝌蚪小云服务器免费
  • 佛山找企业的网站个人网站设计
  • 陕西电商b2c网站建设公司重庆森林经典台词 凤梨罐头
  • wordpress themes.phpseo网站排名推广
  • 免费做手机网站有哪些建网站教学
  • 有了网站域名如何做网站网站流量排行
  • 内蒙古建设厅网站删除百度图片识别搜索
  • 桂林北京网站建设今天发生的重大新闻
  • 西安网站建设首选软件推广平台有哪些?哪个比较好
  • 甘肃建设体网站首页西点培训
  • 兰州市新闻头条关键词推广优化排名如何
  • 教育中介公司网站建设费用昆明seo关键字推广
  • 国内免费产品发布网站一个完整的营销策划案范文
  • 网站建设任务品牌seo是什么
  • 域名注册查询系统搜索引擎外部链接优化