本發(fā)明涉及數(shù)據(jù)處理技術領域,尤其涉及一種人群聚類的方法及裝置。
背景技術:
隨著網(wǎng)絡技術的發(fā)展,人們在網(wǎng)絡上留下了各種操作痕跡,例如人們會根據(jù)自己的需要在網(wǎng)絡上購買商品,也會點擊網(wǎng)頁中的廣告并購買商品等等,這些所有的操作痕跡,包括用戶留下的個人信息如年齡信息、性別信息等等,都會被搜錄到相應的大數(shù)據(jù)中,以對人群的消費傾向進行分析。
目前,通常使用聚類算法對這類大數(shù)據(jù)進行分析來獲得人群的消費傾向,從而為企業(yè)的產品生產提供數(shù)據(jù)支持,例如,在對樣本集S{S1,S2,S3…Sn}中的樣本進行聚類時,采用如下第一種方案:在K次迭代中,對于任意一個樣本Si,求其到聚類中心集M{M1,M2…Mj…Mk}中各個聚類中心點的距離,將該Si劃分到距離最近的聚類中心點所在的類集中;利用均值的方法,更新聚類中心集M中的聚類中心點;計算本次迭代產生的類集與上次迭代產生的類集之間的差值,直到該差值滿足預置誤差條件為止。
此方法在進行計算聚類中心點的聚類集時,需要將樣本集S中的每個樣本分別與聚類中心集M中的每個聚類中心點進行距離計算,即需要進行n*k次點對點的距離計算,計算量較大,耗時較長。
為了解決上述第一種方案存在的計算量大,耗時較長的問題目前現(xiàn)有技術中還提供了第二種方案,該方案相對于第一種方案將Si劃分到距離最近的聚類中心點所在類集的操作過程進行了改進,改進的方案具體如下:計算聚類中心集M{M1,M2…Mj…Mk}中任意兩個聚類中心點之間的距離,并保存;通過三角形不等式原理,即計算Luj與2Lui之間的距離,其中,Luj為聚類中心 點Mu與聚類中心點Mj之間的距離,其中,聚類中心點Mu為Si與當前距離Si最近的聚類中心點,聚類中心點Mj為當前遍歷過程中待遍歷的的聚類中心點,Lui為Si與聚類中心點Mu之間的距離;若Luj大于或者等于2Liu,忽略掉聚類中心點Mj,并繼續(xù)遍歷下一個聚類中心點,或者,遍歷完成后,將該Si劃分到Mu所在的類集中;若Luj小于2Liu,則計算Si與Mj之間的距離Lij,其中,Lij為樣本點Si與聚類中心點Mj之間的距離;當Lij小于Lui時,設置Lui=Lij,Mu=Mj,繼續(xù)遍歷下一個聚類中心點,或者,遍歷完成后,將該Si劃分到Mu所在的類集中。
通過上述兩種方案,即能夠通過對大數(shù)據(jù)進行聚類而獲得大數(shù)據(jù)中的聚類信息,但是,在實施第二種方案時,發(fā)明人發(fā)現(xiàn)其存在如下問題:在判斷某個聚類中心點是否為樣本的聚類中心點時,在確定出樣本Si與聚類中心集M中最近的聚類中心點Mu之后,基于三角形不等式原理,將聚類中心集M中不可能是Si的聚類中心點進行丟棄,無需計算丟棄的聚類中心點與樣本Si之間的距離,能夠在一定程度上降低計算量,縮短計算時長;但是,對于一些聚類中心點較多,聚類更精細的需求而言,由于每次迭代過程均需要計算聚類中心點兩兩之間的距離,導致計算量較大,耗時較長。
因此,現(xiàn)有技術中聚類算法存在因每次迭代過程均需要計算聚類中心點兩兩之間的距離而導致計算量較大,耗時較長的技術問題。
技術實現(xiàn)要素:
本發(fā)明實施例通過提供一種人群聚類的方法及裝置,用以解決現(xiàn)有技術中聚類算法存在的因每次迭代過程均需要計算聚類中心點兩兩之間的距離而導致計算量較大,耗時較長的技術問題。
本發(fā)明實施例第一方面提供了一種人群聚類的方法,其特征在于,包括:
獲得針對人群的樣本集以及所述樣本集的聚類中心集,所述樣本集中每個樣本點包括人群中對應的個人的描述信息,所述描述信息至少包括年齡信息、 性別信息、愛好信息和消費金額信息;
針對所述樣本集中的每一個樣本點,依次遍歷聚類中心集中的每一個聚類中心點,確定所述每一個樣本點與所述聚類中心集中距離最近的聚類中心點,并將所述每一個樣本點劃分到所述聚類中心集中距離最近的聚類中心點對應的集合中,獲得所述聚類中心集中的每一個聚類中心點對應的聚類集;
獲得所述聚類集中樣本點的平均值,并根據(jù)所述平均值更新所述聚類中心集;
根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值;其中,所述第一距離為需要進行數(shù)據(jù)聚類的樣本點與所述第一聚類中心點之間的距離,所述第一聚類中心點為聚類距離遍歷中與所述樣本點距離最近的聚類中心點;
根據(jù)第二距離、所述第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,其中,所述第二距離為上一次聚類距離遍歷過程中所述第一聚類中心點與第二聚類中心點之間的距離,所述第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點;
按照三角形不等式規(guī)則將所述第一距離的預測值與所述第三距離的預測值進行比較;
若所述第三距離的預測值大于或者等于兩倍的所述第一距離的預測值,則將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
基于已丟棄所述第二聚類中心點的聚類中心集進行所述距離遍歷,獲得所述樣本集的聚類結果,所述聚類結果包括以所述年齡信息、所述性別信息、所述愛好信息和所述消費金額信息為基準維度對所述人群中的每一個人進行聚類后的聚類信息。
可選地,在所述獲得所述樣本集的聚類結果之后,所述方法還包括:
對所述聚類結果進行分析,以對所述聚類方法進行評價。
可選地,所述對所述聚類結果進行分析,以對所述聚類方法進行評價,具體包括:
通過熵值驗證算法或純度驗證算法對所述聚類結果進行分析;
在所述熵值驗證算法獲得的所述聚類結果的熵值小于第一預設值時,確定所述聚類方法滿足預設需求;或者
在所述純度驗證算法獲得的所述聚類結果的純度大于第二預設值時,確定所述聚類方法滿足所述預設需求。
可選地,所述方法還包括:
若所述第三距離的預測值小于兩倍的所述第一距離的預測值,則根據(jù)上一次更新后的所述第一聚類中心點對所述第二聚類中心點進行數(shù)據(jù)聚類處理。
可選地,所述根據(jù)上一次更新后的所述第一聚類中心點對所述第二聚類中心點進行數(shù)據(jù)聚類處理,包括:
計算所述上一次更新后的所述第一聚類中心點與所述樣本點之間的距離,得到第一距離的實際值;
按照三角形不等式規(guī)則將所述第一距離的實際值與所述第三距離的預測值進行比較;
若所述第三距離的預測值大于或者等于兩倍的所述第一距離的實際值,則將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
若所述第三距離的預測值小于兩倍的所述第一距離的實際值,則計算第四距離,并確定所述第四距離是否小于所述第一距離的實際值;其中,所述第四距離為所述樣本點與所述第二聚類中心點的距離;
若所述第四距離小于所述第一距離的實際值,則將所述第二聚類中心點確 定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
若所述第四距離大于或者等于所述第一距離的實際值,則將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
可選地,所述將所述第二聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點,包括:
若所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷完成,則將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值;
若所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷未完成,則將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值,并基于賦值后的第一聚類中心點及賦值后的第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
可選地,將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點,包括:
若所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷完成,則將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
若所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷未完成,則基于所述上一次更新后的所述第一聚類中心點以及所述第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
可選地,在計算第四距離之前,所述方法還包括:
計算第五距離,所述第五距離為所述第二聚類中心點與所述上一次更新后的所述第一聚類中心點之間的距離;
按照三角形不等式規(guī)則將所述第一距離的實際值與所述第五距離進行比 較;
若所述第五距離大于或者等于兩倍的所述第一距離的實際值,則將所述第二聚類中心點丟棄,以便進行聚類遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
所述計算第四距離,包括:
若所述第五距離小于兩倍的所述第一距離的實際值,則執(zhí)行所述計算所述第四距離。
可選地,所述根據(jù)第二距離、所述第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,包括:
獲取所述第一聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第一聚類中心點更新前后之間的第一差值;
獲取所述第二聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第二聚類中心點更新前后之間的第二差值;
將所述第二距離與所述第一差值及所述第二差值進行減法計算,獲得所述第三距離的預測值。
可選地,在將所述第二聚類中心點丟棄之后,在所述基于已丟棄所述第二聚類中心點的聚類中心集進行所述距離遍歷,獲得所述樣本集的聚類結果之前,所述方法還包括:
判斷所述當前聚類距離遍歷是否完成;
若未遍歷完成,則繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點;
若遍歷完成,則將上一次更新后的第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
本發(fā)明實施例第二方面還提供一種人群聚類的裝置,包括:
獲得單元,用于獲得針對人群的樣本集以及所述樣本集的聚類中心集,所 述樣本集中每個樣本點包括人群中對應的個人的描述信息,所述描述信息至少包括年齡信息、性別信息、愛好信息和消費金額信息;
聚類集獲得單元,用于針對所述樣本集中的每一個樣本點,依次遍歷聚類中心集中的每一個聚類中心點,確定所述每一個樣本點與所述聚類中心集中距離最近的聚類中心點,并將所述每一個樣本點劃分到所述聚類中心集中距離最近的聚類中心點對應的集合中,獲得所述聚類中心集中的每一個聚類中心點對應的聚類集;
平均值獲得單元,用于獲得所述聚類集中樣本點的平均值,并根據(jù)所述平均值更新所述聚類中心集;
第一獲取單元,用于根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值;其中,所述第一距離為需要進行數(shù)據(jù)聚類的樣本點與所述第一聚類中心點之間的距離,所述第一聚類中心點為聚類距離遍歷中與所述樣本點距離最近的聚類中心點;
第二獲取單元,用于根據(jù)第二距離、所述第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,其中,所述第二距離為上一次聚類距離遍歷過程中所述第一聚類中心點與第二聚類中心點之間的距離,所述第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點;
比較單元,用于按照三角形不等式規(guī)則將所述第一獲取單元獲取的所述第一距離的預測值與所述第二獲取單元獲取的所述第三距離的預測值進行比較;
丟棄單元,用于當所述比較單元比較的所述第三距離的預測值大于或者等于兩倍的所述第一距離的預測值時,將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
聚類結果獲得單元,用于基于已丟棄所述第二聚類中心點的聚類中心集進行所述距離遍歷,獲得所述樣本集的聚類結果,所述聚類結果包括以所述年齡 信息、所述性別信息、所述愛好信息和所述消費金額信息為基準維度對所述人群中的每一個人進行聚類后的聚類信息。
可選地,所述裝置還包括:
分析單元,用于在所述聚類結果獲得單元獲得所述聚類結果之后,對對所述聚類結果進行分析,以對所述聚類方法進行評價。
可選地,所述分析單元具體用于通過熵值驗證算法或純度驗證算法對所述聚類結果進行分析,其中,在所述熵值驗證算法獲得的所述聚類結果的熵值小于第一預設值時,確定所述聚類方法滿足預設需求,或者在所述純度驗證算法獲得的所述聚類結果的純度大于第二預設值時,確定所述聚類方法滿足所述預設需求。
可選地,所述裝置還包括:
處理單元,用于當所述比較單元比較的所述第三距離的預測值小于兩倍的所述第一距離的預測值時,根據(jù)上一次更新后的所述第一聚類中心點對所述第二聚類中心點進行數(shù)據(jù)聚類處理。
可選地,所述處理單元具體用于:計算所述上一次更新后的所述第一聚類中心點與所述樣本點之間的距離,得到第一距離的實際值;
按照三角形不等式規(guī)則將所述第一計算模塊計算的所述第一距離的實際值與所述第三距離的預測值進行比較;
當所述第一比較模塊比較的所述第三距離的預測值大于或者等于兩倍的所述第一距離的實際值時,將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當所述第一比較模塊比較的所述第三距離的預測值小于兩倍的所述第一距離的實際值,則計算第四距離;其中,所述第四距離為所述樣本點與所述第二聚類中心點的距離;
確定所述第二計算模塊計算的所述第四距離是否小于所述第一距離的實 際值;
當所述第一確定模塊確定所述第四距離小于所述第一距離的實際值時,將所述第二聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
當所述第一確定模塊確定所述第四距離大于或者等于所述第一距離的實際值時,將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
可選地,所述計算模塊具體還用于:
當所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷完成時,將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值;
當所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷未完成時,將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值,并基于賦值后的第一聚類中心點及賦值后的第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
可選地,所述計算模塊具體還用于:
當所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷完成時,將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
當所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷未完成,則基于所述上一次更新后的所述第一聚類中心點以及所述第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
可選地,所述處理單元具體還用于:
在所述第二計算模塊計算的所述第四距離之前,計算第五距離,所述第五距離為所述第二聚類中心點與所述上一次更新后的所述第一聚類中心點之間 的距離;
按照三角形不等式規(guī)則將所述第一計算模塊計算的所述第一距離的實際值與所述第三計算模塊計算的所述第五距離進行比較;
當所述第二比較模塊比較的所述第五距離大于或者等于兩倍的所述第一距離的實際值,則將所述第二聚類中心點丟棄,以便進行聚類遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當所述第二比較模塊比較的所述第五距離小于兩倍的所述第一距離的實際值,則執(zhí)行所述計算所述第四距離。
可選地,所述第二獲取單元,具體用于:
獲取所述第一聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第一聚類中心點更新前后之間的第一差值;
獲取所述第二聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第二聚類中心點更新前后之間的第二差值;
所述第二距離與所述第一處理模塊計算的所述第一差值及所述第二處理模塊計算的所述第二差值進行減法計算,獲得所述第三距離的預測值。
可選地,所述裝置還包括:
判斷單元,在所述丟棄單元將所述第二聚類中心點丟棄之后,判斷所述當前聚類距離遍歷是否完成;
遍歷單元,當所述判斷單元判斷未遍歷完成時,繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點;
確定單元,用于當所述判斷單元判斷遍歷完成時,將上一次更新后的第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
本發(fā)明實施例中提供的一個或多個技術方案,至少具有如下技術效果或優(yōu)點:
1、本發(fā)明實施例提供的人群聚類的方法以及裝置,所獲得的聚類結果會 包括以年齡信息、性別信息、愛好信息和消費金額信息為基準維度對人群中的每一個人進行聚類后的聚類信息,從而為企業(yè)制定產品生產方向提供了數(shù)據(jù)支持。
2、在當前聚類距離遍歷過程中,基于上一次更新的聚類中心集,根據(jù)第一聚類中心點上次更新前后的自身差值獲取第一距離的預測值,該第一距離的預測值為需要進行數(shù)據(jù)聚類的樣本點與該樣本點距離最近的聚類中心點之間的距離,根據(jù)第二距離、第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,第二距離為上一次聚類距離遍歷過程中第一聚類中心點與第二聚類中心點之間的距離,第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點,將第三距離的預測值與第一距離的預測值進行比較,若第三距離的預測值大于或者等于兩倍的第一距離的預測值時,將所述第二聚類中心點丟棄。本發(fā)明中,基于三角形不等式規(guī)則,將聚類中心集中的第三距離的預測值大于或者等于兩倍的第一距離的預測值對應的第二聚類中心點進行過濾,無需計算第二聚類中心點與樣本點之間的距離,也無需計算第二樣本點與其他待遍歷聚類中心點之間的距離,因此,減少了計算第二樣本點與其他待遍歷聚類中心點之間的距離所消耗的時間及計算量,提高了數(shù)據(jù)聚類的計算效率。
附圖說明
圖1為本發(fā)明實施例提供的人群聚類的方法的流程示意圖;
圖2為本發(fā)明實施例提供的第三距離的預測值大于或者等于兩倍的第一距離的預測值的示意圖;
圖3為本發(fā)明實施例提供的根據(jù)上一次更新后的第一聚類中心點Mu’對第二聚類中心點Mj’進行數(shù)據(jù)聚類處理方法的流程圖;
圖4為本發(fā)明實施例提供了確定樣本點Si對應聚類中心點方法的流程圖;
圖5為本發(fā)明實施例提供的人群聚類的裝置的功能模塊圖。
具體實施方式
本發(fā)明實施例通過提供一種人群聚類的方法及裝置,用以解決現(xiàn)有技術中聚類算法存在的因每次迭代過程均需要計算聚類中心點兩兩之間的距離而導致計算量較大,耗時較長的技術問題。
本發(fā)明實施例第一方面提供了一種人群聚類的方法,請參考圖1,圖1為本發(fā)明實施例提供的人群聚類的方法的流程示意圖,如圖1所示,該方法包括:
101:獲得針對人群的樣本集以及樣本集的聚類中心集,樣本集中每個樣本點包括人群中對應的個人的描述信息,描述信息至少包括年齡信息、性別信息、愛好信息和消費金額信息;
為了詳細介紹本發(fā)明實施例中的技術方案,描述信息包括上述年齡信息、性別信息、愛好信息和消費金額信息這四種因素,在其他實施例中,描述信息還可以包括收入信息、學歷信息、地域信息、宗教信仰信息和信用度信息等等,在此就不再贅述了。
在本實施例中,設定,針對人群的樣本集為S{S1,S2…Sn},初始聚類中心集M{M1,M2…Mj…Mk},該樣本集可以是網(wǎng)絡上電子商務網(wǎng)站或廣告網(wǎng)站搜集的用戶的數(shù)據(jù)信息,初始化聚類中心集可以通過在樣本集中隨機選擇預設個數(shù)的中心點、距離優(yōu)化算法或密度估值法等算法從樣本集中選出初始聚類中心點,從而獲得初始聚類中心集,在此就不再贅述了。
102:針對樣本集中的每一個樣本點,依次遍歷聚類中心集中的每一個聚類中心點,確定每一個樣本點與聚類中心集中距離最近的聚類中心點,并將每一個樣本點劃分到聚類中心集中距離最近的聚類中心點對應的集合中,獲得聚類中心集中的每一個聚類中心點對應的聚類集;
在本步驟中,可以先計算初始聚類中心集M中聚類中心點兩兩之間的距離:d11,d12…d(k-1)k,然后,針對樣本集S中的任意樣本點Si,其中,i大于等于1且小于等于n,依次遍歷聚類中心集M中的每一個聚類中心點,確定 Si與聚類中心集中距離最近的聚類中心點Mu,并把Si劃分到該聚類中心點Mu對應的集合中,并保存樣本點Si與聚類中心點Mu之間的第一距離Liu,依次類推得到聚類中心點對應的聚類集,如聚類中心點M1,M2…Mj…Mk對應的聚類集分別為N1,N2…Nj…Nk。
103:獲得聚類集中樣本點的平均值,并根據(jù)平均值更新聚類中心集;
在本步驟中,計算聚類集N1,N2…Nj…Nk中樣本點的平均值為M1’,M2’…Mj’…Mk’,并使用M1’,M2’…Mj’…Mk’更新M1,M2…Mj…Mk,更新后的聚類中心集M為{M1’,M2’…Mj’…Mk’}。
104:根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值;其中,第一距離為需要進行數(shù)據(jù)聚類的樣本點與第一聚類中心點之間的距離,第一聚類中心點為聚類距離遍歷中與樣本點距離最近的聚類中心點;
為了能夠提高數(shù)據(jù)聚類的準確性,需要進行迭代計算,在進行當前數(shù)據(jù)聚類算法時,基于上述更新后的聚類中心集M為{M1’,M2’…Mj’…Mk’}進行計算。其中,第一距離Liu為需要進行數(shù)據(jù)聚類的樣本點Si與上一次更新后的第一聚類中心點Mu’之間的距離,第一聚類中心點Mu’為聚類距離遍歷中與樣本點距離最近的聚類中心點。
設置樣本點Si對應的第一距離預測值設置為Liu=Liu+Tu,其中,Tu為第一聚類中心點Mu’上一次更新前后的自身差值,即Tu為Mu’與Mu之間的差值。本發(fā)明實施例中,將該第一距離預測值設置為Liu=Liu+Tu的目的在于,確保樣本點Si與上一次更新后的第一聚類中心點Mu’之間距離的最大值;基于重新設置后的Liu=Liu+Tu,進行當前聚類距離遍歷。
在本發(fā)明實施例中,在計算樣本點Si與上一次更新后的第一聚類中心點Mu’之間的距離、在計算初始聚類中心集中聚類中心點兩兩之間的距離:d11,d12…d(k-1)k時,可以采用但不局限于以下的方法實現(xiàn),例如,歐氏距離、曼哈頓距離、切比雪夫距離、冪距離、余弦相似度、皮爾森相似度、修正的余弦相似度、Jaccard相似度、漢明距離、加權的歐式距離、相關距離、馬氏 距離等計算距離的算法,本發(fā)明實施例對計算距離時所采用的具體方法不進行限定。
105:根據(jù)第二距離、第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,其中,第二距離為上一次聚類距離遍歷過程中第一聚類中心點與第二聚類中心點之間的距離,第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點;
其中,第二距離duj為計算初始聚類中心集中聚類中心點Mu與聚類中心點Mj之間的距離,該聚類中心點Mj是第二聚類中心點Mj’未更新之前的聚類中心點,第二聚類中心點Mj’為當前聚類距離遍歷過程中待遍歷的聚類中心點;Tu為第一聚類中心點Mu’上一次更新前后的自身差值,即Tu為Mu’與Mu之間的差值;Tj為第二聚類中心點Mj’上一次更新前后的自身差值,即Tj為Mj’與Mj之間的差值,將第二距離duj與Tu及Tj進行減法計算,得到第三距離的預測值為(duj-Tu-Tj)。
需要說明的是,該第三距離的預測值為(duj-Tu-Tj),其在計算過程中,只需計算第一聚類中心點Mu’上一次更新前后的自身差值與第二聚類中心點Mj’上一次更新前后的自身差值,而無需計算上一次更新后的聚類中心集M{M1’,M2’…Mj’…Mk’}中聚類中心點兩兩之間的距離,能夠降低數(shù)據(jù)聚類時的計算量以及提高計算效率。
106:按照三角形不等式規(guī)則將第一距離的預測值與第三距離的預測值進行比較;
基于三角形不等式規(guī)則,也即在三角形中,必然有兩邊之和大于第三邊,即為三角不等式將獲取的第一距離的預測值Liu,與獲取的第三距離的預測值進行比較。
107:若第三距離的預測值大于或者等于兩倍的第一距離的預測值,則將第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算樣本點與第二聚類中心點之間的距離以及第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當?shù)谌嚯x的預測值大于或者等于兩倍的第一距離的預測值,即(duj-Tu-Tj)大于或者等于2*Liu,說明樣本點Si與第二聚類中心點Mj’之間的距離Lij’大于或者等于樣本點Si與第一距離的預測值Liu的距離,將第二聚類中心點Mj’丟棄,相當于將聚類中心集中的第三距離的預測值大于或者等于兩倍的第一距離的預測值對應的第二聚類中心點進行了過濾,因此,在進行當前聚類距離遍歷過程中,無需計算樣本點Si與第二樣本點Mj之間的距離、也無需計算第二聚類中心點與其他待遍歷聚類中心點之間的距離。如圖2所示,圖2示出了本發(fā)明實施例提供的第三距離的預測值大于或者等于兩倍的第一距離的預測值的示意圖。
108:基于已丟棄第二聚類中心點的聚類中心集進行距離遍歷,獲得樣本集的聚類結果,聚類結果包括以年齡信息、性別信息、愛好信息和消費金額信息為基準維度對人群中的每一個人進行聚類后的聚類信息。
當然了,基于已丟棄第二聚類中心點的聚類中心集進行距離遍歷所獲得的聚類結果可能不會滿足需求,所以可以根據(jù)本發(fā)明實施例提供的方法重復執(zhí)行數(shù)據(jù)聚類,直到獲得滿足需求的聚類結果為止,在此就不再贅述了。
在本實施例中,在獲得滿足需求的聚類結果后,該聚類結果會包括以年齡信息、性別信息、愛好信息和消費金額信息為基準維度對人群中的每一個人進行聚類后的聚類信息,從而為企業(yè)制定產品生產方向提供了數(shù)據(jù)支持,企業(yè)即能夠根據(jù)獲得的聚類結果制定相應的產品生產方向,例如,針對某一企業(yè)而言,年齡在18-22歲、性別為男、愛好為網(wǎng)絡游戲和動漫、消費金額信息為250-300元/月的比率占據(jù)了該企業(yè)的消費人群的58%,則該企業(yè)則可以盡可能制定出生產面對18-22歲、面對愛好為網(wǎng)絡游戲和動漫的男性、定價在250-300元的商品的運營策略,便于盡可能地擴大商品的受眾,避免因生產出的商品定價過高而無人購買,或因商品定價過低而導致利潤較低的情形,從而使得企業(yè)能夠運行得更加平穩(wěn)。
由此可以看出,當前聚類距離遍歷過程中,基于上一次更新的聚類中心集, 根據(jù)第一聚類中心點上次更新前后的自身差值獲取第一距離的預測值,該第一距離的預測值為需要進行數(shù)據(jù)聚類的樣本點與該樣本點距離最近的聚類中心點之間的距離,根據(jù)第二距離、第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,第二距離為上一次聚類距離遍歷過程中第一聚類中心點與第二聚類中心點之間的距離,第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點,將第三距離的預測值與第一距離的預測值進行比較,若第三距離的預測值大于或者等于兩倍的第一距離的預測值時,將該第二聚類中心點丟棄。本發(fā)明實施例中,基于三角形不等式規(guī)則,將聚類中心集中的第三距離的預測值大于或者等于兩倍的第一距離的預測值對應的第二聚類中心點進行過濾,無需計算第二聚類中心點與樣本點之間的距離,也無需計算第二樣本點與其他待遍歷聚類中心點之間的距離,因此,減少了計算第二樣本點與其他待遍歷聚類中心點之間的距離所消耗的時間及計算量,提高了數(shù)據(jù)聚類的計算效率。
在本實施例中,在該獲得該樣本集的聚類結果之后,本發(fā)明實施例提供的方法還包括:
對該聚類結果進行分析,以對該聚類方法進行評價。
在具體實施過程中,該對該聚類結果進行分析,以對該聚類方法進行評價,具體包括:
通過熵值(entropy)驗證算法或純度(purity)驗證算法對該聚類結果進行分析;
在實際應用中,以通過熵值驗證算法對聚類結果進行分析為例,對于一個聚類i而言,首先計算Pij,Pij指的是聚類i中的成員(member)屬于類(class)j的概率,其中,mi是在聚類i中所有成員的個數(shù),mij是聚類i中的成員屬于類j的個數(shù)。每個聚類的entropy可以表示為 其中L是類(class)的個數(shù)。整個聚類劃分的entropy為其中K是聚類(cluster)的數(shù)目,m是整個聚類劃分所涉及到的成員個數(shù)。在本實施例中,在該熵值驗證算法獲得的該聚類結果的熵值小于第一預設值時,確定該聚類方法滿足預設需求;
當然,也可以通過純度驗證算法來對聚類結果進行分析,類似的,對于一個聚類i而言,首先計算Pij,Pij指的是聚類i中的成員(member)屬于類(class)j的概率,設定聚類i的purity定義為pi=max(pij)。整個聚類劃分的purity為其中K是聚類(cluster)的數(shù)目,mi是在聚類i中所有成員的個數(shù),m是整個聚類劃分所涉及到的成員個數(shù)。在本實施例中,在該純度驗證算法獲得的該聚類結果的純度大于第二預設值時,確定該聚類方法滿足該預設需求。
在執(zhí)行步驟103按照三角形不等式規(guī)則將第一距離的預測值Liu與第三距離的預測值(duj-Tu-Tj)進行比較時,若第三距離的預測值(duj-Tu-Tj)小于兩倍的第一距離的預測值Liu,說明樣本點Si與第二聚類中心點Mj’之間的距離Lij’小于樣本點Si與第一聚類中心點Mu’之間的第一距離的預測值Liu,根據(jù)上一次更新后的第一聚類中心點Mu’對第二聚類中心點Mj’進行數(shù)據(jù)聚類處理,來確定樣本點Si對應的聚類中心點為上一次更新后的第一聚類中心點Mu’還是第二聚類中心點Mj’。如圖3所示,圖3示出了本發(fā)明實施例提供的根據(jù)上一次更新后的第一聚類中心點Mu’對第二聚類中心點Mj’進行數(shù)據(jù)聚類處理方法的流程圖,該方法包括:
301、計算上一次更新后的第一聚類中心點與樣本點之間的距離,得到第一距離的實際值。
計算上一次更新后的第一聚類中心點Mu’與樣本點Si之間的距離Liu’,該 Liu’為當前聚類距離遍歷過程中第一距離的實際值,本發(fā)明實施例在計算上一次更新后的第一聚類中心點Mu’與樣本點Si之間的第一距離的實際距離Liu’時,所采用的算法請參考上述步驟101中的相關描述,本發(fā)明實施例在此不再進行贅述。
302、按照三角形不等式規(guī)則將第一距離的實際值與第三距離的預測值進行比較。
基于三角形不等式規(guī)則,將第一距離的實際值Liu’與第三距離的預測值(duj-Tu-Tj)進行比較,若第三距離的預測值(duj-Tu-Tj)大于或者等于兩倍的第一距離的實際值Liu’,則執(zhí)行步驟303;若第三距離的預測值(duj-Tu-Tj)小于兩倍的第一距離的實際值Liu’,則執(zhí)行步驟304。
303、將第二聚類中心點丟棄。
當?shù)谌嚯x的預測值(duj-Tu-Tj)大于或者等于兩倍的第一距離的實際值Liu’時,說明在當前聚類距離遍歷過程中,樣本點Si到第二聚類中心點Mj’的實際距離大于或者等于樣本點Si到第一聚類中心點Mu’的實際距離,即樣本點Si對應的聚類中心點不可能是第二聚類中心點Mj’,因此將第二聚類中心點Mj’丟棄,不再計算樣本點Si與第二聚類中心點Mj’之間的距離以及第二聚類中心點Mj’與其他待遍歷聚類中心點之間的距離。
304、計算第四距離,并確定第四距離是否小于第一距離的實際值。
當?shù)谌嚯x的預測值(duj-Tu-Tj)小于兩倍的第一距離的實際值Liu’時,說明在當前聚類距離遍歷過程中,樣本點Si到第二聚類中心點Mj’的實際距離小于樣本點Si到第一聚類中心點Mu’的實際距離,即樣本點Si對應的聚類中心點可能是第二聚類中心點Mj’。
確定樣本點Si對應的聚類中心點是第一聚類中心點Mu’,還是第二聚類中心點Mj’,需要計算第四距離Lij’,其中,該第四距離Lij’為樣本點Si與第二聚類中心點Mj’之間的距離。若第四距離Lij’小于第一距離的實際值Liu’,則執(zhí)行步驟305;若第四距離Lij’大于或者等于第一距離的實際值Liu’,則執(zhí)行 步驟306。
305、將第二聚類中心點確定為當前距離遍歷過程中與樣本點距離最近的聚類中心點。
當?shù)谒木嚯xLij’小于第一距離的實際值Liu’時,確定第二聚類中心點Mj’為當前距離遍歷過程中與樣本點Si距離最近的聚類中心點。在本發(fā)明實施例的一種實現(xiàn)方式中,當該第四距離Lij’小于該第一距離的實際值Liu’,并且當前聚類距離遍歷完成,則將該第二聚類中心點Mj’賦值給上一次更新后的該第一聚類中心點Mu’,以及將該第四距離Lij’賦值給第一距離的實際值Liu’,即Lui’=Lij’,Mu’=Mj’;在本發(fā)明實施例的另一種實現(xiàn)方式中,當?shù)谒木嚯xLij’小于第一距離的實際值Liu’,并且當前聚類距離遍歷未完成,則將第二聚類中心點Mj’賦值給上一次更新后的第一聚類中心點Mu’,以及將第四距離Lij’賦值給第一距離的實際值Liu’,即Lui’=Lij’,Mu’=Mj’,并基于賦值后的第一聚類中心點Mu’及賦值后的第一距離的實際值Liu’繼續(xù)遍歷當前聚類中心集中的下一個聚類中心點,直到遍歷完當前聚類中心集。
306、將上一次更新后的第一聚類中心點確定為當前距離遍歷過程中與樣本點距離最近的聚類中心點。
當?shù)谒木嚯xLij’大于或者等于第一距離的實際值Liu’時,確定上次更新后的第一聚類中心點Mu’為當前距離遍歷過程中與樣本點Si距離最近的聚類中心點。在本發(fā)明實施例的一種實現(xiàn)方式中,當?shù)谒木嚯xLij’大于或者等于第一距離的實際值Liu’,并且當前聚類距離遍歷完成時,將上一次更新后的第一聚類中心點Mu’確定為當前距離遍歷過程中與樣本點Si距離最近的聚類中心點;當?shù)谒木嚯xLij’大于或者等于第一距離的實際值Liu’,并且當前聚類距離遍歷未完成,則基于上一次更新后的第一聚類中心點Mu’以及第一距離的實際值Liu’繼續(xù)遍歷當前聚類中心集中的下一個聚類中心點。
本發(fā)明實施例在具體實施過程中,將圖1與圖3進行結合,來確定樣本點Si對應的聚類中心點,如圖4所示,圖4示出了本發(fā)明實施例提供了確定樣本 點Si對應聚類中心點方法的流程圖,該方法包括:
401、根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值。
402、根據(jù)第二距離、第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值。
403、按照三角形不等式規(guī)則將第一距離的預測值與第三距離的預測值進行比較。
若第三距離的預測值大于或者等于兩倍的第一距離的預測值,則執(zhí)行步驟404;若第三距離的預測值小于兩倍的第一距離的預測值,則執(zhí)行步驟405。
404、將第二聚類中心點丟棄。
405、根據(jù)上一次更新后的該第一聚類中心點對該第二聚類中心點進行數(shù)據(jù)聚類處理。
有關根據(jù)上一次更新后的該第一聚類中心點對該第二聚類中心點進行數(shù)據(jù)聚類處理的實施過程,請參考圖3的詳細描述,本發(fā)明實施例在此不再進行贅述。
進一步的,在執(zhí)行步驟304計算第四距離之前,計算第五距離duj’,第五距離為第二聚類中心點Mj’與上次更新后的第一聚類中心點Mu’之間的距離,按照三角形不等式規(guī)則將第一距離的實際值Liu’與第五距離duj’進行比較,當?shù)谖寰嚯xduj’大于或者等于兩倍的第一距離的實際值Liu’時,將第二聚類中心點丟棄,不再計算樣本點Si與第二聚類中心點Mj’之間的距離以及第二聚類中心點Mj’與其他待遍歷聚類中心點之間的距離;當?shù)谖寰嚯xduj’小于兩倍的第一距離的實際值Liu’時,繼續(xù)執(zhí)行步驟304。
需要說明的是,在實際的運行步驟301-步驟303的操作過程中,可將聚類中心集M中的大部分,與樣本點Si的距離大于或者等于第一距離的實際值Liu’的聚類中心點進行丟棄,而聚類中心集M中剩下部分的聚類中心點均為與樣本點Si的距離小于第一距離的實際值Liu’的聚類中心點。示例性的,假設聚類 中心集M中有1000個聚類中心點,通過步驟301-步驟303時,將可800個與樣本點Si的距離大于或者等于第一距離的實際值Liu’的對應聚類中心點進行丟棄,此時,聚類中心集M中剩余200個聚類中心點。分別計算剩余200個聚類中心點中第二聚類中心點Mj’與上次更新后的第一聚類中心點Mu’之間的第五距離,當?shù)谖寰嚯xduj’大于或者等于兩倍的第一距離的實際值Liu’時,將150第二聚類中心點Mj’丟棄,此時,聚類中心集M中剩余50個聚類中心點,分別計算樣本點Si與聚類中心集M中剩余50個聚類中心點之間的距離,確定樣本點Si距離最近的聚類中心點。需要說明的是,在實際的操作過程中,計算聚類中心集M中兩兩聚類中心點之間的第五距離duj’時,要比計算樣本點Si與第二聚類中心點Mj’之間的第四距離Lij’的計算量小、消耗時間少。本發(fā)明實施例基于三角形不等式規(guī)則,兩次對聚類中心集M中與樣本點Si的距離大于或者等于第一距離的實際值Liu’的聚類中心點進行丟棄,在一定程度上進一步的降低了計算樣本點Si與第二聚類中心點Mj’的計算量。
進一步的,作為對上述實施例的細化和擴展,上述步驟102在獲取第三距離的預測值(duj-Tu-Tj)時,可以采用但不局限于以下的方式實現(xiàn),獲取第一聚類中心點Mu’上一次更新前對應的值Mu及更新后對應的值Mu’,計算第一差值Tu,其中,該Tu為Mu’與Mu之間的差值;獲取第二聚類中心點Mj’上一次更新前對應的值Mj及更新后對應的值Mj’,計算第二差值Tj,其中,該Tj為Tj’與Tj之間的差值;將第二距離duj與第一差值Tu及第二差值Tj進行減法計算,獲得第三距離的預測值(duj-Tu-Tj)。
進一步的,在執(zhí)行404之后,判斷當前聚類距離遍歷是否完成,若未遍歷完成,則繼續(xù)遍歷當前聚類中心集中下一個聚類中心點;若遍歷完成,則將上一次更新后的第一聚類中心點Mu’確定為當前距離遍歷過程中與該樣本點距離最近的聚類中心點。
在確定樣本點Si對應的聚類中心點后,依次類推得到聚類中心集M中M1’,M2’…Mj’…Mk’對應的聚類集分別為N1’,N2’…Nj’…Nk’,計算步驟101 中該的聚類集N1,N2…Nj…Nk與當前聚類距離遍歷確定的聚類集N1’,N2’…Nj’…Nk’之間的差值O1,O2…Oj…Ok,并判斷該差值O1,O2…Oj…Ok是否符合預設誤差閾值,若符合,則將前聚類距離遍歷確定的聚類集N1’,N2’…Nj’…Nk’確定為最終數(shù)據(jù)聚類的結果;若不符合,則基于本發(fā)明實施例如上該方法重復執(zhí)行數(shù)據(jù)聚類,直到確定最終數(shù)據(jù)聚類的結果為止。在本實施例中,在設置預設誤差閾值需要根據(jù)實際需求進行設置,對于一些精細數(shù)據(jù)聚類的需求而言,設置預設誤差閾值的較小,例如,設置預設誤差閾值為1或者0等等,本發(fā)明實施例對預設誤差閾值設置的具體內容不進行限定。
基于同一發(fā)明構思,本發(fā)明實施例第二方面還提供了一種人群聚類的裝置,請參考圖5,圖5為本發(fā)明實施例提供的人群聚類的裝置的功能模塊圖,如圖5所示,該裝置包括:
獲得單元501,用于獲得針對人群的樣本集以及該樣本集的聚類中心集,該樣本集中每個樣本點包括人群中對應的個人的描述信息,該描述信息至少包括年齡信息、性別信息、愛好信息和消費金額信息;
聚類集獲得單元502,用于針對該樣本集中的每一個樣本點,依次遍歷聚類中心集中的每一個聚類中心點,確定該每一個樣本點與該聚類中心集中距離最近的聚類中心點,并將該每一個樣本點劃分到該聚類中心集中距離最近的聚類中心點對應的集合中,獲得該聚類中心集中的每一個聚類中心點對應的聚類集;
平均值獲得單元503,用于獲得該聚類集中樣本點的平均值,并根據(jù)該平均值更新該聚類中心集;
第一獲取單元504,用于根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值;其中,該第一距離為需要進行數(shù)據(jù)聚類的樣本點與該第一聚類中心點之間的距離,該第一聚類中心點為聚類距離遍歷中與該樣本點距離最近的聚類中心點;
第二獲取單元505,用于根據(jù)第二距離、該第一聚類中心點上一次更新前 后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,其中,該第二距離為上一次聚類距離遍歷過程中該第一聚類中心點與第二聚類中心點之間的距離,該第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點;
比較單元506,用于按照三角形不等式規(guī)則將該第一獲取單元504獲取的該第一距離的預測值與該第二獲取單元505獲取的該第三距離的預測值進行比較;
丟棄單元507,用于當該比較單元506比較的該第三距離的預測值大于或者等于兩倍的該第一距離的預測值時,將該第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算該樣本點與該第二聚類中心點之間的距離以及該第二聚類中心點與其他待遍歷聚類中心點之間的距離;
聚類結果獲得單元508,用于基于已丟棄該第二聚類中心點的聚類中心集進行該距離遍歷,獲得該樣本集的聚類結果,該聚類結果包括以該年齡信息、該性別信息、該愛好信息和該消費金額信息為基準維度對該人群中的每一個人進行聚類后的聚類信息。
進一步地,該裝置還包括:
分析單元509,用于在該聚類結果獲得單元508獲得該聚類結果之后,對對該聚類結果進行分析,以對該聚類方法進行評價。
進一步地,該分析單元509具體用于通過熵值驗證算法或純度驗證算法對該聚類結果進行分析,其中,在該熵值驗證算法獲得的該聚類結果的熵值小于第一預設值時,確定該聚類方法滿足預設需求,或者在該純度驗證算法獲得的該聚類結果的純度大于第二預設值時,確定該聚類方法滿足該預設需求。
進一步地,該裝置還包括:
處理單元510,用于當該比較單元506比較的該第三距離的預測值小于兩倍的該第一距離的預測值時,根據(jù)上一次更新后的該第一聚類中心點對該第二聚類中心點進行數(shù)據(jù)聚類處理。
進一步地,該處理單元510具體用于:計算該上一次更新后的該第一聚類中心點與該樣本點之間的距離,得到第一距離的實際值;
按照三角形不等式規(guī)則將該第一處理單元510計算的該第一距離的實際值與該第三距離的預測值進行比較;
當該第一比較模塊比較的該第三距離的預測值大于或者等于兩倍的該第一距離的實際值時,將該第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算該樣本點與該第二聚類中心點之間的距離以及該第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當該第一比較模塊比較的該第三距離的預測值小于兩倍的該第一距離的實際值,則計算第四距離;其中,該第四距離為該樣本點與該第二聚類中心點的距離;
確定該第二處理單元510計算的該第四距離是否小于該第一距離的實際值;
當該第一確定模塊確定該第四距離小于該第一距離的實際值時,將該第二聚類中心點確定為當前距離遍歷過程中與該樣本點距離最近的聚類中心點;
當該第一確定模塊確定該第四距離大于或者等于該第一距離的實際值時,將該上一次更新后的該第一聚類中心點確定為當前距離遍歷過程中與該樣本點距離最近的聚類中心點。
進一步地,該處理單元510具體還用于:
當該第四距離小于該第一距離的實際值,并且當前聚類距離遍歷完成時,將該第二聚類中心點賦值給該上一次更新后的該第一聚類中心點,以及將該第四距離賦值給該第一距離的實際值;
當該第四距離小于該第一距離的實際值,并且當前聚類距離遍歷未完成時,將該第二聚類中心點賦值給該上一次更新后的該第一聚類中心點,以及將該第四距離賦值給該第一距離的實際值,并基于賦值后的第一聚類中心點及賦值后的第一距離的實際值繼續(xù)遍歷該當前聚類中心集中的下一個聚類中心點。
進一步地,該處理單元510具體還用于:
當該第四距離大于或者等于該第一距離的實際值,并且當前聚類距離遍歷完成時,將該上一次更新后的該第一聚類中心點確定為當前距離遍歷過程中與該樣本點距離最近的聚類中心點;
當該第四距離大于或者等于該第一距離的實際值,并且當前聚類距離遍歷未完成,則基于該上一次更新后的該第一聚類中心點以及該第一距離的實際值繼續(xù)遍歷該當前聚類中心集中的下一個聚類中心點。
進一步地,該處理單元510具體還用于:
在該第二處理單元510計算的該第四距離之前,計算第五距離,該第五距離為該第二聚類中心點與該上一次更新后的該第一聚類中心點之間的距離;
按照三角形不等式規(guī)則將該第一處理單元510計算的該第一距離的實際值與該第三處理單元510計算的該第五距離進行比較;
當該第二比較模塊比較的該第五距離大于或者等于兩倍的該第一距離的實際值,則將該第二聚類中心點丟棄,以便進行聚類遍歷時,不再計算該樣本點與該第二聚類中心點之間的距離以及該第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當該第二比較模塊比較的該第五距離小于兩倍的該第一距離的實際值,則執(zhí)行該計算該第四距離。
進一步地,該第二獲取單元505,具體用于:
獲取該第一聚類中心點上一次更新前對應的值及更新后對應的值,并計算該第一聚類中心點更新前后之間的第一差值;
獲取該第二聚類中心點上一次更新前對應的值及更新后對應的值,并計算該第二聚類中心點更新前后之間的第二差值;
該第二距離與該第一處理模塊計算的該第一差值及該第二處理模塊計算的該第二差值進行減法計算,獲得該第三距離的預測值。
進一步地,該裝置還包括:
判斷單元511,在該丟棄單元507將該第二聚類中心點丟棄之后,判斷該當前聚類距離遍歷是否完成;
遍歷單元512,當該判斷單元511判斷未遍歷完成時,繼續(xù)遍歷該當前聚類中心集中的下一個聚類中心點;
確定單元513,用于當該判斷單元511判斷遍歷完成時,將上一次更新后的第一聚類中心點確定為當前距離遍歷過程中與該樣本點距離最近的聚類中心點。
本發(fā)明實施例提供的人群聚類的裝置,在當前聚類距離遍歷過程中,基于上一次更新的聚類中心集,根據(jù)第一聚類中心點上次更新前后的自身差值獲取第一距離的預測值,該第一距離的預測值為需要進行數(shù)據(jù)聚類的樣本點與該樣本點距離最近的聚類中心點之間的距離,根據(jù)第二距離、第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,第二距離為上一次聚類距離遍歷過程中第一聚類中心點與第二聚類中心點之間的距離,第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點,將第三距離的預測值與第一距離的預測值進行比較,若第三距離的預測值大于或者等于兩倍的第一距離的預測值時,將該第二聚類中心點丟棄。本發(fā)明中,基于三角形不等式規(guī)則,將聚類中心集中的第三距離的預測值大于或者等于兩倍的第一距離的預測值對應的第二聚類中心點進行過濾,無需計算第二聚類中心點與樣本點之間的距離,也無需計算第二樣本點與其他待遍歷聚類中心點之間的距離,因此,減少了計算第二樣本點與其他待遍歷聚類中心點之間的距離所消耗的時間及計算量,提高了數(shù)據(jù)聚類的計算效率。
上述本發(fā)明實施例中的技術方案,至少具有如下的技術效果或優(yōu)點:
1、本發(fā)明實施例提供的人群聚類的方法以及裝置,所獲得的聚類結果會包括以年齡信息、性別信息、愛好信息和消費金額信息為基準維度對人群中的每一個人進行聚類后的聚類信息,從而為企業(yè)制定產品生產方向提供了數(shù)據(jù)支持。
2、本發(fā)明實施例提供的人群聚類的方法以及裝置,在當前聚類距離遍歷過程中,基于上一次更新的聚類中心集,根據(jù)第一聚類中心點上次更新前后的自身差值獲取第一距離的預測值,該第一距離的預測值為需要進行數(shù)據(jù)聚類的樣本點與該樣本點距離最近的聚類中心點之間的距離,根據(jù)第二距離、第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,第二距離為上一次聚類距離遍歷過程中第一聚類中心點與第二聚類中心點之間的距離,第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點,將第三距離的預測值與第一距離的預測值進行比較,若第三距離的預測值大于或者等于兩倍的第一距離的預測值時,將該第二聚類中心點丟棄。本發(fā)明中,基于三角形不等式規(guī)則,將聚類中心集中的第三距離的預測值大于或者等于兩倍的第一距離的預測值對應的第二聚類中心點進行過濾,無需計算第二聚類中心點與樣本點之間的距離,也無需計算第二樣本點與其他待遍歷聚類中心點之間的距離,因此,減少了計算第二樣本點與其他待遍歷聚類中心點之間的距離所消耗的時間及計算量,提高了數(shù)據(jù)聚類的計算效率。
本發(fā)明實施例公開了:
A1、一種人群聚類的方法,其特征在于,包括:
獲得針對人群的樣本集以及所述樣本集的聚類中心集,所述樣本集中每個樣本點包括人群中對應的個人的描述信息,所述描述信息至少包括年齡信息、性別信息、愛好信息和消費金額信息;
針對所述樣本集中的每一個樣本點,依次遍歷聚類中心集中的每一個聚類中心點,確定所述每一個樣本點與所述聚類中心集中距離最近的聚類中心點,并將所述每一個樣本點劃分到所述聚類中心集中距離最近的聚類中心點對應的集合中,獲得所述聚類中心集中的每一個聚類中心點對應的聚類集;
獲得所述聚類集中樣本點的平均值,并根據(jù)所述平均值更新所述聚類中心集;
根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值;其中,所述第一距離為需要進行數(shù)據(jù)聚類的樣本點與所述第一聚類中心點之間的距離,所述第一聚類中心點為聚類距離遍歷中與所述樣本點距離最近的聚類中心點;
根據(jù)第二距離、所述第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,其中,所述第二距離為上一次聚類距離遍歷過程中所述第一聚類中心點與第二聚類中心點之間的距離,所述第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點;
按照三角形不等式規(guī)則將所述第一距離的預測值與所述第三距離的預測值進行比較;
若所述第三距離的預測值大于或者等于兩倍的所述第一距離的預測值,則將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
基于已丟棄所述第二聚類中心點的聚類中心集進行所述距離遍歷,獲得所述樣本集的聚類結果,所述聚類結果包括以所述年齡信息、所述性別信息、所述愛好信息和所述消費金額信息為基準維度對所述人群中的每一個人進行聚類后的聚類信息。
A2、根據(jù)A1所述的方法,其特征在于,在所述獲得所述樣本集的聚類結果之后,所述方法還包括:
對所述聚類結果進行分析,以對所述聚類方法進行評價。
A3、根據(jù)A2所述的方法,其特征在于,所述對所述聚類結果進行分析,以對所述聚類方法進行評價,具體包括:
通過熵值驗證算法或純度驗證算法對所述聚類結果進行分析;
在所述熵值驗證算法獲得的所述聚類結果的熵值小于第一預設值時,確定 所述聚類方法滿足預設需求;或者
在所述純度驗證算法獲得的所述聚類結果的純度大于第二預設值時,確定所述聚類方法滿足所述預設需求。
A4、根據(jù)A1所述的方法,其特征在于,所述方法還包括:
若所述第三距離的預測值小于兩倍的所述第一距離的預測值,則根據(jù)上一次更新后的所述第一聚類中心點對所述第二聚類中心點進行數(shù)據(jù)聚類處理。
A5、根據(jù)A3所述的方法,其特征在于,所述根據(jù)上一次更新后的所述第一聚類中心點對所述第二聚類中心點進行數(shù)據(jù)聚類處理,包括:
計算所述上一次更新后的所述第一聚類中心點與所述樣本點之間的距離,得到第一距離的實際值;
按照三角形不等式規(guī)則將所述第一距離的實際值與所述第三距離的預測值進行比較;
若所述第三距離的預測值大于或者等于兩倍的所述第一距離的實際值,則將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
若所述第三距離的預測值小于兩倍的所述第一距離的實際值,則計算第四距離,并確定所述第四距離是否小于所述第一距離的實際值;其中,所述第四距離為所述樣本點與所述第二聚類中心點的距離;
若所述第四距離小于所述第一距離的實際值,則將所述第二聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
若所述第四距離大于或者等于所述第一距離的實際值,則將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
A6、根據(jù)A5所述的方法,其特征在于,所述將所述第二聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點,包括:
若所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷完成,則將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值;
若所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷未完成,則將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值,并基于賦值后的第一聚類中心點及賦值后的第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
A7、根據(jù)A5所述的方法,其特征在于,將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點,包括:
若所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷完成,則將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
若所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷未完成,則基于所述上一次更新后的所述第一聚類中心點以及所述第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
A8、根據(jù)A6或A7所述的方法,其特征在于,在計算第四距離之前,所述方法還包括:
計算第五距離,所述第五距離為所述第二聚類中心點與所述上一次更新后的所述第一聚類中心點之間的距離;
按照三角形不等式規(guī)則將所述第一距離的實際值與所述第五距離進行比較;
若所述第五距離大于或者等于兩倍的所述第一距離的實際值,則將所述第二聚類中心點丟棄,以便進行聚類遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間 的距離;
所述計算第四距離,包括:
若所述第五距離小于兩倍的所述第一距離的實際值,則執(zhí)行所述計算所述第四距離。
A9、根據(jù)A1-A7中任一項所述的方法,其特征在于,所述根據(jù)第二距離、所述第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,包括:
獲取所述第一聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第一聚類中心點更新前后之間的第一差值;
獲取所述第二聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第二聚類中心點更新前后之間的第二差值;
將所述第二距離與所述第一差值及所述第二差值進行減法計算,獲得所述第三距離的預測值。
A10、根據(jù)A7所述的方法,其特征在于,在將所述第二聚類中心點丟棄之后,在所述基于已丟棄所述第二聚類中心點的聚類中心集進行所述距離遍歷,獲得所述樣本集的聚類結果之前,所述方法還包括:
判斷所述當前聚類距離遍歷是否完成;
若未遍歷完成,則繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點;
若遍歷完成,則將上一次更新后的第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
B11、一種人群聚類的裝置,其特征在于,包括:
獲得單元,用于獲得針對人群的樣本集以及所述樣本集的聚類中心集,所述樣本集中每個樣本點包括人群中對應的個人的描述信息,所述描述信息至少包括年齡信息、性別信息、愛好信息和消費金額信息;
聚類集獲得單元,用于針對所述樣本集中的每一個樣本點,依次遍歷聚類中心集中的每一個聚類中心點,確定所述每一個樣本點與所述聚類中心集中距 離最近的聚類中心點,并將所述每一個樣本點劃分到所述聚類中心集中距離最近的聚類中心點對應的集合中,獲得所述聚類中心集中的每一個聚類中心點對應的聚類集;
平均值獲得單元,用于獲得所述聚類集中樣本點的平均值,并根據(jù)所述平均值更新所述聚類中心集;
第一獲取單元,用于根據(jù)第一聚類中心點上一次更新前后的自身差值獲取第一距離的預測值;其中,所述第一距離為需要進行數(shù)據(jù)聚類的樣本點與所述第一聚類中心點之間的距離,所述第一聚類中心點為聚類距離遍歷中與所述樣本點距離最近的聚類中心點;
第二獲取單元,用于根據(jù)第二距離、所述第一聚類中心點上一次更新前后的自身差值以及第二聚類中心點上一次更新前后的自身差值獲取第三距離的預測值,其中,所述第二距離為上一次聚類距離遍歷過程中所述第一聚類中心點與第二聚類中心點之間的距離,所述第二聚類中心點為當前聚類距離遍歷過程中待遍歷的聚類中心點;
比較單元,用于按照三角形不等式規(guī)則將所述第一獲取單元獲取的所述第一距離的預測值與所述第二獲取單元獲取的所述第三距離的預測值進行比較;
丟棄單元,用于當所述比較單元比較的所述第三距離的預測值大于或者等于兩倍的所述第一距離的預測值時,將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
聚類結果獲得單元,用于基于已丟棄所述第二聚類中心點的聚類中心集進行所述距離遍歷,獲得所述樣本集的聚類結果,所述聚類結果包括以所述年齡信息、所述性別信息、所述愛好信息和所述消費金額信息為基準維度對所述人群中的每一個人進行聚類后的聚類信息。
B12、根據(jù)B11所述的裝置,其特征在于,所述裝置還包括:
分析單元,用于在所述聚類結果獲得單元獲得所述聚類結果之后,對對所 述聚類結果進行分析,以對所述聚類方法進行評價。
B13、根據(jù)B12所述的裝置,其特征在于,所述分析單元具體用于通過熵值驗證算法或純度驗證算法對所述聚類結果進行分析,其中,在所述熵值驗證算法獲得的所述聚類結果的熵值小于第一預設值時,確定所述聚類方法滿足預設需求,或者在所述純度驗證算法獲得的所述聚類結果的純度大于第二預設值時,確定所述聚類方法滿足所述預設需求。
B14、根據(jù)B11所述的裝置,其特征在于,所述裝置還包括:
處理單元,用于當所述比較單元比較的所述第三距離的預測值小于兩倍的所述第一距離的預測值時,根據(jù)上一次更新后的所述第一聚類中心點對所述第二聚類中心點進行數(shù)據(jù)聚類處理。
B15、根據(jù)B14所述的裝置,其特征在于,所述處理單元具體用于:計算所述上一次更新后的所述第一聚類中心點與所述樣本點之間的距離,得到第一距離的實際值;
按照三角形不等式規(guī)則將所述第一計算模塊計算的所述第一距離的實際值與所述第三距離的預測值進行比較;
當所述第一比較模塊比較的所述第三距離的預測值大于或者等于兩倍的所述第一距離的實際值時,將所述第二聚類中心點丟棄,以便進行聚類距離遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當所述第一比較模塊比較的所述第三距離的預測值小于兩倍的所述第一距離的實際值,則計算第四距離;其中,所述第四距離為所述樣本點與所述第二聚類中心點的距離;
確定所述第二計算模塊計算的所述第四距離是否小于所述第一距離的實際值;
當所述第一確定模塊確定所述第四距離小于所述第一距離的實際值時,將所述第二聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚 類中心點;
當所述第一確定模塊確定所述第四距離大于或者等于所述第一距離的實際值時,將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
B16、根據(jù)B14所述的裝置,其特征在于,所述計算模塊具體還用于:
當所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷完成時,將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值;
當所述第四距離小于所述第一距離的實際值,并且當前聚類距離遍歷未完成時,將所述第二聚類中心點賦值給所述上一次更新后的所述第一聚類中心點,以及將所述第四距離賦值給所述第一距離的實際值,并基于賦值后的第一聚類中心點及賦值后的第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
B17、根據(jù)B14所述的裝置,其特征在于,所述計算模塊具體還用于:
當所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷完成時,將所述上一次更新后的所述第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點;
當所述第四距離大于或者等于所述第一距離的實際值,并且當前聚類距離遍歷未完成,則基于所述上一次更新后的所述第一聚類中心點以及所述第一距離的實際值繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點。
B18、根據(jù)B16或B17所述的裝置,其特征在于,所述處理單元具體還用于:
在所述第二計算模塊計算的所述第四距離之前,計算第五距離,所述第五距離為所述第二聚類中心點與所述上一次更新后的所述第一聚類中心點之間的距離;
按照三角形不等式規(guī)則將所述第一計算模塊計算的所述第一距離的實際 值與所述第三計算模塊計算的所述第五距離進行比較;
當所述第二比較模塊比較的所述第五距離大于或者等于兩倍的所述第一距離的實際值,則將所述第二聚類中心點丟棄,以便進行聚類遍歷時,不再計算所述樣本點與所述第二聚類中心點之間的距離以及所述第二聚類中心點與其他待遍歷聚類中心點之間的距離;
當所述第二比較模塊比較的所述第五距離小于兩倍的所述第一距離的實際值,則執(zhí)行所述計算所述第四距離。
B19、根據(jù)B11-B17中任一項所述的裝置,其特征在于,所述第二獲取單元,具體用于:
獲取所述第一聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第一聚類中心點更新前后之間的第一差值;
獲取所述第二聚類中心點上一次更新前對應的值及更新后對應的值,并計算所述第二聚類中心點更新前后之間的第二差值;
所述第二距離與所述第一處理模塊計算的所述第一差值及所述第二處理模塊計算的所述第二差值進行減法計算,獲得所述第三距離的預測值。
B20、根據(jù)B17所述的裝置,其特征在于,所述裝置還包括:
判斷單元,在所述丟棄單元將所述第二聚類中心點丟棄之后,判斷所述當前聚類距離遍歷是否完成;
遍歷單元,當所述判斷單元判斷未遍歷完成時,繼續(xù)遍歷所述當前聚類中心集中的下一個聚類中心點;
確定單元,用于當所述判斷單元判斷遍歷完成時,將上一次更新后的第一聚類中心點確定為當前距離遍歷過程中與所述樣本點距離最近的聚類中心點。
本領域內的技術人員應明白,本發(fā)明的實施例可提供為方法、系統(tǒng)、或計算機程序產品。因此,本發(fā)明可采用完全硬件實施例、完全軟件實施例、或結合軟件和硬件方面的實施例的形式。而且,本發(fā)明可采用在一個或多個其中包含有計算機可用程序代碼的計算機可用存儲介質(包括但不限于磁盤存儲器、 CD-ROM、光學存儲器等)上實施的計算機程序產品的形式。
本發(fā)明是參照根據(jù)本發(fā)明實施例的方法、設備(系統(tǒng))、和計算機程序產品的流程圖和/或方框圖來描述的。應理解可由計算機程序指令實現(xiàn)流程圖和/或方框圖中的每一流程和/或方框、以及流程圖和/或方框圖中的流程和/或方框的結合??商峁┻@些計算機程序指令到通用計算機、專用計算機、嵌入式處理機或其他可編程數(shù)據(jù)處理設備的處理器以產生一個機器,使得通過計算機或其他可編程數(shù)據(jù)處理設備的處理器執(zhí)行的指令產生用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的裝置。
這些計算機程序指令也可存儲在能引導計算機或其他可編程數(shù)據(jù)處理設備以特定方式工作的計算機可讀存儲器中,使得存儲在該計算機可讀存儲器中的指令產生包括指令裝置的制造品,該指令裝置實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能。
這些計算機程序指令也可裝載到計算機或其他可編程數(shù)據(jù)處理設備上,使得在計算機或其他可編程設備上執(zhí)行一系列操作步驟以產生計算機實現(xiàn)的處理,從而在計算機或其他可編程設備上執(zhí)行的指令提供用于實現(xiàn)在流程圖一個流程或多個流程和/或方框圖一個方框或多個方框中指定的功能的步驟。
顯然,本領域的技術人員可以對本發(fā)明進行各種改動和變型而不脫離本發(fā)明的精神和范圍。這樣,倘若本發(fā)明的這些修改和變型屬于本發(fā)明權利要求及其等同技術的范圍之內,則本發(fā)明也意圖包含這些改動和變型在內。