作者简介:Java、前端、Python开发多年,做过高程,项目经理,架构师
主要内容:Java项目开发、Python项目开发、大学数据和AI项目开发、单片机项目设计、面试技术整理、最新技术分享
收藏点赞不迷路 关注作者有好处
文末获得源码
本案例通全连接神经网络基于采集到的数据集来对空气质量进行回归预测,数据集可私聊博主免费获取
模型训练:
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from keras.layers import Dense
from sklearn.model_selection import train_test_split
import keras
#解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
#导入数据集
dataset = pd.read_csv("data.csv")
#将数据进行归一化
sc = MinMaxScaler(feature_range=(0,1))
scaled = sc.fit_transform(dataset)
#将归一化数据转换为dataframe格式
dataset_sc = pd.DataFrame(scaled)
#print(dataset_sc)
#将数据集中的特征和标签找出来
X = dataset_sc.iloc[:, :-1] #除去最后一列
Y = dataset_sc.iloc[:, -1] #只拿最后一列
#划分数据集
x_train,x_test,y_train,y_test = train_test_split(X,Y,test_size=0.2,random_state=42)
# 绘制训练集和验证集的loss值对比
plt.plot(history.history['loss'], label='train')
plt.plot(history.history['val_loss'], label='val')
plt.title("全连接神经网络loss值图")
plt.legend()
plt.show()
数据测试:
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
from sklearn.preprocessing import MinMaxScaler
from keras.layers import Dense
from sklearn.model_selection import train_test_split
import keras
from keras.models import load_model
from math import sqrt
from numpy import concatenate
from sklearn.metrics import mean_squared_error
# 解决中文显示问题
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.rcParams['axes.unicode_minus'] = False
# 导入数据集
dataset = pd.read_csv("data.csv")
# print(dataset)
# 将数据进行归一化
sc = MinMaxScaler(feature_range=(0, 1))
scaled = sc.fit_transform(dataset)
# print(scaled)
# 将归一化好的数据转化为datafrme格式,方便后续处理
dataset_sc = pd.DataFrame(scaled)
# print(dataset_sc)
# 将数据集中的特征和标签找出来
X = dataset_sc.iloc[:, :-1]
Y = dataset_sc.iloc[:, -1]
# 划分数据集
x_train, x_test, y_train, y_test = train_test_split(X, Y, test_size=0.05, random_state=42)
# 将y_test维度的转化
y_test = np.array(y_test)
# print(y_test)
y_test = np.reshape(y_test, (y_test.shape[0], 1))
# print(y_test)
# 反向缩放真实值
inv_y = concatenate((x_test, y_test), axis=1)
inv_y = sc.inverse_transform(inv_y)
real = inv_y[:, 6]
# print(real)
# 计算rmse和MAPE
rmse = sqrt(mean_squared_error(real, prediction))
mape = np.mean(np.abs((real- prediction)/prediction))
# 打印rmse和mape
print('rsme', rmse)
print('mape', mape)
# 画出真实值和预测值的对比值
plt.plot(prediction, label='预测值')
plt.plot(real, label="真实值")
plt.title("全连接神经网络空气质量预测对比图")
plt.legend()
plt.show()
通过matplotlib画出全连接神经网络空气质量预测对比图
五,相关作品展示
基于Java开发、Python开发、PHP开发、C#开发等相关语言开发的实战项目
基于Nodejs、Vue等前端技术开发的前端实战项目
基于微信小程序和安卓APP应用开发的相关作品
基于51单片机等嵌入式物联网开发应用
基于各类算法实现的AI智能应用
基于大数据实现的各类数据管理和推荐系统