发明内容
有鉴于此,本发明实施例提供一种混合属性数据聚类的方法和装置,通过为不同属性类型的属性数据集赋予权重,并计算相同属性类型的属性数据集的距离,以基于权重和距离确定两个数据对象的相异度,进而实现了对包括向量属性的混合属性数据的聚类。
为实现上述目的,根据本发明实施例的一个方面,提供了一种混合属性数据聚类的方法。
本发明实施例的一种混合属性数据聚类的方法,包括:根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重,其中,所述属性数据集包括向量属性数据集;根据预先设定的聚类数,从所述混合属性数据集中选择相应数量的数据对象作为聚类质心点;计算待聚类数据对象与所述聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度;将所述待聚类数据对象聚类到最小相异度的聚类质心点所对应的簇中。
可选地,所述属性数据集包括数值属性数据集和/或分类属性数据集;所述根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重,包括:分别计算混合属性数据集的数据对象中所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵;计算所述数据对象的信息熵,将所述数据对象的信息熵分别与所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵作差,得到对应属性数据集的权重。
可选地,所述计算待聚类数据对象与所述聚类质心点中相同属性类型的属性数据集的距离,包括:把待聚类数据对象与所述聚类质心点中的向量属性数据集分别进行归一化处理,以计算所述待聚类数据对象与所述聚类质心点的向量属性数据集的相似度,将所述相似度转化为对应的距离;把所述待聚类数据对象与所述聚类质心点中的数值属性数据集依次进行标准化和归一化处理,以计算所述待聚类数据对象与所述聚类质心点的数值属性数据集的距离;根据预先定义的距离度量规则,确定所述待聚类数据对象与所述聚类质心点中的分类属性数据集的距离;所述根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度,包括:将所述距离乘以对应属性类型的属性数据集的权重并求和,以得到待聚类数据对象与聚类质心点的相异度。
可选地,所述将所述待聚类数据对象聚类到最小相异度的聚类质心点所对应的簇中的步骤之后,还包括:更新聚类质心点:更新所述簇的聚类质心点;重新确定相异度:计算所述待聚类数据对象与更新后的聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与更新后的聚类质心点的相异度;重新聚类:将所述待聚类数据对象聚类到最小相异度的更新后的聚类质心点所对应的簇中;循环执行所述更新聚类质心点、重新确定相异度和重新聚类的步骤,直到满足预设停止条件。
可选地,所述方法还包括:根据所述数据对象之间的相异度,定义目标函数;根据聚类结果计算所述目标函数的值。
可选地,所述停止条件为下述任意一种:相邻两次循环中所述聚类质心点不变或者变化幅度小于预设第一阈值;循环迭代次数满足预设迭代次数;相邻两次循环中所述目标函数的值不变或者变化幅度小于预设第二阈值。
为实现上述目的,根据本发明实施例的另一方面,提供了一种混合属性数据聚类的装置。
本发明实施例的一种混合属性数据聚类的装置,包括:计算模块,用于根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重,其中,所述属性数据集包括向量属性数据集;选择模块,用于根据预先设定的聚类数,从所述混合属性数据集中选择相应数量的数据对象作为聚类质心点;确定模块,用于计算待聚类数据对象与所述聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度;聚类模块,用于将所述待聚类数据对象聚类到最小相异度的聚类质心点所对应的簇中。
可选地,所述属性数据集包括数值属性数据集和/或分类属性数据集;所述计算模块,还用于:分别计算混合属性数据集的数据对象中所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵;以及计算所述数据对象的信息熵,将所述数据对象的信息熵分别与所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵作差,得到对应属性数据集的权重。
可选地,所述确定模块,还用于:把待聚类数据对象与所述聚类质心点中的向量属性数据集分别进行归一化处理,以计算所述待聚类数据对象与所述聚类质心点的向量属性数据集的相似度,将所述相似度转化为对应的距离;把所述待聚类数据对象与所述聚类质心点中的数值属性数据集依次进行标准化和归一化处理,以计算所述待聚类数据对象与所述聚类质心点的数值属性数据集的距离;根据预先定义的距离度量规则,确定所述待聚类数据对象与所述聚类质心点中的分类属性数据集的距离;以及将所述距离乘以对应属性类型的属性数据集的权重并求和,以得到待聚类数据对象与聚类质心点的相异度。
可选地,所述装置还包括:循环处理模块,用于更新聚类质心点:更新所述簇的聚类质心点;重新确定相异度:计算所述待聚类数据对象与更新后的聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与更新后的聚类质心点的相异度;重新聚类:将所述待聚类数据对象聚类到最小相异度的更新后的聚类质心点所对应的簇中;以及循环执行所述更新聚类质心点、重新确定相异度和重新聚类的步骤,直到满足预设停止条件。
可选地,所述装置还包括:定义计算模块,用于根据所述数据对象之间的相异度,定义目标函数;以及根据聚类结果计算所述目标函数的值。
可选地,所述停止条件为下述任意一种:相邻两次循环中所述聚类质心点不变或者变化幅度小于预设第一阈值;循环迭代次数满足预设迭代次数;相邻两次循环中所述目标函数的值不变或者变化幅度小于预设第二阈值。
为实现上述目的,根据本发明实施例的再一方面,提供了一种电子设备。
本发明实施例的一种电子设备,包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种混合属性数据聚类的方法。
为实现上述目的,根据本发明实施例的再一方面,提供了一种计算机可读介质。
本发明实施例的一种计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种混合属性数据聚类的方法。
上述发明中的一个实施例具有如下优点或有益效果:通过为不同属性类型的属性数据集赋予权重,并计算相同属性类型的属性数据集的距离,以基于权重和距离确定两个数据对象的相异度,进而实现了对包括向量属性的混合属性数据的聚类;结合不同聚类的簇中属性数据集的信息熵的变化,为不同属性类型的属性数据集赋予权重,能够充分体现数据对象间的差异性;将混合属性数据的聚类问题拆分为不同属性类型的属性数据集合之间的距离度量,以将不同属性类型的属性数据集统一到同一度量上,再结合权重对距离进行加权得到数据对象之间的相异度;更新聚类质心点,循环迭代进行聚类,以优化聚类结果;定义目标函数,在每次得到聚类结果后计算目标函数的值,以判断聚类算法是否收敛。
上述的非惯用的可选方式所具有的进一步效果将在下文中结合具体实施方式加以说明。
具体实施方式
以下结合附图对本发明的示范性实施例做出说明,其中包括本发明实施例的各种细节以助于理解,应当将它们认为仅仅是示范性的。因此,本领域普通技术人员应当认识到,可以对这里描述的实施例做出各种改变和修改,而不会背离本发明的范围和精神。同样,为了清楚和简明,以下的描述中省略了对公知功能和结构的描述。
图1是根据本发明实施例的混合属性数据聚类的方法的主要步骤的示意图。如图1所示,本发明实施例的混合属性数据聚类的方法,主要包括如下步骤:
步骤S101:根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重,其中,所述属性数据集包括向量属性数据集。所述混合属性数据集中包括多个数据对象,所述数据对象中包括多个属性类型的属性数据,同一属性类型的属性数据构成对应的属性数据集。所述属性类型包括向量属性、数值属性和分类属性,相应的本文将属性类型为向量属性的属性数据构成的集合称作向量属性数据集,将属性类型为数值属性的属性数据构成的集合称作数值属性数据集,将属性类型为分类属性的属性数据构成的集合称作分类属性数据集。实施例中,所述数据对象中可能仅包括向量属性数据和数值属性数据,也可能仅包括向量属性数据和分类属性数据,也可能包括向量属性数据、数值属性数据和分类属性数据。该步骤首先分别计算混合属性数据集的数据对象中所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵;之后计算所述数据对象的信息熵,将所述数据对象的信息熵分别与所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵作差,以得到对应属性数据集的权重。
步骤S102:根据预先设定的聚类数,从所述混合属性数据集中选择相应数量的数据对象作为聚类质心点。随机从混合属性数据集中选择与预先设定的聚类数相同的数据对象,将选择出的数据对象作为对应簇的聚类质心点。比如聚类数为k,则随机从混合属性数据集中选择出k个数据对象,并分别作为k个簇的聚类质心点。
步骤S103:计算待聚类数据对象与所述聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度。分别计算待聚类数据对象与所述聚类质心点中的向量属性数据集、数值属性数据集和分类属性数据集的距离,将所述距离乘以对应属性类型的属性数据集的权重并求和,以得到待聚类数据对象与聚类质心点的相异度。计算向量属性数据集的距离时,需先进行归一化处理,之后计算相似度再转化成距离。计算数值属性数据集的距离时,需先进行标准化处理,之后进行归一化处理,结合欧式距离公式得到对应的距离。计算分类属性数据集的距离时,需根据预先定义的距离度量规则确定分类属性数据集的距离。
步骤S104:将所述待聚类数据对象聚类到最小相异度的聚类质心点所对应的簇中。计算出所述待聚类数据对象与每个聚类质心点的相异度后,找出与所述待聚类数据对象的相异度最小的聚类质心点,将所述待聚类数据对象归属到相异度最小的聚类质心点对应的簇中。之后,还需更新聚类质心点,并进行多次循环迭代以重新确定相异度和重新聚类,优化聚类结果。
图2是根据本发明实施例的混合属性数据聚类的方法的实现原理示意图。如图2所示,本发明实施例的混合属性数据聚类的方法中,每个数据对象X包括m个属性数据,假设前i个属性数据为第一向量属性数据,第i+1到第i+j个属性数据为第二向量属性数据,第i+j+1到第i+j+r个属性数据为数值属性数据,第i+j+r+1到第m个属性数据为分类属性数据,则第一向量属性数据集为{x1,x2,…,xi},第二向量属性数据集为{xi+1,xi+2,…,xi+j},数值属性数据集为{xi+j+1,xi+j+2,…,xi+j+r},分类属性数据集为{xi+j+r+1}、{xi+j+r+2}、…、{xm};之后分别计算数据对象之间的各个属性类型的属性数据集的距离,将所述距离进行加权求和得到数据对象之间的相异度,以根据所述相异度将混合属性数据集中的数据对象分配到k个簇中。
图3是根据本发明实施例的混合属性数据聚类的方法的主要流程示意图。如图3所示,本发明实施例的混合属性数据聚类的方法,主要包括如下步骤:
步骤S301:对样本数据中的多项数据分别进行格式化处理,对应得到包括至少一个属性数据的数据对象,其中,所述属性数据为向量属性数据、数值属性数据或者分类属性数据。每个样本数据中包括至少一项数据,多个样本数据构成样本数据集;每个数据对象中包括至少一个属性数据,多个数据对象构成混合属性数据集。将样本数据中的预设字段的文本数据转换为向量,以得到向量属性数据。实施例中通过word2vec(word to vector,文本向量化)工具将预设字段的文本数据转换为向量。假设样本数据集中有1000个样本数据,每个样本数据有6个字段(即6项数据),分别为产品名称、重量、长、宽、高和是否为规则产品,则样本数据集的其中一个样本数据的具体构成如表1所示。其中,重量的单位为千克(Kg),长、宽和高的单位均为厘米(cm)。
表1为实施例的一个样本数据的具体构成
通过word2vec工具,将样本数据中“产品名称”字段的对应内容转换为向量;将“是否为规则产品”字段中的“是”设置为1,“否”设置为0,最终得到如表2所示的数据对象。
表2为实施例的一个数据对象
实施例中,“0.01”、“0.03”“0.04”“0.05”“0.06”和“0.07”即为向量属性数据,“10”、“60”、“30”和“80”即为数值属性数据,“1”即为分类属性数据。
步骤S302:根据信息熵公式,分别计算所述向量属性数据构成的向量属性数据集的权重,所述数值属性数据构成的数值属性数据集的权重以及所述分类属性数据构成的分类属性数据集的权重。设x为随机变量,X为x的所有可能的取值构成的集合,p(x)表示x可能取值的概率,则x的信息熵E(x)为:
假设数据对象X={x1,x2,…,xm},m为属性数据的个数,C1={x1,x2,…,xi},C2={xi+1,xi+2,…,xi+j}均为向量属性数据集,C3={xi+j+1,xi+j+2,…,xi+j+r}为数值属性数据集,{xi+j+r+1}、{xi+j+r+2}、…、{xm}分别为分类属性数据集,则数据对象X还可以表示为其中,l为数据对象中包括的各种属性类型的属性数据集的总数量,C1、C2、…、Cl分别代表一种属性类型的属性数据集。比如,假设数据对象有80个属性数据,第1-20个属性数据构成第一个向量属性数据集,第21-40个属性数据构成第二个向量属性数据集,第41-60个属性数据构成数值属性数据集,第61-80个属性数据构成20个分类属性数据集,则最终可以得到23个属性数据集,亦可知l=23。
实施例中,将数据对象划分为两个向量属性数据集,该划分仅为方便说明,实际工程应用中具体划分为几个向量属性数据集,需根据样本数据集的预设字段确定。也就是说,如果样本数据集中有Q个字段的文本数据需要转换为向量,则需将数据对象对应划分为Q个向量属性数据集。
由上述信息熵公式可知,的信息熵/>为:
则数据对象X去除属性数据集Ct后的信息增益量Δ(Ct)为:
信息增益量Δ(Ct)越大,说明把属性数据集Ct从数据对象X中去除后,能够使得数据对象X的混乱或者不确定性减少的越多。实施例中,属性数据集Ct的权重即为信息增益量Δ(Ct)。
步骤S303:根据所述数据对象之间的相异度,定义目标函数。该目标函数用于最小化每个数据对象到其聚类质心点的相异度之和。所述目标函数可以用如下公式表示:
式中,F(X,V)为目标函数,X为数据对象,V为簇;num为混合属性数据集中数据对象的个数;k为簇的数量,具体数值由用户自定义;dist(Xu,Vv)为数据对象Xu到簇Vv的聚类质心点的相异度;μuv为0或者1,当μuv为1时,表示数据对象Xu在簇Vv中;当μuv为0时,表示数据对象Xu不在簇Vv中。
步骤S304:从混合属性数据集中选择与预先设定的聚类数相同的数据对象作为对应簇的聚类质心点。其中,所述混合属性数据集中包括多个数据对象,随机从混合属性数据集中选择出k个数据对象,并分别作为k个簇的聚类质心点。
步骤S305:计算待聚类数据对象与所述聚类质心点的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度。其中,所述待聚类数据对象为所述混合属性数据集中被选择为聚类质心点的数据对象之外的数据对象。该步骤的实现原理为:(1)把待聚类数据对象与聚类质心点中的向量属性数据集分别进行归一化处理,以计算两者的余弦相似度,之后转化为对应的欧式距离;(2)把待聚类数据对象与聚类质心点中的数值属性数据集依次进行标准化和归一化处理,以计算两者的欧式距离;(3)把分类属性数据集的距离定义为0和2两个取值范围内;(4)将上述距离乘以各自的权重并求和,以得到待聚类数据对象与聚类质心点的相异度。(1)-(3)的处理过程用于把向量属性数据集、数值属性数据集和分类属性数据集统一到同一度量上。确定待聚类数据对象与聚类质心点的相异度的具体实现过程见后续描述。
步骤S306:将所述待聚类数据对象聚类到最小相异度的聚类质心点对应的簇中。计算出当前待聚类数据对象与每个聚类质心点的相异度后,找出与当前待聚类数据对象的相异度最小的聚类质心点,将该当前待聚类数据对象归属到相异度最小的聚类质心点对应的簇中。按照上述处理过程,将每个待聚类数据对象归类到相异度最小的聚类质心点对应的簇中后,执行步骤S307。
步骤S307:根据步骤S306的聚类结果计算所述目标函数的值,更新所述簇的聚类质心点。计算每个簇中所有数据对象的向量属性数据的平均值、每个簇中所有数据对象的数值属性数据的平均值以及每个簇中所有数据对象的分类属性数据的出现概率。比如,当前簇中有100个数据对象,其中分类属性数据的取值有1和0,1出现的次数为80次,0出现的次数为20次,则1的出现概率为80%,0的出现概率为20%。之后,将聚类质心点的向量属性数据设置为所有数据对象的向量属性数据的平均值,将聚类质心点的数值属性数据设置为所有数据对象的数值属性数据的平均值,将聚类质心点的分类属性数据设置为出现概率的最高值,至此得到更新后的聚类质心点。实施例中将1作为更新后的聚类质心点的分类属性数据的取值。
步骤S308:计算所述待聚类数据对象与更新后的聚类质心点的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与更新后的聚类质心点的相异度。根据数据对象之间的相异度的计算公式,确定所述待聚类数据对象与更新后的聚类质心点的相异度。该步骤的具体实现过程与步骤S305相同。
步骤S309:将所述待聚类数据对象聚类到最小相异度的更新后的聚类质心点对应的簇中。计算出当前待聚类数据对象与每个更新后的聚类质心点的相异度后,找出与当前待聚类数据对象的相异度最小的更新后的聚类质心点,将该当前待聚类数据对象归属到相异度最小的更新后的聚类质心点对应的簇中。
步骤S310:根据步骤S309的聚类结果计算所述目标函数的值,更新所述簇的聚类质心点。该步骤中聚类质心点的更新过程与步骤S307相同。
步骤S311:循环执行步骤S308至步骤S310,直到满足预设停止条件。所述停止条件用于判断聚类算法是否收敛,可以为诸如下述任意一种:相邻两次循环中每个簇的聚类质心点不变或者改变的幅度小于预设第一阈值;循环迭代次数满足预设迭代次数;相邻两次循环中目标函数的值不变或者改变的幅度小于预设第二阈值。比如,预设迭代次数为1000次,当重复执行步骤S308至步骤S310的次数达到1000次时,结束本流程。经过步骤S301至步骤S311的处理就能将混合属性数据集中的数据对象分配到k个簇中。
下面对如何确定两个数据对象之间的相异度进行详细说明。
令数据对象Xa={xa1,xa2,…,xam},Xb={xb1,xb2,…,xbm},且m=i+j+r+p,i和j分别表示一个向量属性数据集的维度个数,r表示数值属性数据的个数,p表示分类属性数据的个数。实施例中数据对象Xa和数据对象Xb可以如表3所示,该实施例中包括两个向量属性数据集,四个数值属性数据(所有的数值属性数据构成数值属性数据集)和一个分类属性数据(即分类属性数据集),第一个向量属性数据集的维度为4,第二个向量属性数据集的维度为2,即i=4,j=2,r=4,p=1。
表3为实施例的数据对象Xa和数据对象Xb
Xa |
[0.01,0.03,0.04,0.05] |
[0.06,0.07] |
10 |
60 |
30 |
80 |
1 |
Xb |
[0.01,0.03,0.04,0.03] |
[0.02,0.07] |
5 |
54 |
37 |
90 |
1 |
图4为本发明实施例的确定两个数据对象之间的相异度的流程图。如图4所示,本发明实施例的确定两个数据对象之间的相异度,主要包括以下步骤:
步骤S401:对所述数据对象的每个向量属性数据集中的向量属性数据分别进行归一化处理。为方便说明,实施例中以数据对象包括两个向量属性数据集为例进行说明。首先对第一个向量属性数据集的向量属性数据分别进行归一化处理,公式如下:
式中,εae为归一化处理结果,e=1,2,…,i。
之后,对第二个向量属性数据集的向量属性数据分别进行归一化处理,公式如下:
式中,εaf为归一化处理结果,f=i+1,i+2,…,i+j。
步骤S402:对所述数据对象的数值属性数据集中的数值属性数据分别依次进行标准化处理和归一化处理。对数值属性数据集中的数值属性数据分别进行标准化处理的计算公式如下:
式中,zag为标准化处理结果,g=i+j+1,i+j+2,…,i+j+r,为数值属性数据的平均值,s为数值属性数据的标准差。
对标准化后的数值属性数据分别进行归一化处理的计算公式如下:
式中,εag为归一化处理结果。
步骤S403:根据预先定义的距离度量规则,计算混合属性数据集中的两个所述数据对象的同一分类属性数据之间的距离。所述距离度量规则中规定了两个数据对象的同一字段的取值相同时的距离,以及取值不同时的距离,具体公式如下:
式中,d(xah,xbh)为两个数据对象的分类属性数据xah和xbh之间的距离,h=i+j+r+1,i+j+r+2,…,i+j+r+p。
比如,以数据对象的“是否为规则产品”字段为例,如果两个数据对象的该字段都是规则产品,那么这两个字段对应的分类属性数据的距离d就是0;如果一个数据对象的该字段是规则产品,另一个数据对象的该字段不是规则产品,则这两个字段对应的分类属性数据的距离d就是2。再比如,一个字段有高、中和低三个取值,只有两个数据对象中该字段的取值均为高,或者均为中,或者均为低时,这两个字段对应的分类属性数据的距离d才为0,否则这两个字段对应的分类属性数据的距离d就是2。
步骤S404:确定两个所述数据对象之间的相异度。计算相异度过程中,需首先确定不同属性类型的属性数据集的距离。对于向量属性数据集需先计算归一化后的向量属性数据集的相似度,再将相似度转换为距离。相似度的计算方式有多种,比如余弦相似度、皮尔逊相关系数、曼哈顿距离等。实施例中所述相似度为余弦相似度,所述距离为欧式距离。数据对象之间的相异度的计算公式为:
式中,dist(Xa,Xb)为数据对象Xa和数据对象Xb之间的相异度,为第一个向量属性数据集的权重,/>为第二个向量属性数据集的权重,/>为数值属性数据集的权重,/>为第t′个属性数据集(即分类属性数据集)的权重,/>为归一化后的Xa的第一向量属性数据集和Xb的第一向量属性数据集之间的余弦相似度,/>为归一化后的Xa的第二向量属性数据集和Xb的第二向量属性数据集之间的余弦相似度,/>为Xa的第一向量属性数据集和Xb的第一向量属性数据集之间的欧式距离,/>为Xa的第二向量属性数据集和Xb的第二向量属性数据集之间的欧式距离,euc为归一化后的Xa的数值属性数据集和Xb的数值属性数据集之间的欧式距离,d(Xa,Xb)t′为Xa的第t′个属性数据集(即分类属性数据集)和Xb的第t′个属性数据集(即分类属性数据集)之间的距离。
实施例中,即为归一化后的向量[0.01,0.03,0.04,0.05]与向量[0.01,0.03,0.04,0.03]之间的余弦相似度,/>即为归一化后的向量[0.06,0.07]与向量[0.02,0.07]之间的余弦相似度。
令向量A=(A1,A2,…,An),向量B=(B1,B2,…,Bn),则向量A和向量B之间的余弦相似度cosθ的计算公式为:
令向量Y=(Y1,Y2,…,Yn),向量Z=(Z1,Z2,…,Zn),则向量Y和向量B之间的欧式距离euc(Y,Z)的计算公式为:
通过本发明实施例的混合属性数据聚类的方法可以看出,通过为不同属性类型的属性数据集赋予权重,并计算相同属性类型的属性数据集的距离,以基于权重和距离确定两个数据对象的相异度,进而实现了对包括向量属性的混合属性数据的聚类;结合不同聚类的簇中属性数据集的信息熵的变化,为不同属性类型的属性数据集赋予权重,能够充分体现数据对象间的差异性;将混合属性数据的聚类问题拆分为不同属性类型的属性数据集合之间的距离度量,以将不同属性类型的属性数据集统一到同一度量上,再结合权重对距离进行加权得到数据对象之间的相异度;更新聚类质心点,循环迭代进行聚类,以优化聚类结果;定义目标函数,在每次得到聚类结果后计算目标函数的值,以判断聚类算法是否收敛。
图5是根据本发明实施例的混合属性数据聚类的装置的主要模块的示意图。如图5所示,本发明实施例的混合属性数据聚类的装置500,主要包括:
计算模块501,用于根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重,其中,所述属性数据集包括向量属性数据集。所述混合属性数据集中包括多个数据对象,所述数据对象中包括多个属性类型的属性数据,同一属性类型的属性数据构成对应的属性数据集。所述属性类型包括向量属性、数值属性和分类属性,相应的本文将属性类型为向量属性的属性数据构成的集合称作向量属性数据集,将属性类型为数值属性的属性数据构成的集合称作数值属性数据集,将属性类型为分类属性的属性数据构成的集合称作分类属性数据集。实施例中,所述数据对象中可能仅包括向量属性数据和数值属性数据,也可能仅包括向量属性数据和分类属性数据,也可能包括向量属性数据、数值属性数据和分类属性数据。该模块首先分别计算混合属性数据集的数据对象中所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵;之后计算所述数据对象的信息熵,将所述数据对象的信息熵分别与所述向量属性数据集的信息熵、所述数值属性数据集和/或所述分类属性数据集的信息熵作差,以得到对应属性数据集的权重。
选择模块502,用于根据预先设定的聚类数,从所述混合属性数据集中选择相应数量的数据对象作为聚类质心点。随机从混合属性数据集中选择与预先设定的聚类数相同的数据对象,将选择出的数据对象作为对应簇的聚类质心点。比如聚类数为k,则随机从混合属性数据集中选择出k个数据对象,并分别作为k个簇的聚类质心点。
确定模块503,用于计算待聚类数据对象与所述聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度。分别计算待聚类数据对象与所述聚类质心点中的向量属性数据集、数值属性数据集和分类属性数据集的距离,将所述距离乘以对应属性类型的属性数据集的权重并求和,以得到待聚类数据对象与聚类质心点的相异度。计算向量属性数据集的距离时,需先进行归一化处理,之后计算相似度再转化成距离。计算数值属性数据集的距离时,需先进行标准化处理,之后进行归一化处理,结合欧式距离公式得到对应的距。计算分类属性数据集的距离时,需根据预先定义的距离度量规则确定分类属性数据集的距离。
聚类模块504,用于将所述待聚类数据对象聚类到最小相异度的聚类质心点所对应的簇中。计算出所述待聚类数据对象与每个聚类质心点的相异度后,找出与所述待聚类数据对象的相异度最小的聚类质心点,将所述待聚类数据对象归属到相异度最小的聚类质心点对应的簇中。之后,还需更新聚类质心点,并进行多次循环迭代以重新确定相异度和重新聚类,优化聚类结果。
另外,本发明实施例的混合属性数据聚类的装置500还可以包括:循环处理模块和定义计算模块(图5中未示出)。其中,所述循环处理模块,用于更新聚类质心点:更新所述簇的聚类质心点;重新确定相异度:计算所述待聚类数据对象与更新后的聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与更新后的聚类质心点的相异度;重新聚类:将所述待聚类数据对象聚类到最小相异度的更新后的聚类质心点所对应的簇中;以及循环执行所述更新聚类质心点、重新确定相异度和重新聚类的步骤,直到满足预设停止条件。所述定义计算模块,用于根据所述数据对象之间的相异度,定义目标函数;以及根据聚类结果计算所述目标函数的值。
从以上描述可以看出,通过为不同属性类型的属性数据集赋予权重,并计算相同属性类型的属性数据集的距离,以基于权重和距离确定两个数据对象的相异度,进而实现了对包括向量属性的混合属性数据的聚类;结合不同聚类的簇中属性数据集的信息熵的变化,为不同属性类型的属性数据集赋予权重,能够充分体现数据对象间的差异性;将混合属性数据的聚类问题拆分为不同属性类型的属性数据集合之间的距离度量,以将不同属性类型的属性数据集统一到同一度量上,再结合权重对距离进行加权得到数据对象之间的相异度;更新聚类质心点,循环迭代进行聚类,以优化聚类结果;定义目标函数,在每次得到聚类结果后计算目标函数的值,以判断聚类算法是否收敛。
图6示出了可以应用本发明实施例的混合属性数据聚类的方法或混合属性数据聚类的装置的示例性系统架构600。
如图6所示,系统架构600可以包括终端设备601、602、603,网络604和服务器605。网络604用以在终端设备601、602、603和服务器605之间提供通信链路的介质。网络604可以包括各种连接类型,例如有线、无线通信链路或者光纤电缆等等。
用户可以使用终端设备601、602、603通过网络604与服务器605交互,以接收或发送消息等。终端设备601、602、603上可以安装有各种通讯客户端应用,例如购物类应用、网页浏览器应用、搜索类应用、即时通信工具、邮箱客户端、社交平台软件等。
终端设备601、602、603可以是具有显示屏并且支持网页浏览的各种电子设备,包括但不限于智能手机、平板电脑、膝上型便携计算机和台式计算机等等。
服务器605可以是提供各种服务的服务器,例如对用户利用终端设备601、602、603所生成的混合属性数据集提供支持的后台管理服务器。后台管理服务器可以对接收到混合属性数据集进行分析、聚类等处理,并将聚类结果返回至终端设备。
需要说明的是,本申请实施例所提供的混合属性数据聚类的方法一般由服务器605执行,相应地,混合属性数据聚类的装置一般设置于服务器605中。
应该理解,图6中的终端设备、网络和服务器的数目仅仅是示意性的。根据实现需要,可以具有任意数目的终端设备、网络和服务器。
根据本发明的实施例,本发明还提供了一种电子设备和一种计算机可读介质。
本发明的电子设备包括:一个或多个处理器;存储装置,用于存储一个或多个程序,当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现本发明实施例的一种混合属性数据聚类的方法。
本发明的计算机可读介质,其上存储有计算机程序,所述程序被处理器执行时实现本发明实施例的一种混合属性数据聚类的方法。
下面参考图7,其示出了适用于来实现本发明实施例的电子设备的计算机系统700的结构示意图。图7示出的电子设备仅仅是一个示例,不应对本发明实施例的功能和使用范围带来任何限制。
如图7所示,计算机系统700包括中央处理单元(CPU)701,其可以根据存储在只读存储器(ROM)702中的程序或者从存储部分708加载到随机访问存储器(RAM)703中的程序而执行各种适当的动作和处理。在RAM 703中,还存储有计算机系统700操作所需的各种程序和数据。CPU 701、ROM 702以及RAM 703通过总线704彼此相连。输入/输出(I/O)接口705也连接至总线704。
以下部件连接至I/O接口705:包括键盘、鼠标等的输入部分706;包括诸如阴极射线管(CRT)、液晶显示器(LCD)等以及扬声器等的输出部分707;包括硬盘等的存储部分708;以及包括诸如LAN卡、调制解调器等的网络接口卡的通信部分709。通信部分709经由诸如因特网的网络执行通信处理。驱动器710也根据需要连接至I/O接口705。可拆卸介质711,诸如磁盘、光盘、磁光盘、半导体存储器等等,根据需要安装在驱动器710上,以便于从其上读出的计算机程序根据需要被安装入存储部分708。
特别地,根据本发明公开的实施例,上文主要步骤图描述的过程可以被实现为计算机软件程序。例如,本公开的实施例包括一种计算机程序产品,其包括承载在计算机可读介质上的计算机程序,该计算机程序包含用于执行主要步骤图所示的方法的程序代码。在这样的实施例中,该计算机程序可以通过通信部分709从网络上被下载和安装,和/或从可拆卸介质711被安装。在该计算机程序被中央处理单元(CPU)701执行时,执行本发明的系统中限定的上述功能。
需要说明的是,本发明所示的计算机可读介质可以是计算机可读信号介质或者计算机可读存储介质或者是上述两者的任意组合。计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、装置或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本发明中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、装置或者器件使用或者与其结合使用。而在本发明中,计算机可读的信号介质可以包括在基带中或者作为载波一部分传播的数据信号,其中承载了计算机可读的程序代码。这种传播的数据信号可以采用多种形式,包括但不限于电磁信号、光信号或上述的任意合适的组合。计算机可读的信号介质还可以是计算机可读存储介质以外的任何计算机可读介质,该计算机可读介质可以发送、传播或者传输用于由指令执行系统、装置或者器件使用或者与其结合使用的程序。计算机可读介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:无线、电线、光缆、RF等等,或者上述的任意合适的组合。
附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,上述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图或流程图中的每个方框、以及框图或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。
描述于本发明实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。所描述的模块也可以设置在处理器中,例如,可以描述为:一种处理器包括计算模块、选择模块、确定模块和聚类模块。其中,这些模块的名称在某种情况下并不构成对该模块本身的限定,例如,计算模块还可以被描述为“根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重的模块”。
作为另一方面,本发明还提供了一种计算机可读介质,该计算机可读介质可以是上述实施例中描述的设备中所包含的;也可以是单独存在,而未装配入该设备中。上述计算机可读介质承载有一个或者多个程序,当上述一个或者多个程序被一个该设备执行时,使得该设备包括:根据信息熵公式,分别计算混合属性数据集的数据对象中多个属性数据集的权重,其中,所述属性数据集包括向量属性数据集;根据预先设定的聚类数,从所述混合属性数据集中选择相应数量的数据对象作为聚类质心点;计算待聚类数据对象与所述聚类质心点中相同属性类型的属性数据集的距离,以根据所述距离和所述权重,确定所述待聚类数据对象与所述聚类质心点的相异度;将所述待聚类数据对象聚类到最小相异度的聚类质心点所对应的簇中。
从以上描述可以看出,通过为不同属性类型的属性数据集赋予权重,并计算相同属性类型的属性数据集的距离,以基于权重和距离确定两个数据对象的相异度,进而实现了对包括向量属性的混合属性数据的聚类;结合不同聚类的簇中属性数据集的信息熵的变化,为不同属性类型的属性数据集赋予权重,能够充分体现数据对象间的差异性;将混合属性数据的聚类问题拆分为不同属性类型的属性数据集合之间的距离度量,以将不同属性类型的属性数据集统一到同一度量上,再结合权重对距离进行加权得到数据对象之间的相异度;更新聚类质心点,循环迭代进行聚类,以优化聚类结果;定义目标函数,在每次得到聚类结果后计算目标函数的值,以判断聚类算法是否收敛。
上述产品可执行本发明实施例所提供的方法,具备执行方法相应的功能模块和有益效果。未在本实施例中详尽描述的技术细节,可参见本发明实施例所提供的方法。
上述具体实施方式,并不构成对本发明保护范围的限制。本领域技术人员应该明白的是,取决于设计要求和其他因素,可以发生各种各样的修改、组合、子组合和替代。任何在本发明的精神和原则之内所作的修改、等同替换和改进等,均应包含在本发明保护范围之内。