BP神经网络实验——【机器学习与算法分析 精品资源池】
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
实验算法BP神经网络实验
【实验名称】
BP神经网络实验
【实验要求】
掌握BP神经网络模型应用过程,根据模型要求进行数据预处理,建模,评价与应用;
【背景描述】
神经网络:是一种应用类似于大脑神经突触联接的结构进行信息处理的数学模型。BP神经网络是一种按照误差逆向传播算法训练的多层前馈神经网络,是目前应用最广泛的神经网络。其基本组成单元是感知器神经元。
【知识准备】
了解BP神经网络模型的使用场景,数据标准。掌握Python/TensorFlow数据处理一般方法。了解keras神经网络模型搭建,训练以及应用方法
【实验设备】
Windows或Linux操作系统的计算机。部署TensorFlow,Python。本实验提供centos6.8环境。
【实验说明】
采用UCI机器学习库中的wine数据集作为算法数据,把数据集随机划分为训练集和测试集,分别对模型进行训练和测试。
【实验环境】
Pyrhon3.X,实验在命令行python中进行,或者把代码写在py脚本,由于本次为实验,以学习模型为主,所以在命令行中逐步执行代码,以便更加清晰地了解整个建模流程。
【实验步骤】
第一步:启动python:
1
命令行中键入python。
第二步:导入用到的包,并读取数据:
(1).导入所需第三方包
import pandas as pd
import numpy as np
from keras.models import Sequential
from yers import Dense
import keras
(2).导入数据源,数据源地址:/opt/algorithm/BPNet/wine.txt
df_wine = pd.read_csv("/opt/algorithm/BPNet/wine.txt", header=None).sample(frac=1) (3).查看数据
df_wine.head()
1
第三步:数据预处理
(1).划分60%数据
p = 0.6
cut = int(np.ceil(len(df_wine) * p))
(2).划分数据集
df_wine_train = df_wine.iloc[:cut]
df_wine_test = df_wine.iloc[cut:]
(3).类别标识编码(深度学习常用手段,类别1 = (1,0),类别2 = (0,1),类别3 = (0,0))
label_train = pd.DataFrame(df_wine_train[0])
label_train["one-hot_1"] = label_train[0].map(lambda x: 1 if (x == 1) else 0)
label_train["one-hot_2"] = label_train[0].map(lambda x: 1 if (x == 2) else 0)
label_train["one-hot_3"] = [1]*len(label_train)
(4).数据标准化,获取每列均值,标准差
avg_col = df_wine_train.mean()
td_col = df_wine_train.std()
(5).标准化结果
df_train_norm = (df_wine_train - avg_col) / td_col
(6).整理数据
df_train_norm=df_train_norm.drop([0], axis=1).join(label_train[["one-hot_1", "one-hot_2"]]) (7).构建神经网络需要的数据结构
df_train_net = np.array(df_train_norm)
train_data_x = df_train_net[:, 0:13]
train_data_y = df_train_net[:, 13:]
1