聚類方法及相關裝置制造方法
【專利摘要】本公開實施例公開了一種聚類方法及相關裝置,所述聚類方法在利用類間的Rank-Order距離對符合條件的類進行合并,從而減少類的數(shù)量;然后,利用類內(nèi)各個對象之間的距離計算類內(nèi)聚合度,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象拆分成新的類,直到所有的類都拆分完。然后,將拆分后的類重新進行迭代合并和拆分,直到各個類無法再拆分,確定出包含多個對象的聚類及包含單個對象的類,從而實現(xiàn)將聚類過程中相異性比較大的對象剔除掉,提高聚類結(jié)果的準確率。尤其,當數(shù)據(jù)集中的對象比較多,但屬于同一類的對象比較少時,聚類結(jié)果的準確率比較高。
【專利說明】聚類方法及相關裝置
【技術領域】
[0001]本公開涉及計算機【技術領域】,特別是涉及一種聚類方法及相關裝置。
【背景技術】
[0002]聚類是將物理或抽象對象的集合分成由類似的對象組成的多個類的過程,即將對象分類到不同的類(簇)的過程,同一個類中的對象有很大的相似性,不同類間的對象有很大的相異性。下文使用“類”的概念,需要說明的是,本文中“類”與“簇”的含義相同。
[0003]例如,聚類方法用于人臉圖片的分類時,將屬于同一個人的圖片分為一類,相關的聚類方法采用Rank-Order距離度量兩張人臉之間的相似性,能夠?qū)⑼粋€人的圖片聚集在一起。但是,當一推圖片中包含的人臉數(shù)量比較多,且每個人的圖片比較少時,此種聚類方法的聚類結(jié)果準確率非常低。
【發(fā)明內(nèi)容】
[0004]為克服相關技術中存在的問題,本公開提供一種聚類方法及相關裝置,以提高聚類結(jié)果準確率。
[0005]為了解決上述技術問題,本公開實施例公開了如下技術方案:
[0006]根據(jù)本公開實施例的第一方面,提供一種聚類方法,包括:
[0007]根據(jù)類間的Rank-Order距離,進行類的迭代合并;利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度;針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新的類,并更新類的數(shù)量;當更新后的類的數(shù)量比更新前的類的數(shù)量少時,返回執(zhí)行根據(jù)類間的Rank-Order距離進行類的迭代合并的步驟,直到更新前后的類的數(shù)量不變時,得到聚類結(jié)果,所述聚類結(jié)果包括包含多個對象的類和包含單個對象的類。
[0008]結(jié)合第一方面,在第一方面的第一種可能的實現(xiàn)方式中,所述利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度,采用如下方式:
[0009]獲取類內(nèi)各個對象間的距離;根據(jù)所述類內(nèi)對象間的距離,計算所述類內(nèi)的各個對象間距離的距離平均值,得到所述類的類內(nèi)聚合度。
[0010]結(jié)合第一方面,在第一方面的第二種可能的實現(xiàn)方式中,所述利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度,采用如下方式:
[0011]獲取類內(nèi)各個對象間的距離;根據(jù)所述類內(nèi)對象間的距離,計算所述類內(nèi)的各個對象間距離的距離平均值;將所述距離平均值進行歸一化,得到所述類的類內(nèi)聚合度。
[0012]結(jié)合第一方面的第一種實現(xiàn)方式或第一方面的第二種實現(xiàn)方式,在第一方面的第三種實現(xiàn)方式中,所述針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新類,更新類的數(shù)量,采用如下方式:
[0013]將所述類內(nèi)對象間的距離小于所述類內(nèi)聚合度對象進行連通標記;根據(jù)所述連通標記確定所述類內(nèi)的連通分量;根據(jù)所述連通分量將所述類拆分成新類,并更新類的數(shù)量。[0014]結(jié)合第一方面,在第一方面的第四種可能的實現(xiàn)方式中,所述根據(jù)類間的Rank-Order距離,進行類的迭代合并,采用如下方式:
[0015]獲取類間Rank-Order距離,以及獲取類間Rank-Order歸一化距離;當類間的Rank-Order距離小于距離閾值,且所述類間的Rank-Order歸一化距離小于I時,合并所述類;當合并后的類的數(shù)量小于合并前的類的數(shù)量時,執(zhí)行獲取合并后的類間Rank-Order距離,以及類間Rank-Order歸一化距離的步驟。
[0016]根據(jù)本公開實施例的第二方面,提供一種聚類裝置,包括:
[0017]迭代合并單元,用于根據(jù)類間的Rank-Order距離,進行類的迭代合并;獲取單元,用于利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度;劃分單元,用于針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新的類,并更新類的數(shù)量;判斷單元,用于當更新后的類的數(shù)量比更新前的類的數(shù)量少時,控制所述迭代合并單元執(zhí)行根據(jù)類間的Rank-Order距離進行類的迭代合并,直到更新前后的類的數(shù)量不變時,得到聚類結(jié)果,所述聚類結(jié)果包括包含多個對象的類和包含單個對象的類。
[0018]結(jié)合第二方面,在第二方面的第一種可能的實現(xiàn)方式中,所述獲取單元包括:
[0019]第一獲取子單元,用于獲取類內(nèi)各個對象間的距離;第一計算子單元,用于計算所述類的各個對象間的距離的平均值,得到所述類內(nèi)聚合度。
[0020]結(jié)合第二方面,在第二方面的第二種可能的實現(xiàn)方式中,所述獲取單元包括:
[0021]第二獲取子單元,用于獲取類內(nèi)各個對象間的距離;第二計算子單元,用于根據(jù)所述類內(nèi)對象間的距離,計算所述類內(nèi)的各個對象間距離的距離平均值;歸一化子單元,將所述距離平均值進行歸一化,得到所述類的類內(nèi)聚合度。
[0022]結(jié)合第二方面的第一種可能的實現(xiàn)方式或第二方面的第二種可能的實現(xiàn)方式,在第二方面的第三種可能的實現(xiàn)方式中,所述劃分單元包括:
[0023]第一判斷子單元,用于判斷所述類內(nèi)對象間的距離是否小于所述類內(nèi)聚合度;標記子單元,用于當所述類內(nèi)對象間的距離小于所述類內(nèi)聚合度時,將所述類內(nèi)對象間的距離對應的對象進行連通標記;確定子單元,用于根據(jù)所述連通標記確定所述類內(nèi)的連通分量;拆分子單元,用于根據(jù)所述連通分量將所述類拆分成新類,并更新類的數(shù)量。
[0024]結(jié)合第二方面,在第二方面的第四種可能的實現(xiàn)方式中,所述迭代合并單元包括:
[0025]第三獲取子單元,用于獲取類間Rank-Order距離,以及獲取類間Rank-Order歸一化距離;合并子單元,用于當類間的Rank-Order距離小于距離閾值,且所述類間Rank-Order歸一化距離小于I時,合并所述類;第二判斷子單元,用于當合并后的類的數(shù)量小于合并前的類的數(shù)量時,控制所述第三獲取子單元執(zhí)行獲取更新后的類間Rank-Order距離,以及類間Rank-Order歸一化距離的步驟。
[0026]根據(jù)本公開實施例的第二方面,提供一種終端設備,包括:
[0027]處理器;用于存儲處理器可執(zhí)行指令的存儲器;
[0028]其中,所述處理器被配置為:
[0029]根據(jù)類間的Rank-Order距離,進行類的迭代合并;利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度;針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的內(nèi)對象劃分成一個新的類,并更新類的數(shù)量;當更新后的類的數(shù)量比更新前的類的數(shù)量少時,返回執(zhí)行根據(jù)類間的Rank-Order距離進行類的迭代合并的步驟,直到更新前后的類的數(shù)量不變時,得到聚類結(jié)果,所述聚類結(jié)果包括包含多個對象的類和包含單個對象的類。
[0030]本公開的實施例提供的技術方案可以包括以下有益效果:所述聚類方法在利用類間的Rank-Order距離對符合條件的類進行合并,從而減少類的數(shù)量;然后,利用類內(nèi)各個對象之間的距離計算類內(nèi)聚合度,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象拆分成新的類,直到所有的類都拆分完。然后,將拆分后的類重新進行迭代合并和拆分,直到各個類無法再拆分,確定出包含多個對象的聚類及包含單個對象的類,從而實現(xiàn)將聚類過程中相異性比較大的對象剔除掉,提高聚類結(jié)果的準確率。尤其,當數(shù)據(jù)集中的對象比較多,但屬于同一類的對象比較少時,聚類結(jié)果的準確率比較高。
[0031]應當理解的是,以上的一般描述和后文的細節(jié)描述僅是示例性的,并不能限制本公開。
【專利附圖】
【附圖說明】[0032]此處的附圖被并入說明書中并構(gòu)成本說明書的一部分,示出了符合本發(fā)明的實施例,并與說明書一起用于解釋本發(fā)明的原理。
[0033]圖1是多個對象的序列排序示意圖;
[0034]圖2根據(jù)一示例性實施例示出的一種聚類方法的流程圖;
[0035]圖3是圖2中步驟SllO的一種示例性實施例的流程圖;
[0036]圖4是圖2中步驟SllO的另一種示例性實施例的流程圖;
[0037]圖5是圖2中步驟S120的一種示例性實施例的流程圖;
[0038]圖6是圖2中步驟S130的一種示例性實施例的流程圖;
[0039]圖7是是根據(jù)一示例性實施例示出的一種聚類裝置的框圖;
[0040]圖8是根據(jù)一示例性實施例示出的一種終端設備的框圖;
[0041]圖9是根據(jù)一示例性實施例示出的一種服務器的框圖。
[0042]通過上述附圖,已示出本公開明確的實施例,后文中將有更詳細的描述。這些附圖并不是為了通過任何方式限制本公開構(gòu)思的范圍,而是通過參考特定實施例為本領域技術人員說明本公開的概念。
【具體實施方式】
[0043]這里將詳細地對示例性實施例進行說明,其示例表示在附圖中。下面的描述涉及附圖時,除非另有表示,不同附圖中的相同數(shù)字表示相同或相似的要素。以下示例性實施例中所描述的實施方式并不代表與本發(fā)明相一致的所有實施方式。相反,它們僅是與如所附權利要求書中所詳述的、本發(fā)明的一些方面相一致的裝置和方法的例子。
[0044]在對本公開的示例性實施例進行說明之前,首先介紹Rank-Order距離的相關知識,計算對象間的距離(例如,余弦相似度、歐式距離等),按照距離的大小將各個對象進行重新排序,得到一個序列。假設有η個對象,分別為ip i2、i3、i4、i5、i6……in,以對象I1為基準對象,計算其它各個對象與對象I1之間的距離,并按距離的大小進行排序,得到圖1所示的序列O1 ;以對象i2為基準對象,計算其它各個對象與基準對象i2之間的距離,得到圖1所示的序列O2。
[0045]根據(jù)序列O1中對象I1和i2之間的鄰居對象在序列O2中的序號計算,對象I1和i2之間的非對稱Rank-Order距離D Ci1, “),具體根據(jù)圖1的示例,對象ii> i3、i4、i2在O2中的序號分別為5、2、4、0,則根據(jù)公式I計算D Ci1, i2):
[0046]
【權利要求】
1.一種聚類方法,其特征在于,包括: 根據(jù)類間的Rank-Order距離,進行類的迭代合并; 利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度; 針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新的類,并更新類的數(shù)量; 當更新后的類的數(shù)量比更新前的類的數(shù)量少時,返回執(zhí)行根據(jù)類間的Rank-Order距離進行類的迭代合并的步驟,直到更新前后的類的數(shù)量不變時,得到聚類結(jié)果,所述聚類結(jié)果包括包含多個對象的類和包含單個對象的類。
2.根據(jù)權利要求1所述的方法,其特征在于,所述利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度,采用如下方式: 獲取類內(nèi)各個對象間的距離; 根據(jù)所述類內(nèi)對象間的距離計算所述類內(nèi)的各個對象間距離的距離平均值,得到所述類的類內(nèi)聚合度。
3.根據(jù)權利要求1所述的方法,其特征在于,所述利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度,采用如下方式: 獲取類內(nèi)各個對象間的距離; 根據(jù)所述類內(nèi)對象間的距離計算所述類內(nèi)的各個對象間距離的距離平均值; 將所述距離平均值進行歸一化,得到所述類的類內(nèi)聚合度。
4.根據(jù)權利要求2或3所述的方法,其特征在于,所述針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新類,更新類的數(shù)量,采用如下方式: 將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象進行連通標記; 根據(jù)所述連通標記確定所述類內(nèi)的連通分量; 根據(jù)所述連通分量將所述類拆分成新類,并更新類的數(shù)量。
5.根據(jù)權利要求1所述的方法,其特征在于,所述根據(jù)類間的Rank-Order距離,進行類的迭代合并,采用如下方式: 獲取類間Rank-Order距離,以及獲取類間Rank-Order歸一化距離; 當類間的Rank-Order距離小于距離閾值,且所述類間的Rank-Order歸一化距離小于I時,合并所述類。
6.一種聚類裝置,其特征在于,包括: 迭代合并單元,用于根據(jù)類間的Rank-Order距離,進行類的迭代合并; 獲取單元,用于利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度;劃分單元,用于針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新的類,并更新類的數(shù)量; 判斷單元,用于當更新后的類的數(shù)量比更新前的類的數(shù)量少時,控制所述迭代合并單元執(zhí)行根據(jù)類間的Rank-Order距離進行類的迭代合并,直到更新前后的類的數(shù)量不變時,得到聚類結(jié)果,所述聚類結(jié)果包括包含多個對象的類和包含單個對象的類。
7.根據(jù)權利要求6所述的裝置,其特征在于,所述獲取單元包括: 第一獲取子單元,用于獲取類內(nèi)各個對象間的距離;第一計算子單元,用于計算所述類的各個對象間的距離的距離平均值,得到所述類內(nèi)聚合度。
8.根據(jù)權利要求6所述的裝置,其特征在于,所述獲取單元包括: 第二獲取子單元,用于獲取類內(nèi)各個對象間的距離; 第二計算子單元,用于根據(jù)所述類內(nèi)對象間的距離,計算所述類內(nèi)的各個對象間距離的距離平均值; 歸一化子單元,將所述距離平均值進行歸一化,得到所述類的類內(nèi)聚合度。
9.根據(jù)權利要求7或8所述的裝置,其特征在于,所述劃分單元包括: 第一判斷子單元,用于判斷所述類內(nèi)對象間的距離是否小于所述類內(nèi)聚合度; 標記子單元,用于當所述類內(nèi)對象間的距離小于所述類內(nèi)聚合度時,將所述類內(nèi)對象間的距離對應的對象進行連通標記; 確定子單元,用于根據(jù)所述連通標記確定所述類內(nèi)的連通分量; 拆分子單元,用于根據(jù)所述連通分量將所述類拆分成新類,并更新類的數(shù)量。
10.根據(jù)權利要求6所述的裝置,其特征在于,所述迭代合并單元包括: 第三獲取子單元,用于獲取類間Rank-Order距離,以及獲取類間Rank-Order歸一化距離; 合并子單元,用于當類間的Rank-Order距離小于距離閾值,且所述類間Rank-Order歸一化距離小于I時,合并所述類。
11.一種終端設備,其特征在于,包括: 處理器; 用于存儲處理器可執(zhí)行指令的存儲器; 其中,所述處理器被配置為: 根據(jù)類間的Rank-Order距離,進行類的迭代合并; 利用類內(nèi)各個對象間的距離獲得迭代合并后的類對應的類內(nèi)聚合度; 針對迭代合并得到的每個類,將類內(nèi)對象間的距離小于所述類內(nèi)聚合度的對象劃分成一個新的類,并更新類的數(shù)量; 當更新后的類的數(shù)量比更新前的類的數(shù)量少時,返回執(zhí)行根據(jù)類間的Rank-Order距離進行類的迭代合并的步驟,直到更新前后的類的數(shù)量不變; 當更新前后的類的數(shù)量不變時,得到聚類結(jié)果,所述聚類結(jié)果包括包含多個對象的類和包含單個對象的類。
【文檔編號】G06F17/30GK103914518SQ201410097422
【公開日】2014年7月9日 申請日期:2014年3月14日 優(yōu)先權日:2014年3月14日
【發(fā)明者】陳志軍, 張濤, 張波, 王琳 申請人:小米科技有限責任公司