SPSS 命令: SPSS MLP

在浏览器中训练多层感知器神经网络

多层感知器是一种前馈神经网络,可以学习预测变量与分类或标度目标之间的非线性关系和交互作用。

免费 · 无需注册 · 文件留在本机 · 更新于 2026年10月18日

能告诉你什么

Crosstabs 按 SPSS MLP 算法在你的设备上训练网络——训练、检验和保留分区,一到两个隐藏层,量化共轭梯度或梯度下降,以及 SPSS 的终止规则——并输出分类表、ROC、增益、提升和基于敏感性分析的预测变量重要性。

  • 网络对未参与训练的个案(检验和保留样本)的分类准确度(错误百分比)或预测精度(相对误差)。
  • 从各分区的分类表看出模型在哪些类别之间混淆;从 ROC 曲线、曲线下面积、累积增益和提升看出它对个案排序的能力。
  • 从自变量重要性表和标准化重要性图看出网络最依赖哪些预测变量。
  • 使用自动体系结构选择时,多少个隐藏单元最适合数据。

适用场景

适合使用

  • 预测流失、购买或客户细分,而效应呈非线性或存在交互作用,Logistic 模型拟合不足。
  • 个案数足以留出检验和保留样本——通常需要数百个或更多。
  • 预测准确度比可逐个解释系数的方程更重要。

改用其他方法

  • 需要可解释的效应或显著性检验:请使用 Logistic、多项 Logistic 或线性回归。
  • 样本量小:含数十个权重的网络很容易在几百个个案上过拟合;请先尝试 Logistic 回归或决策树。
  • 必须精确复现 SPSS 的权重:SPSS 的随机初始值未公开,即使设置相同,权重也会不同。
  • 必须应用调查权重:神经网络算法未定义个案权重,结果不加权。

在 Crosstabs 中如何操作

  1. 01

    打开数据

    在工作区打开文件并切换到“统计”模式。

  2. 02

    选择多层感知器

    在“机器学习”组中选择“多层感知器”。

  3. 03

    设置目标、预测变量与重新标度

    在“变量”中选择“目标测量级别”(分类(分类预测)或标度(数值预测))、“目标”、“因子”和“协变量”,以及“协变量的重新标度”(默认标准化),标度目标还需设置“标度目标的重新标度”。

  4. 04

    设置分区

    在“分区”中设置“训练(相对)”“检验(相对)”和“保留(相对)”——默认 7 : 3 : 0——以及“随机种子”,使分区和初始权重可以重现。

  5. 05

    选择体系结构

    将“体系结构选择”保留为“自动(一个隐藏层,最佳单元数)”并设置“最小隐藏单元数”和“最大隐藏单元数”;或选择“定制”,设置“隐藏层数”(1 或 2)、每层单元数、“隐藏层激活函数”和“输出层激活函数”。

  6. 06

    选择训练方式并运行

    在“训练”中选择“训练类型”(批处理、在线或小批次);批处理还可选择“优化算法”(量化共轭梯度或梯度下降)。设置“误差不减少的最大步数”和“最大训练步数”后点击“运行”;运行时显示进度,并可取消。

计算示例

以下结果由 Crosstabs 引擎在构建本页时根据模拟数据实际计算得出,并非手工填写。

数据

300 名模拟订阅用户,因子为合约类型(monthly、annual、two-year),协变量为在网时长(月)和月消费。流失由一个交互作用生成——高消费只在在网时间短的客户中提高流失风险——另加长期合约的保护作用。带种子的分区按 6 : 2 : 2 的相对大小划分训练、检验和保留样本。定制体系结构:一个含 4 个双曲正切单元的隐藏层,Softmax 输出,批处理量化共轭梯度训练。

模型摘要
统计量值
训练 — 交叉熵误差55.474
训练 — 错误预测百分比13.4%
训练 — 使用的终止规则连续 1 步误差未减少
训练 — 步数3
检验 — 交叉熵误差20.657
检验 — 错误预测百分比15.5%
保留 — 错误预测百分比23.8%

基于检验样本计算误差;报告的权重为误差最低步骤的权重。

分类 — 保留
观测值流失留存正确百分比
流失18578.3%
留存103075.0%
总百分比44.4%55.6%76.2%
自变量重要性
预测变量重要性标准化重要性
contract0.23653.8%
tenure0.32674.4%
spend0.438100.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 中运行,数据不会离开你的设备。

用你自己的数据运行多层感知器

打开 .sav、CSV 或 Excel 文件。所有计算都在浏览器中完成,文件不会离开你的设备。

打开分析工作区

SPSS 是 IBM Corp. 的商标。Crosstabs 与 IBM 无关联,也未获得 IBM 认可。