SPSS 命令: SPSS MLP
在浏览器中训练多层感知器神经网络
多层感知器是一种前馈神经网络,可以学习预测变量与分类或标度目标之间的非线性关系和交互作用。
免费 · 无需注册 · 文件留在本机 · 更新于 2026年10月18日
能告诉你什么
Crosstabs 按 SPSS MLP 算法在你的设备上训练网络——训练、检验和保留分区,一到两个隐藏层,量化共轭梯度或梯度下降,以及 SPSS 的终止规则——并输出分类表、ROC、增益、提升和基于敏感性分析的预测变量重要性。
- 网络对未参与训练的个案(检验和保留样本)的分类准确度(错误百分比)或预测精度(相对误差)。
- 从各分区的分类表看出模型在哪些类别之间混淆;从 ROC 曲线、曲线下面积、累积增益和提升看出它对个案排序的能力。
- 从自变量重要性表和标准化重要性图看出网络最依赖哪些预测变量。
- 使用自动体系结构选择时,多少个隐藏单元最适合数据。
适用场景
适合使用
- 预测流失、购买或客户细分,而效应呈非线性或存在交互作用,Logistic 模型拟合不足。
- 个案数足以留出检验和保留样本——通常需要数百个或更多。
- 预测准确度比可逐个解释系数的方程更重要。
改用其他方法
- 需要可解释的效应或显著性检验:请使用 Logistic、多项 Logistic 或线性回归。
- 样本量小:含数十个权重的网络很容易在几百个个案上过拟合;请先尝试 Logistic 回归或决策树。
- 必须精确复现 SPSS 的权重:SPSS 的随机初始值未公开,即使设置相同,权重也会不同。
- 必须应用调查权重:神经网络算法未定义个案权重,结果不加权。
在 Crosstabs 中如何操作
- 01
打开数据
在工作区打开文件并切换到“统计”模式。
- 02
选择多层感知器
在“机器学习”组中选择“多层感知器”。
- 03
设置目标、预测变量与重新标度
在“变量”中选择“目标测量级别”(分类(分类预测)或标度(数值预测))、“目标”、“因子”和“协变量”,以及“协变量的重新标度”(默认标准化),标度目标还需设置“标度目标的重新标度”。
- 04
设置分区
在“分区”中设置“训练(相对)”“检验(相对)”和“保留(相对)”——默认 7 : 3 : 0——以及“随机种子”,使分区和初始权重可以重现。
- 05
选择体系结构
将“体系结构选择”保留为“自动(一个隐藏层,最佳单元数)”并设置“最小隐藏单元数”和“最大隐藏单元数”;或选择“定制”,设置“隐藏层数”(1 或 2)、每层单元数、“隐藏层激活函数”和“输出层激活函数”。
- 06
选择训练方式并运行
在“训练”中选择“训练类型”(批处理、在线或小批次);批处理还可选择“优化算法”(量化共轭梯度或梯度下降)。设置“误差不减少的最大步数”和“最大训练步数”后点击“运行”;运行时显示进度,并可取消。
计算示例
以下结果由 Crosstabs 引擎在构建本页时根据模拟数据实际计算得出,并非手工填写。
数据
300 名模拟订阅用户,因子为合约类型(monthly、annual、two-year),协变量为在网时长(月)和月消费。流失由一个交互作用生成——高消费只在在网时间短的客户中提高流失风险——另加长期合约的保护作用。带种子的分区按 6 : 2 : 2 的相对大小划分训练、检验和保留样本。定制体系结构:一个含 4 个双曲正切单元的隐藏层,Softmax 输出,批处理量化共轭梯度训练。
| 统计量 | 值 |
|---|---|
| 训练 — 交叉熵误差 | 55.474 |
| 训练 — 错误预测百分比 | 13.4% |
| 训练 — 使用的终止规则 | 连续 1 步误差未减少 |
| 训练 — 步数 | 3 |
| 检验 — 交叉熵误差 | 20.657 |
| 检验 — 错误预测百分比 | 15.5% |
| 保留 — 错误预测百分比 | 23.8% |
基于检验样本计算误差;报告的权重为误差最低步骤的权重。
| 观测值 | 流失 | 留存 | 正确百分比 |
|---|---|---|---|
| 流失 | 18 | 5 | 78.3% |
| 留存 | 10 | 30 | 75.0% |
| 总百分比 | 44.4% | 55.6% | 76.2% |
| 预测变量 | 重要性 | 标准化重要性 |
|---|---|---|
| contract | 0.236 | 53.8% |
| tenure | 0.326 | 74.4% |
| spend | 0.438 | 100.0% |
基于训练与检验合并样本的敏感性分析。
结果解读
5–4–2 网络(输入单元、隐藏单元、输出单元)训练了 3 步,按“连续 1 步误差未减少”规则停止,该规则基于检验样本判断。在 63 名保留客户中错误分类 23.8%(正确率 76.2%),优于将所有人都预测为较大类别时的 63.5%。标准化重要性最高的是 spend(100.0%)。由于检验误差不再下降,训练仅 3 步就停止了;调高“误差不减少的最大步数”可让优化器在放弃前继续搜索。换一个随机种子会改变分区和初始权重,误差可能相差几个百分点。
输出表格说明
- 个案处理摘要
- 训练、检验和保留样本中的个案数,以及因缺失值或因子、目标类别未在训练中出现而被排除的个案数。
- 网络信息
- 输入单元、重新标度方法、隐藏层数与单元数、激活函数以及误差函数(Softmax 输出时为交叉熵,否则为平方和)。
- 模型摘要
- 各分区的误差和错误预测百分比(标度目标为相对误差)、使用的终止规则和训练步数。应依据检验或保留样本而非训练样本评价模型。
- 分类
- 观测类别 × 预测类别的计数和正确百分比,每个分区一张表(分类目标)。
- 曲线下面积
- 每个目标类别的 AUC,并附基于训练与检验合并样本的 ROC 曲线、累积增益、提升和预测-观测图。
- 自变量重要性
- 基于敏感性分析的各预测变量重要性,以及相对于最重要预测变量的标准化重要性;随后给出各层的参数估计,预测值可下载为 CSV。
前提假设与注意事项
- 检验和保留个案与训练个案一样是随机样本;保留样本完全不参与训练,因此其误差才是可靠的估计。
- 目标或预测变量缺失的个案被排除;因子采用 one-of-c 编码,协变量依据训练个案进行重新标度。
- 初始权重来自在最多 1000 个个案的随机样本上进行的模拟退火,因此换一个种子会得到略有不同的网络。
- 有检验样本时,终止规则依据检验误差判断,报告的权重为误差最低那一步的权重。
结果如何验证
MLP 引擎与一个独立的向量化 NumPy 实现对照,该实现依据 SPSS 算法章节编写,仅共用公开的 mulberry32 随机数协议。对四种网络结构,反向传播梯度与 NumPy 矩阵梯度一致到 1e-10,与中心有限差分一致到 1e-6;量化共轭梯度以及批处理、在线和小批次梯度下降各运行五步,结果一致到 1e-10。七次完整训练(定制的一层和两层网络、所有训练类型、自动体系结构选择)得到相同的步数和终止规则,最终权重在短训练中相差不超过 1e-6,较长训练中不超过 1e-3,误差在 1e-8(1e-6)以内,重要性在 1e-7(1e-4)以内,AUC 与 scikit-learn roc_auc_score 一致到 1e-12。由于 SPSS 的随机数流未公开,权重不与 SPSS 比较。 验证证据(英文)
常见问题
为什么我的权重与 SPSS 不同?
训练从经模拟退火优化的随机权重开始,而 SPSS 未公开其随机数流和内部样本。算法遵循 SPSS 算法章节,但起点不同,因此应期待相近的准确度,而不是相同的权重。
检验样本和保留样本有什么用?
检验样本决定何时停止训练以防止过拟合,并用于自动体系结构选择。保留样本在训练中从不使用,因此其误差才是对新数据的公正估计。
训练几步就停止了,有问题吗?
默认“误差不减少的最大步数”为 1,检验误差一上升训练就会停止。调高该值可让训练继续,再比较保留样本误差看是否有改善。
一个隐藏层还是两个?
一个隐藏层已能逼近大多数平滑关系,自动选择也只使用一个隐藏层。只有在个案很多且一个隐藏层明显拟合不足时,才选择“定制”并使用两个隐藏层。
预测变量重要性是如何计算的?
通过在训练和检验个案上做敏感性分析:让每个预测变量在其最小值、四分位数和最大值(或各类别)间变动,记录网络输出的平均最大变化,再归一化为总和为 1。
我的数据会被上传吗?
不会。训练在浏览器的 Web Worker 中运行,数据不会离开你的设备。
相关过程
- 径向基函数网络RBF
- 二元 Logistic 回归LOGISTIC REGRESSION
- 最近邻元素分析(KNN)KNN
- 多项 Logistic 回归NOMREG
- ROC 曲线ROC
- 预测变量选择SELECTPRED
- 免费的 SPSS 替代工具:支持范围
用你自己的数据运行多层感知器
打开 .sav、CSV 或 Excel 文件。所有计算都在浏览器中完成,文件不会离开你的设备。
SPSS 是 IBM Corp. 的商标。Crosstabs 与 IBM 无关联,也未获得 IBM 认可。