K-means真的不能使用曼哈頓距離嗎?


1.問題      

說到k-means聚類算法,想必大家已經對它很熟悉了,它是基於距離計算的經典無監督算法,但是有一次在我接受面試時,面試官問了我一個問題:“k-means為什么不能使用曼哈頓距離計算,而使用歐式距離進行計算?”,當時我頓時懵了,心想:‘難道不都可以嗎?’,我只能說都可以,然后面試官給了我一個眼神,“你回去查查吧,看看到底為什么”,然后我就回家啦。這是我后來在網上找到的回答,如下圖:

 

       

2.k-means基本思想:

                     1.在樣本數據中隨機設置n個聚類中心(Xi,Yi),假設數據只有二維;

                     2.計算樣本數據距離聚類中心(Xi,Yi)距離Di,並各自歸屬到距離自己最近的中心點;

                     3.各個匯聚到一起的簇計算各自的平均值,將新的平均值作為新的中心點;

                     4.然后重復2、3兩步,直到中心點的移動范圍小於閾值或達到循環最大次數。

3.距離公式

                                                                            

                                                                                    歐式距離也叫歐幾里得距離,也是最廣泛使用的距離計算公式,指n維空間中兩點間的直線距離

 

                                                                                    曼哈頓距離指同一坐標系下兩點差的絕對值之和

 

                                                                                    多說一個,余弦距離指空間中原點與兩點連線所夾角度的大小

 

4.分析

          那到底k-means、knn能不能用曼哈頓計算呢,如第一張圖片所示,這是別人的答案,表示曼哈頓具有維度限制,真的是這樣嗎,我認為並不是這樣的,大家都知道曼哈頓距離可以計算二維空間兩點距離,那么嘗試在三維空間進行計算,由此可以推廣到高維空間,如下手畫圖所示:

一個2x2x2的立方體,坐落在三維坐標軸上,點A(2,2,0),點C(0,0,2),求AC的曼哈頓距離,根據曼哈頓公式計算得:

|0-2|+|0-2|+|2-0|=6,顯而易見,實際距離也是6,路線有很多條,但結果都是一樣的。

5.結論

        綜上所述,曼哈頓距離適合k-means,只是各種距離算法可能需要在不同業務場景或數據下選擇使用。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM