2020.12.29-在mooc上自学tensorflow-Matplotlib数据可视化

博客记录了2020年12月29日的相关内容,共173行,但未明确具体信息。

2020.12.29
173行

import matplotlib.pyplot as plt #导入绘图库
import numpy as np
#Figure对象,子图的形状大小等
#figure(num,figsize,dpi,facecolor,edgecolor,frameon)
#num:图形编号或名称,取值为数组/字符串
#figsize:绘图对象的宽和高,单位为英寸
#dpi:绘图对象的分辨率,缺省值为80
#facecolor:背景颜色
#edgecolor:边框颜色。
#frameon:表示是否显示边框。
plt.figure(figsize=(10,1),facecolor="pink")
plt.plot()
plt.show()

在这里插入图片描述

#划分子图subplot
fig= plt.figure()
plt.subplot(221)
plt.subplot(222)
plt.subplot(223)
plt.show()

在这里插入图片描述

#设置中文字体
#                  字体         中文黑体
plt.rcParams["font.sans-serif"]="SimHei"
plt.rcParams["axes.unicode_minus"]=False        #正常显示数组
#plt.rcdefaults()     #恢复标准默认配置

#添加标题
#全局标题   suptitle()         子标题     title()
 #散点图
#scatter(x,y,scale,color,marker,label)
#scale 数据点的大小 默认值  36
#color 数据点颜色
#marker 数据点的样式     圆点
#label 图例文字             
n=1024
x1=np.random.normal(0,1,n)              #标准正态分布
y1=np.random.normal(0,1,n)
plt.scatter(x1,y1,4,color="blue",marker='*',label="正态分布") #绘制散点图
plt.title("标准正态分布",fontsize=20)
#text(x,y,s,fontsize,color)
#在图表中添加文字. # s 为添加的内容
plt.text(2.5,2.5,"均 值:0\n标准差:1")
#设置坐标轴范围
plt.xlim(-5,5)                         #xlim(xmin,xmax)
plt.ylim(-5,5)                         #xlim(ymin,ymax)
#设置坐标轴标签
plt.xlabel('横坐标x',fontsize=14)      #xlabel(x,y,s,fontsize,color)
plt.ylabel('纵坐标y',fontsize=14)      #ylabel(x,y,s,fontsize,color)

x2=np.random.uniform(-4,4,(1,n))       #在图像中添加新的点
y2=np.random.uniform(-4,4,(1,n))
plt.scatter(x2,y2,4,color="red",label="均匀分布")
plt.legend()

在这里插入图片描述

#折线图 plt.plot(x,y,color,marker,label,linewidth,markersize)
#linewidth   折线的宽度
n=24
y1=np.random.randint(27,37,n)
y2=np.random.randint(40,60,n)
plt.plot(y1,label='温度')
plt.plot(y2,label='湿度')
plt.legend()
plt.xlabel('小时',fontsize=12)
plt.ylabel('测量值',fontsize=12)
plt.xlim(0,23)
plt.ylim(20,70)
plt.title('24小时温度湿度统计',fontsize=16)

在这里插入图片描述

#柱状图  plt.bar(left,height,width,facecolor,edgecolor,label)
#  left  柱子左边缘的位置
#  height 柱子高度
#  width 柱子的宽度
#  facecolor 柱子的填充色
# edgecolor  柱子边框的
plt.bar(range(len(y1)),y1,width=0.8,facecolor='green',label='统计量1')

在这里插入图片描述

#加载数据集
import tensorflow as tf
boston_housing= tf.keras.datasets.boston_housing
(train_x,train_y),(test_x,test_y)= boston_housing.load_data(test_split=0)
                                        #test_split可改变测试集和训练集的比例
print("Training set:",len(train_x))         #训练集中的数据量  
print("Testing set:",len(test_x))           #测试集中的数据量

#访问数据集中的数据
print(type(train_x))
print(type(test_x))
print("维度 of train_x:",train_x.ndim)      #训练集的维度
print("shape of train_x",train_x.shape)     #训练集的形状
print("维度 of train_y:",train_y.ndim)
print("shape of train_y",train_y.shape)

plt.figure(figsize=(5,5))
plt.scatter(train_x[:, 5],train_y,10)
#               意思是第几个属性值
plt.xlabel("RM")
plt.ylabel("Price($1000's)")
plt.title("5. RM-Price")
plt.show()
titles = ["CRIM","ZN","INDUS","CHAS","NOX","RM","AGE","DIS",
         "RAD","TAX","PTRATIO","B-1000","LSTAT","MEDV"]
plt.figure(figsize=(12,12))
#用循环来将各个属性与房价之间的关系显示出来
for i in range(13):
    plt.subplot(4,4,(i+1))
    plt.scatter(train_x[:,i],train_y,5)   #i为第i个属性
    plt.xlabel(titles[i])
    plt.suptitle("各个属性与房价的关系",x=0.5,y=1.02,fontsize=20)
  
plt.show()

在这里插入图片描述

#tf.keras.utils.get_file(fname,origin,cache_dir)
#fname:下载后的文件名
#origin:文件的URL地址
#cache_dir:下载后文件的储存位置
TRAIN_URL="http://download.tensorflow.org/data/iris_training.csv"
train_path=tf.keras.utils.get_file("iris_training.csv",TRAIN_URL)
##train_path=tf.keras.utils.get_file(TRAIN_URL.split('/')[-1],TRAIN_URL)
#以后用上面语句进行下载文件,只需要修改网址URL
#访问csv文件
#Pandas库,用于数据统计和分析,可以高效,方便地操作大型数据集
import pandas as pd  #导入pandas库
#  pd.read_csv(路径,header,names)  读取csv数据集文件
# header=0;将第一行数据作为列标题
# names :自定义列标题,代替header参数指定的列标题
COLUMN_NAMES=['SepalLength','SepalWidth','PetalLength','PetalWidth','Species']
df_iris=pd.read_csv("D:\python\datas\iris_training.csv")
pd.read_csv("D:\python\datas\iris_training.csv",names=COLUMN_NAMES,header=0)

在这里插入图片描述

print(type(df_iris))      #二维数据
NAMES=['120','4','山莺尾','变色莺尾','维吉尼亚莺尾']
pd.read_csv("D:\python\datas\iris_training.csv",names=NAMES,header=0)

在这里插入图片描述

#head(n)  :默认读取二维数据表中的前5行数据
#tail(n) : 读取后n行数据,默认后5行

pd.read_csv("D:\python\datas\iris_training.csv",names=COLUMN_NAMES,header=0)
df_iris.head(10)
df_iris.tail(10)
df_iris[10:15]        #使用索引和切片
df_iris.describe()    #显示二维数据的统计信息
#总数,平均值,标准差,

在这里插入图片描述

print(df_iris.ndim)
print(df_iris.shape)
print(df_iris.size)     #数据总数
#将图标类型转化为Numpy数组,再用于制图,以下三种方法等价于
iris=np.array(df_iris)
#iris=df_iris.values
#iris=df_iris.as_matrix()
print(iris[0:6])
iris[:,2]

#绘制散点图
#plt.scatter(x,y,c,cmap)       #将参数c指定一个列表或元组,图标的颜色可以随元素不同而改变
#

plt.scatter(iris[:,2],iris[:,3],9,c=iris[:,4],cmap='brg')
plt.xlabel("SepalWidth")
plt.ylabel("PetalLength")
plt.title("莺尾花的种类与萼片宽度和长度的关系\n(蓝色->山莺尾|红色->变色莺尾|绿色->维吉尼亚莺尾)")
plt.show

在这里插入图片描述

#运用循环来输出
plt.figure(figsize=(15, 3))   #用于设置绘图尺寸大小
for p in range(4):
    plt.subplot(1, 4,p+1)
    if(p==0):
        plt.text(0.3,0.5,"SepalLength",fontsize=15)
    else:
        plt.scatter(iris[:,p],iris[:,0],9,c=iris[:,4],cmap='brg')
    
    plt.title(COLUMN_NAMES[p])
    plt.ylabel(COLUMN_NAMES[0])
plt.tight_layout(rect=[0,0,1,0.9])   #调整子图间距
plt.show()

在这里插入图片描述

plt.figure(figsize=(15,15))   #创建画布
plt.suptitle("莺尾花的种类与萼片宽度和长度的关系\n(蓝色->山莺尾|红色->变色莺尾|绿色->维吉尼亚莺尾)")
for i in range(4):
    for j in range(4):
        plt.subplot(4,4,4*i+(j+1))   #首先要创建子图
        if(i==j):
            plt.text(0.3,0.4,COLUMN_NAMES[i],fontsize=15)   
        else:
            plt.scatter(iris[:,j],iris[:,i],11,c=iris[:,4],cmap='brg')
        if(i==0):
            plt.title(COLUMN_NAMES[j])    #横坐标标签
        if(j==0):
            plt.ylabel(COLUMN_NAMES[i])   #纵坐标标签
plt.tight_layout(rect=[0,0,1,0.93])
   

在这里插入图片描述

内容概要:本文围绕“基于分布式模型预测控制的多个固定翼无人机一致性控制”展开,利用Matlab代码实现相关算法的仿真,旨在通过分布式控制策略实现多架固定翼无人机在复杂动态环境中的协同飞行与一致性控制。研究结合模型预测控制(MPC)方法,构建适用于多无人机系统的分布式优化框架,重点解决了通信受限、信息延迟及无中心化指挥条件下的协同稳定性问题。内容涵盖固定翼无人机的动力学建模、分布式MPC优化求解机制、一致性协议设计、通信拓扑结构分析以及仿真验证全过程,确保多机系统在保持队形一致的同时完成协同任务。; 适合人群:具备自动控制理论、无人机系统建模或多智能体协同控制基础,从事智能无人系统、集群控制、自动化与机器人等领域研究的研究生、科研人员及工程技术人员。; 使用场景及目标:①应用于多无人机协同编队飞行、集群侦察、分布式任务执行等实际工程场景;②为分布式MPC算法在多智能体系统中的一致性控制提供可复现的Matlab仿真案例,推动先进控制理论向工程实践转化;③服务于科研论文复现、算法验证、控制系统课程设计与毕业课题参考。; 阅读建议:建议读者结合文中提供的Matlab代码逐模块运行与调试,重点关注分布式MPC在不同通信拓扑下对一致性收敛性能的影响,并可通过调整预测时域、权重矩阵与噪声参数等方式深化对算法鲁棒性与适应性的理解。
内容概要:本文提出了一种基于变分模态分解(VMD)、麻雀搜索算法(SSA)优化与长短期记忆网络(LSTM)相结合的光伏功率预测模型(VMD-SSA-LSTM),旨在提升光伏发电预测的精度与鲁棒性。该方法首先利用VMD对原始非平稳光伏功率序列进行自适应分解,获得一系列具有更稳定特征的本征模态分量(IMFs),有效降低数据复杂性与噪声干扰;随后引入麻雀搜索算法(SSA)对LSTM网络的关键超参数(如学习率、隐层节点数等)进行全局寻优,克服传统试凑法效率低、易陷入局部最优的问题,显著提升模型收敛速度与泛化能力;最后,构建多个LSTM子模型分别预测各模态分量,并将结果重构得到最终的光伏功率预测值。该混合模型充分融合了VMD在信号预处理中的优异分解性能、SSA在参数优化中的高效搜索能力以及LSTM在捕捉时间序列长期依赖关系上的强大建模优势,实现了对复杂气象因素影响下光伏出力波动的高精度拟合与预测。; 适合人群:具备一定电力系统、新能源发电或时间序列预测基础知识,熟悉MATLAB编程环境,从事光伏功率预测、智能电网调度、可再生能源集成、负荷预测等领域研究的科研人员、工程技术人员及高校研究生。; 使用场景及目标:①应用于光伏电站的短期与超短期功率预测,为电网安全调度、电力市场交易、储能系统配置及需求侧响应提供精准数据支撑;②解决传统单一预测模型(如ARIMA、BPNN、单一LSTM)在处理非平稳、强波动性光伏数据时存在的精度不足、稳定性差等问题;③为风电、负荷等其他非平稳时序预测问题提供一种有效的“分解-优化-预测”混合建模范式与技术实现路径。; 阅读建议:建议读者结合文中提供的完整MATLAB代码,深入理解VMD信号分解、SSA优化算法流程及LSTM网络构建的每一个技术环节,通过实际历史数据进行模型复现与对比实验(如与VMD-LSTM、SSA-LSTM等模型比较),掌握参数调优技巧与模型性能评估方法,从而真正掌握该先进混合预测模型的核心思想与应用精髓。
代码转载自:https://pan.quark.cn/s/a4b39357ea24 在当代信息技术行业,深度学习技术的应用已经全面渗透到众多实际情境中,其中生成对抗网络(GAN)以及深度卷积生成对抗网络(DCGAN)被视为促进人工智能领域发展的核心技术之一。接下来将具体阐述如何借助Pytorch框架与MNIST数据集来完成基础GAN和DCGAN的开发,并解析过程中涉及的关键概念。 ### Pytorch框架与MNIST数据集概述 **Pytorch** 被视为一种广受欢迎的开源机器学习平台,其具备动态计算图与高度适应性等特性,因此在学术研究领域备受推崇,能够支持多种类型的深度学习架构。 **MNIST数据集** 是一个包含手写数字的图像集合,常用于训练各类图像识别系统,涵盖从0至9的数字图像,每张图像的尺寸为28x28像素。由于其入门级难度,MNIST数据集特别适合用于教学演示和实验操作。 ### 基础生成对抗网络(GAN)核心概念 **基础GAN** 是一种由生成器(Generator)和判别器(Discriminator)构成的无监督学习框架。生成器的核心任务是创造足以乱真的图像数据,而判别器的关键职责在于精确辨别真实图像与生成图像之间的差异。 1. **生成器**:该模块以随机噪声为输入,通过深度神经网络进行转换,最终输出接近真实图像的数据。其根本目的在于迷惑判别器。 2. **判别器**:对输入数据(无论是真实图像还是生成图像)进行评估,并输出其属于真实样本的概率。判别器的训练重点在于提升识别的精确度。 3. **训练机制**:GAN的训练过程涉及两个网络之间的交替训练,即在锁定一个网络参数的情况下对另一个网络进行训练。首先优化判别器以增强其区分能力...
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值