用Excel生成数据训练验证Python多层感知机
本文展示如何在Excel生成训练数据、用Python训练多层感知机、并验证其性能。
想开发Python神经网络,你来对地方了。深入Excel数据准备前,建议回顾系列其余文章建立基础语境:
- 如何用神经网络分类:什么是感知机?
- 如何用简单感知机神经网络示例分类数据
- 如何训练基本感知机神经网络
- 理解简单神经网络训练
- 神经网络训练理论导论
- 理解神经网络学习率
- 多层感知机进阶机器学习
- Sigmoid激活函数:多层感知机激活
- 如何训练多层感知机神经网络
- 理解多层感知机训练公式与反向传播
- Python实现的神经网络架构
- 如何用Python创建多层感知机神经网络
- 神经网络信号处理:神经网络设计验证
- 神经网络训练数据集:如何训练验证Python神经网络
什么是训练数据?
实际应用中,训练样本由测量输入与已知目标配对组成,使神经网络学习一致输入-输出映射。例如,想让网络基于颜色、形状、密度预测番茄食用品质。采集数千番茄,记录物理属性、品尝每个、汇总成表,即创建网络学习属性与品质关系的数据集。
每行代表一个训练样本,三输入列(颜色、形状、密度)和单目标输出列。

训练中神经网络将识别三输入值与输出值间潜在模式——若存在。
量化训练数据
所有输入输出必须为数值。"李子形"、"令人垂涎"等字符串不能直接输入网络。量化将定性描述转数值标度。如形状编码从-1(完美球)到+1(极度细长)。食用品质可五级评分再独热编码为五元输出向量。
下图展示五分类任务独热编码。

独热编码契合logistic-sigmoid激活,其在窄过渡区外产生接近0或1值。用单输出节点目标值0-4会偏向极值导致荒谬预测。

创建训练数据集
第12部分引用的Python神经网络从Excel文件导入样本。数据排列如下:

因感知机实现仅支持单输出节点,我们做二分类。输入值为-5到+5随机数,Excel公式生成:
=RANDBETWEEN(-10, 10)/2
输出按以下规则衍生:
=IF(AND(A2>0, B2>0, C2<0), 1, 0)
因此网络学习:仅当input_0>0、input_1>0、input_2<0时样本标记1,否则0。
此简易问题,5,000随机样本单epoch足达高分类准确率。
训练网络
配置网络:输入维度三(I_dim = 3)、四隐藏节点(H_dim = 4)、学习率0.1(LR = 0.1)。将training_data = pandas.read_excel(...)行替为你的表格路径。无Excel时Pandas也可读ODS文件。
2.5 GHz Windows笔记本8GB内存跑5,000样本仅几秒。用完整MLP_v1.py脚本,验证自动在训练后开始。
验证网络
验证需同公式生成的第二张表。同方式导入数据:

下面片段演示直观验证例程:
# 前向传播得后激活值 output = sigmoid(np.dot(W_out, hidden_output)) # 阈值得二元预测 prediction = 1 if output > 0.5 else 0 # 与目标比较累积正确预测
分类准确率 = 正确预测数 / 验证样本总数。
若省略np.random.seed(1),权重初始化随运行变化致准确率波动。指定参数(5,000训练、1,000验证)下15次运行,准确率88.5%-98.1%,平均94.4%。
结论
探讨神经网络训练数据关键概念,实现Python多层感知机,用Excel生成数据集评估性能。系列已显著推进,更多高阶主题待后续发布。
工业机器人