一种基于层次聚类的SOM算法改进方法与流程

专利2023-02-24  109


一种基于层次聚类的som算法改进方法
技术领域
1.本发明涉及som算法技术领域,尤其涉及一种基于层次聚类的som算法改进方法。


背景技术:

2.聚类分析是将数据分组到子集的过程,集群中的每个项目与同一集群中的项目的相似程度要高于集群外部的其他项目。通常,距离度量如欧氏距离、曼哈顿距离被用来评估数据点之间的差异。聚类分析是机器学习和数据挖掘中最有用的任务之一,已被广泛应用于市场营销、银行、医药和电信等领域。它被广泛应用于降维、信息提取、密度近似和数据压缩等领域。
3.som方法的性能对随机分配的初始权重敏感。而且在大规模应用中,随机分配的初始值使它的速度非常慢。


技术实现要素:

4.本发明提供了一种基于层次聚类的som算法改进方法,以解决现有技术中存在的聚类分析初始值敏感、收敛速度慢的问题,集群中的每个项目与同一集群中的项目的相似程度要高于集群外部的其他项目。通常,距离度量如欧氏距离、曼哈顿距离被用来评估数据点之间的差异。聚类分析是机器学习和数据挖掘中最有用的任务之一,已被广泛应用于市场营销、银行、医药和电信等领域。它被广泛应用于降维、信息提取、密度近似和数据压缩等领域。som方法的性能对随机分配的初始权重敏感。而且在大规模应用中,随机分配的初始值使它的速度非常慢。
5.为了达到上述目的,本发明提供如下技术方案:
6.一种基于层次聚类的som算法改进方法,包括:
7.s101:基于层次聚类法,确定som算法的初始权重值;
8.s102:基于初始权重值将som算法神经元数据进行初始化;
9.s103:基于初始化后的som算法神经元数据,通过som算法获取对应的聚类方案。
10.其中,所述s101步骤包括:
11.s1011:对数据进行初始化处理,获取对应的簇数q;
12.s1012:基于重复中心点集合d的计算过程获取q=n
×
m;
13.s1013:通过公式确定n
×
m个聚类中心,即d={{x1},{x2},...,{xn×m}},其中,n
×
m个聚类中心为层次聚类的储存结果,r表示第r个簇,1≤r≤n
×
m,k表示第r个簇的样本点的个数。
14.其中,所述s1013步骤之后包括:
15.查询中心点集合d中最边缘的中心点l,
16.从与l最相似到最不相似以及欧氏距离由近到远的方式将所有簇中心的d进行排序,其中d不变,将排序结果放入神经元集合θ中;
17.将排序中心的属性值按顺序进行初始化,通过初始化形成映射神经元的权重值。
18.其中,所述s102步骤包括:
19.s1021:基于som算法,将对应的权值进行初始化处理;
20.s1022:基于欧氏距离,计算输出神经元和输入向量之间的距离,获取获胜神经元,所述获胜神经元为距离最短的输出神经元;
21.s1023:通过更新神经元权重公式和高斯函数公式对优胜邻域内神经元调整权值大小,其中,学习率随迭代次数增加而减小,学习邻域缩小;
22.s1024:查看学习率是否小于预设阈值,若小于预设阀值则结束检查。
23.其中,所述s1021步骤包括:
24.通过顺序赋值将竞争层的神经元权重赋值为层次聚类中心点,对竞争层的神经元权重进行归一化处理,通过邻域函数公式和高斯函数公式建立优胜领域,通过优胜领域初始化学习率;
25.所述邻域函数公式如下:
26.h(t)=αgf
27.所述高斯函数公式如下:
[0028][0029]
其中,h(t)表示邻域函数,α表示学习率,gf表示高斯函数,表示邻域宽度参数,wui表示获胜神经元,cui表示输入神经元。
[0030]
其中,所述s1021步骤包括:
[0031]
基于som算法,输入神经元与输出神经元相连,每个连接对应一个权重值;
[0032]
将som算法神经元数据初始化的过程中,每个神经元与输入向量(xi=x
i1
,x
i2
,...,x
in
)的随机权重向量(wi=w
i1
,w
i2
,...,w
in
)相关联,其中,随机权重向量包括相同维数n。
[0033]
其中,所述s1023包括:
[0034]
基于邻域函数公式,根据w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)更新神经元权重,其中,w
ij
(t)表示在时间t从输入i到输出神经元j的连接权重,xi表示输入向量x的元素i,h表示邻域函数。
[0035]
其中,所述s1012步骤包括:
[0036]
基于中心点集合d中任意两组(ci,cj),计算最小距离d
min
(ci,cj);
[0037]
合并ci,cj,取q=q-1作为新的q值;
[0038]
重复上述计算直至q=n
×
m。
[0039]
其中,所述s1011步骤包括:
[0040]
对数据进行初始化处理,即m={{x1},{x2},...,{xm}},将每个数据分为一个簇,其中,簇数q=m,m表示初始样本数目。
[0041]
其中,所述s1013步骤包括:
[0042]
将聚类个数进行初始化,通过初始化获取与初始样本数目m相关的较大数值,初始化后为结合层次聚类获取神经元权重值,通过som算法进行聚类,在som算法中,对通过化整处理进行修正,当som算法结束时,将n
×
m初始化作为神经元的个数。
[0043]
与现有技术相比,本发明具有以下优点:
[0044]
一种基于层次聚类的som算法改进方法,包括:基于层次聚类法,确定som算法的初始权重值;基于初始权重值将som算法神经元数据进行初始化;基于初始化后的som算法神经元数据,通过som算法获取对应的聚类方案。加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0045]
本发明的其它特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者通过实施本发明而了解。本发明的目的和其他优点可通过在所写的说明书、权利要求书、以及附图中所特别指出的结构来实现和获得。
[0046]
下面通过附图和实施例,对本发明的技术方案做进一步的详细描述。
附图说明
[0047]
附图用来提供对本发明的进一步理解,并且构成说明书的一部分,与本发明的实施例一起用于解释本发明,并不构成对本发明的限制。在附图中:
[0048]
图1为本发明实施例中一种基于层次聚类的som算法改进方法的流程图;
[0049]
图2为本发明实施例中一种基于层次聚类的som算法改进方法的基于层次聚类法流程图;
[0050]
图3为本发明实施例中以神经元数目为5
×
5个为例,初始权值的顺序赋值的结构图;
[0051]
图4为本发明实施例中以神经元数目为4
×
11个为例,初始权值的顺序赋值。
具体实施方式
[0052]
以下结合附图对本发明的优选实施例进行说明,应当理解,此处所描述的优选实施例仅用于说明和解释本发明,并不用于限定本发明。
[0053]
本发明实施例提供了一种基于层次聚类的som算法改进方法,请参考图1至图4,包括:
[0054]
s101:基于层次聚类法,确定som算法的初始权重值;
[0055]
s102:基于初始权重值将som算法神经元数据进行初始化;
[0056]
s103:基于初始化后的som算法神经元数据,通过som算法获取对应的聚类方案。
[0057]
上述技术方案的工作原理为:首先使用层次方法确定som算法的初始权值,然后使用som作为无监督聚类方法完成聚类任务。加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0058]
上述技术方案的有益效果为:首先使用层次方法确定som算法的初始权值,然后使用som作为无监督聚类方法完成聚类任务。加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0059]
在另一实施例中,所述s101步骤包括:
[0060]
s1011:对数据进行初始化处理,获取对应的簇数q;
[0061]
s1012:基于重复中心点集合d的计算过程,获取q=n
×
m;
[0062]
s1013:通过公式确定n
×
m个聚类中心,即d={{x1},
{x2},...,{xn×m}},其中,n
×
m个聚类中心为层次聚类的储存结果,r表示第r个簇,1≤r≤n
×
m,k表示第r个簇的样本点的个数。
[0063]
上述技术方案的工作原理为:迭代地合并距离最近的两个簇,以形成层次的聚类树结构,初始化,将每个特征向量作为一个独立的簇;根据簇间距离公式计算所有簇之间的距离;合并距离最近的两个簇;重复簇间距离公式计算所有簇之间的距离直到只剩一个簇。
[0064]
上述技术方案的有益效果为:迭代地合并距离最近的两个簇,以形成层次的聚类树结构,初始化,将每个特征向量作为一个独立的簇;根据簇间距离公式计算所有簇之间的距离;合并距离最近的两个簇;重复簇间距离公式计算所有簇之间的距离直到只剩一个簇。加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0065]
在另一实施例中,所述s1013步骤之后包括:
[0066]
查询中心点集合d中最边缘的中心点l,
[0067]
从与l最相似到最不相似以及欧氏距离由近到远的方式将所有簇中心的d进行排序,其中d不变,将排序结果放入神经元集合θ中;
[0068]
将排序中心的属性值按顺序进行初始化,通过初始化形成映射神经元的权重值。
[0069]
上述技术方案的工作原理为:查询d中最边缘的中心点l,即上述技术方案的工作原理为:查询d中最边缘的中心点l,即将所有簇中心的d进行排序,从与l最相似到最不相似,即欧氏距离由近到远,其中d不变,将排序结果放入θ中;将排序中心的属性值按顺序进行初始化,通过初始化形成映射神经元的权重值,如图3和图4;
[0070]
步骤1:i=0,k=1;其中,i为θ中的神经元;k为迭代的层数,1≤k≤2n-1+(m-n);并定义当n《m时,从n+1开始的m-n-1层为重复层,如图4的蓝色区域。
[0071]
步骤2:if k为奇数且k不为重复层
[0072]
then令
[0073]
else if k为偶数且k不为重复层
[0074]
then令
[0075]
[r,c]《-θ[i],i++;r《-r-1,c《-c+1;
[0076]
while 0≤r≤n-1且0≤c≤n≤1且r+c≤k-1
[0077]
do
[0078]
{
[0079]
[r,c]《-θ[i];i++;
[0080]
[c,r]《-θ[i];i++;
[0081]
r《-r-1,c《-c+1;
[0082]
}
[0083]
}
[0084]
if k为重复层
[0085]
then在该层重复第n层的赋值规律
[0086]
由此完成一层的赋值迭代。
[0087]
判断是否1≤k<m+n-1;如果是返回步骤2,如果不是则完成赋值。
[0088]
上述技术方案的有益效果为:获取输入数据与神经元欧氏距离最短数据。够加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0089]
在另一实施例中,所述s102步骤包括:
[0090]
s1021:基于som算法,将对应的权值进行初始化处理;
[0091]
s1022:基于欧氏距离,计算输出神经元和输入向量之间的距离,获取获胜神经元,所述获胜神经元为距离最短的输出神经元;
[0092]
s1023:通过更新神经元权重公式和高斯函数公式对优胜邻域内神经元调整权值大小,其中,学习率随迭代次数增加而减小,学习邻域缩小;
[0093]
s1024:查看学习率是否小于预设阈值,若小于预设阀值则结束检查。
[0094]
上述技术方案的工作原理为:权值初始化,通过顺序赋值对竞争层的各个神经元权重赋值为层次聚类各个中心点,并进行归一化处理,并通过公式h(t)=αgf和公式建立优胜领域,初始化学习率;寻找获胜神经元,即该输入数据与神经元欧氏距离最短;通过公式w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)和公式对优胜邻域内所有神经元调整权值大小,学习率α随迭代次数增加而减小,学习邻域缩小;结束检查,查看学习率α是否减小到0或者小于阈值。
[0095]
上述技术方案的有益效果为:权值初始化,通过顺序赋值对竞争层的各个神经元权重赋值为层次聚类各个中心点,并进行归一化处理,并通过公式h(t)=αgf和公式建立优胜领域,初始化学习率;寻找获胜神经元,即该输入数据与神经元欧氏距离最短;通过公式w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)和公式对优胜邻域内所有神经元调整权值大小,学习率α随迭代次数增加而减小,学习邻域缩小;结束检查,查看学习率α是否减小到0或者小于阈值。加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0096]
在另一实施例中,所述s1021步骤包括:
[0097]
通过顺序赋值将竞争层的神经元权重赋值为层次聚类中心点,竞争层的神经元权重进行归一化处理,通过邻域函数公式h(t)=αgf和高斯函数公式建立优胜领域,通过优胜领域初始化学习率,其中,h(t)表示邻域函数,α表示学习率,gf表示高斯函数,φ表示邻域宽度参数,wui表示获胜神经元,cui表示输入神经元。
[0098]
上述技术方案的工作原理为:通过顺序赋值将竞争层的神经元权重赋值为层次聚类中心点,竞争层的神经元权重进行归一化处理,通过邻域函数公式h(t)=αgf和高斯函数公式建立优胜领域,通过优胜领域初始化学习率,其中,h(t)表示邻域函数,α表示学习率,gf表示高斯函数,φ表示邻域宽度参数,wui表示获胜神经元,cui表示
输入神经元。
[0099]
上述技术方案的有益效果为:通过顺序赋值将竞争层的神经元权重赋值为层次聚类中心点,竞争层的神经元权重进行归一化处理,通过邻域函数公式h(t)=αgf和高斯函数公式建立优胜领域,通过优胜领域初始化学习率,其中,h(t)表示邻域函数,α表示学习率,gf表示高斯函数,φ表示邻域宽度参数,wui表示获胜神经元,cui表示输入神经元。加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0100]
在另一实施例中,所述s1021步骤包括:
[0101]
基于som算法,输入神经元与输出神经元相连,每个连接对应一个权重值;
[0102]
将som算法神经元数据初始化的过程中,每个神经元与和输入向量(xi=x
i1
,x
i2
,...,x
in
)的随机权重向量(wi=w
i1
,w
i2
,...,w
in
)相关联,其中,随机权重向量包括相同维数n。
[0103]
上述技术方案的工作原理为:基于som算法,输入神经元与输出神经元相连,每个连接对应一个权重值;将som算法神经元数据初始化的过程中,每个神经元与和输入向量(xi=x
i1
,x
i2
,...,x
in
)的随机权重向量(wi=w
i1
,w
i2
,...,w
in
)相关联,其中,随机权重向量包括相同维数n。
[0104]
上述技术方案的有益效果为:为了降低som的时间复杂度,我们提出了利用层次聚类结果初始化som聚类的方法。层次聚类是聚类算法的一种,通过计算不同类别数据点间的相似度来创建一棵有层次的嵌套聚类树。在聚类树中,不同类别的原始数据点是树的最低层,树的顶层是一个聚类的根节点,属于无监督学习。
[0105]
在另一实施例中,所述s1023包括:
[0106]
基于邻域函数公式h(t)=αgf,根据w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)更新神经元权重,其中,w
ij
(t)表示在时间t从输入i到输出神经元j的连接权重,xi表示输入向量x的元素i,h表示邻域函数。
[0107]
上述技术方案的工作原理为:基于邻域函数公式h(t)=αgf,根据w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)更新神经元权重,其中,w
ij
(t)表示在时间t从输入i到输出神经元j的连接权重,xi表示输入向量x的元素i,h表示邻域函数。
[0108]
上述技术方案的有益效果为:基于邻域函数公式h(t)=αgf,根据w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)更新神经元权重,其中,w
ij
(t)表示在时间t从输入i到输出神经元j的连接权重,xi表示输入向量x的元素i,h表示邻域函数。
[0109]
在另一实施例中,所述s1012步骤包括:
[0110]
基于中心点集合d中任意两组(ci,cj),计算最小距离d
min
(ci,cj);
[0111]
合并ci,cj,取q=q-1作为新的q值;
[0112]
重复上述计算直至q=n
×
m。
[0113]
上述技术方案的工作原理为:基于中心点集合d中任意两组(ci,cj),计算最小距离d
min
(ci,cj);合并ci,cj,取q=q-1作为新的q值;重复上述计算直至q=n
×
m。
[0114]
上述技术方案的有益效果为:基于中心点集合d中任意两组(ci,cj),计算最小距离d
min
(ci,cj);合并ci,cj,取q=q-1作为新的q值;重复上述计算直至q=n
×
m。获取输入数据
与神经元欧氏距离最短数据。够加快som收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。
[0115]
在另一实施例中,所述s1011步骤包括:
[0116]
对数据进行初始化处理,即m={{x1},{x2},...,{xm}},将每个数据分为一个簇,其中,簇数q=m。
[0117]
上述技术方案的工作原理为:对数据进行初始化处理,即m={{x1},{x2},...,{xm}},将每个数据分为一个簇,其中,簇数q=m,m表示初始样本数目。
[0118]
上述技术方案的有益效果为:对数据进行初始化处理,即m={{x1},{x2},...,{xm}},将每个数据分为一个簇,其中,簇数q=m,m表示初始样本数目。
[0119]
在另一实施例中,所述s1013步骤包括:
[0120]
将聚类个数进行初始化,通过初始化获取与初始样本数目m相关的较大数值,初始化后为结合层次聚类获取神经元权重值,通过som算法进行聚类,在som算法中,对通过化整处理进行修正,当som算法结束时,将n
×
m初始化作为神经元的个数。
[0121]
上述技术方案的工作原理为:将聚类个数进行初始化,初始化后为结合层次聚类获取神经元权重值,通过som算法进行聚类,在som算法中,对通过化整处理进行修正,当som算法结束时,将n
×
m初始化作为神经元的个数。
[0122]
上述技术方案的有益效果为:将聚类个数先初始化为与初始样本数目m相关的一个较大数值,由于初始样本数目作为训练数据一般数量较大,因此我们将聚类个数初始化为然后结合层次聚类获得神经元权重值,然后通过som算法进行聚类,在此过程中,由于我们初始化的神经元数目远大于正确的神经元数目,因此总存在失效的输出层神经元,即该神经元永不获胜。当som算法结束时,获胜过的神经元个数远小于初始的聚类个数值将n
×
m初始化为获胜过的神经元的个数。在som算法中,由于输出层是根据n
×
m的输出平面,因此还要对通过化整处理进行修正。
[0123]
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

技术特征:
1.一种基于层次聚类的som算法改进方法,其特征在于,包括:s101:基于层次聚类法,确定som算法的初始权重值;s102:基于初始权重值将som算法神经元数据进行初始化;s103:基于初始化后的som算法神经元数据,通过som算法获取对应的聚类方案。2.根据权利要求1所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s101步骤包括:s1011:对数据进行初始化处理,获取对应的簇数q;s1012:基于重复中心点集合d的计算过程获取q=n
×
m;s1013:通过公式确定n
×
m个聚类中心,即d={{x1},{x2},...,{x
n
×
m
}},其中,n
×
m个聚类中心为层次聚类的储存结果,r表示第r个簇,1≤r≤n
×
m,k表示第r个簇的样本点的个数。3.根据权利要求2所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s1013步骤之后包括:查询中心点集合d中最边缘的中心点l,从与l最相似到最不相似以及欧氏距离由近到远的方式将所有簇中心的d进行排序,其中d不变,将排序结果放入神经元集合θ中;将排序中心的属性值按顺序进行初始化,通过初始化形成映射神经元的权重值。4.根据权利要求1所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s102步骤包括:s1021:基于som算法,将对应的权值进行初始化处理;s1022:基于欧氏距离,计算输出神经元和输入向量之间的距离,获取获胜神经元,所述获胜神经元为距离最短的输出神经元;s1023:通过更新神经元权重公式和高斯函数公式对优胜邻域内神经元调整权值大小,其中,学习率随迭代次数增加而减小,学习邻域缩小;s1024:查看学习率是否小于预设阈值,若小于预设阀值则结束检查。5.根据权利要求4所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s1021步骤包括:通过顺序赋值将竞争层的神经元权重赋值为层次聚类中心点,对竞争层的神经元权重进行归一化处理,通过邻域函数公式和高斯函数公式建立优胜领域,通过优胜领域初始化学习率;所述邻域函数公式如下:h(t)=αgf所述高斯函数公式如下:其中,h(t)表示邻域函数,α表示学习率,gf表示高斯函数,表示邻域宽度参数,wui表示获胜神经元,cui表示输入神经元。6.根据权利要求4所述的一种基于层次聚类的som算法改进方法,其特征在于,所述
s1022步骤包括:基于som算法,输入神经元与输出神经元相连,每个连接对应一个权重值;将som算法神经元数据初始化的过程中,每个神经元与输入向量(x
i
=x
i1
,x
i2
,...,x
in
)的随机权重向量(w
i
=w
i1
,w
i2
,...,w
in
)相关联,其中,随机权重向量包括相同维数n。7.根据权利要求4所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s1023包括:基于邻域函数公式,根据w
ij
(t+1)=w
ij
+h(t)(x
i-w
ij
)更新神经元权重,其中,w
ij
(t)表示在时间t从输入i到输出神经元j的连接权重,x
i
表示输入向量x的元素i,h表示邻域函数。8.根据权利要求2所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s1011步骤包括:对数据进行初始化处理,即m={{x1},{x2},...,{x
m
}},将每个数据分为一个簇,其中,簇数q=m,m表示初始样本数目。9.根据权利要求2所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s1012步骤包括:基于中心点集合d中任意两组(c
i
,c
j
),计算最小距离d
min
(c
i
,c
j
);合并c
i
,c
j
,取q=q-1作为新的q值;重复上述计算直至q=n
×
m。10.根据权利要求9所述的一种基于层次聚类的som算法改进方法,其特征在于,所述s1013步骤包括:将聚类个数进行初始化,通过初始化获取与初始样本数目m相关的较大数值,初始化后为结合层次聚类获取神经元权重值,通过som算法进行聚类,在som算法中,对通过化整处理进行修正,当som算法结束时,将n
×
m初始化作为神经元的个数。

技术总结
本发明公开了一种基于层次聚类的SOM算法改进方法,包括:基于层次聚类法,确定SOM算法的初始权重值;基于初始权重值将SOM算法神经元数据进行初始化;基于初始化后的SOM算法神经元数据,通过SOM算法获取对应的聚类方案。加快SOM收敛速度,能够降低数据量较大时的算法时间复杂度,同时,还可以应对数据集不平衡等问题。问题。问题。


技术研发人员:杨永全 管佩琪 魏志强
受保护的技术使用者:青岛海洋科学与技术国家实验室发展中心
技术研发日:2022.07.26
技术公布日:2022/11/1
转载请注明原文地址: https://tieba.8miu.com/read-1323.html

最新回复(0)