马克威Hopfield神经网络
马克威操作说明
以数据文件“马克威通用数据1.mkw”为例,演示Hopfield神经网络算法的操作。其中数据记录了准三维空间的1099个点,试用Hopfield算法对这些点进行分类(聚类)。首先,在工作区内,打开建模分析工作流:“机器学习”→“神经网络”→“Hopfield神经网络”,接着选择模型的训练或应用,然后选择数据源,并设置算法参数,最后双击运行按钮。
具体的操作如下:
(1)模型训练
选择模型任务为“训练”,调整模型最大训练次数至500次(默认),调整最大聚类个数为5个(5个为默认状况,用户可自行调整),选择变量为“年龄”、“浏览次数”、“购买总额”、“用户评价”,具体如下图所示:

选项说明
变量选择:选择建模的变量。
模型设置:设置模型的各种参数:
最大聚类个数:即设置最后聚成几类。
最长运行时间:指定该算法运行的最长时间,如果运算的时间达到该指定时间时则强制跳出,并认为该算法失败,不输出运算结果。在该下拉列表中,系统提供了以下八种设置:10分钟、1小时、2小时、7小时、1天、2天、7天和不限时。其中“不限时”为系统默认项。
最大迭代次数:用于控制计算。当算法迭代到最大迭代次数时,如果此时算法未收敛,则跳出循环。
显示记录聚类信息:要求输出聚类信息。
模型保存:设置模型的保存路径。
双击“运行”节点以运行算法,得到模型结果如下:


(2)模型应用
完成模型训练后,可以应用模型对数据进行分析。在“模型任务”选择“应用”,并选择模型来源,将模型变量与数据变量进行匹配如下图所示,用户也可以根据需要对匹配变量进行调整:

运行得到应用模型后的结果:


Hopfield神经网络结果:

选项说明
模型来源:选择训练得到的模型,以进行预测应用。
变量设置:匹配模型中的变量和数据源中的变量。当加载模型文件后,
系统会自动根据数据文件和模型文件进行同名匹配。用户也可以根据实际的需要,自定义匹配变量。
数据要求
输入要求:数值型的,不能是布尔型和描述型。
算法用途
Hopfield是反馈归神经网络,主要应用于联想记忆、聚类以及优化计算方面。
算法原理
Hopfield神经网络(Hopfield是建立该网络模型的科学家)是一种具有动态自反馈的非线性映射,是一个强有力的动力学系统,用于聚类时需构造一个能量函数(所有样本到各自聚类中心的距离和),并且使用模糊数来标识一个样本属于哪一类的程度,如表一,通过对能量函数的训练、对模糊数进行修正,使得能量函数逐渐减小,模糊数逐渐确定,最后能量函数值达到最小,模糊数完全确定,即某一样本属于某一类,则该类的模糊数变为1,而其它模糊数变为0,如表二。


Hopfield网络属于反馈神经网络,所有点都是一样的,它们之间都可互相连接(一个节点既接受其他节点来的输入,同时它的输出也作为其他节点输入),其网络图如下图所示。

Hopfield网络进行聚类是求网络能量方程的极小值点,即稳定点。Hopfield网络聚类的能量函数为:




其中

上式中各点的坐标,
为聚类中心坐标

结果与解释
输出结果:
Hopfield神经网络聚类表:列出记录所属的类。
聚类图:以记录号为横坐标,聚类号为纵坐标的聚类图。
聚类中心坐标:列出每类的聚类中心点的坐标。