問題與不足(KNN演算法)

2021-07-25 12:57:20 字數 1966 閱讀 9953

問題與不足

**題目:k-nearestneighbors on road networks: a journey in experimentation and in-memoryimplementation

一、主要內容

該**主要研究了k nearest neighbor演算法在主存中的應用,介紹了

五種解決knn演算法的經典演算法,分別是incremental networkexpansion (ine)演算法,incremental euclidean restriction(ier)演算法,distance browsing演算法,route overlay and associationdirectory(road)演算法以及g-tree演算法。

本人通過查閱一系列資料對上述演算法有了一定了解,並總結了上訴演算法在實際應用的某些方面中存在的問題。

二、演算法中存在的問題

1.incremental network expansion

incremental network expansion(ine)採用了dijkstra演算法中的貪心思想,通過不斷搜尋與節點q最近的節點來擴充套件答案。ine演算法的優點是思路清晰,實現簡單,在資料量較小的情況下可以快速解決問題,並具有較高的準確性。但是該演算法在面對海量資料時顯得力不從心。特別是實際生活中物體之間的距離大多數需要用歐式距離來描述,遇到與複雜街區中的建築物相關問題時,衡量建築物之間的距離本身就是乙個複雜的問題,所以難以比較網路中點的「實際距離」。其次,實際生活中抽象出的圖往往是極其稠密的完全圖,此時ine演算法將難以使用優先佇列來優化時間複雜度,因為採用儲存優先佇列儲存其他頂點到目標節點q距離時,該演算法時間複雜度可以達到o(|w|log|v|),其中v為圖中頂點的數量,w為圖中邊的數量,此時w與v2的數量級相同,優化後的演算法複雜度反而高過了樸素演算法o(v2)的時間複雜度。

2.incremental euclidean restriction

incremental euclidean restriction (ier) 演算法借助了r-tree之類的資料結構來進行預處理,是ine演算法的一種優化演算法。ier演算法在實際資料的測試結果中快於普通的ine演算法,但是ier演算法無法保證r-tree預處理出來的集合一定包含優化解,極端情況下可能不包含所有的優化解,此時達到演算法的最差時間複雜度,其最差時間複雜度與inr演算法相同。也就是說,在實際應用中,ier演算法可能出現不穩定的情況。

3.distance browsing

distance browsing(disbrw)演算法利用silc索引減少了大量的優先佇列插入操作,因而有更高的效率。但是採用優先佇列儲存其他頂點到目標節點q距離時,disbrw演算法依然無法避免部分節點多次重複入隊出隊的操作,使得部分情況下disbrw演算法對ine演算法的優化不明顯。

4.route overlay & association directory

route overlay and association directory (road)演算法通過劃分冗餘網路子系統和排除無效子系統的搜尋剪枝優化了ine演算法巨大的搜尋空間,時空效率比ine有了明顯的提公升。

road演算法利用捷徑的概念避免了ine中大量沒有必要的搜尋,在一般情況下,road演算法具有良好的平均時空複雜度,但是road演算法的效率依賴於圖劃分的優劣,也具有一定的不穩定性。

5.g-tree

g-tree演算法提供了一種新的圖區域劃分和層次劃分方法,並就圖的層次結構建立了一顆平穩的g-tree樹,擁有穩定而高效的時間複雜度,同時該樹空間複雜度也很穩定,為o(|v|log|v|),其中v為頂點數量。

g-tree演算法的主要問題在於其使用了複雜的資料結構和模型,其時間效率與演算法本身距離矩陣的實現方式密切相關,針對不同規模和分布的資料使用不同的雜湊表擁有不同的效率,這意味著g-tree演算法的實際應用較為複雜。

KNN演算法原理與實現

knn k nearest neighbors 演算法不需要訓練過程,直接利用樣本之間的距離進行分類。演算法的基本過程是 給定乙個測試樣例,分別計算它與訓練集中所有樣本之間的距離,選取距離最小的k個訓練樣本對測試樣例的類別進行投票,最後將得票最多 在k個樣本中最多的類別 作為測試樣例的 類別。需要注...

思考與改進(KNN演算法)

思考與改進 題目 k nearestneighbors on road networks a journey in experimentation and in memoryimplementation 一 主要內容 k nearest neighbor問題是機器學習中的最經典 最簡單,同時也相當重...

KNN 與 K Means 演算法比較

knn k means 1.分類演算法 聚類演算法 2.監督學習 非監督學習 3.資料型別 餵給它的資料集是帶label的資料,已經是完全正確的資料 餵給它的資料集是無label的資料,是雜亂無章的,經過聚類後才變得有點順序,先無序,後有序 4.訓練過程 沒有明顯的前期訓練過程,屬於memory b...