DBSCAN 分群演算法介紹與實際應用範例
以前在開發 Chrome 擴充 NimoTab 時,有 1 個功能需要將相似/相同的網頁標題分群在一起,例如下圖:
當時用的是土炮的方法(但其實類似 DBSCAN),不過後來跟從事機器學習的同事討教有沒有更好的做法時,才知道有 1 個稱為 DBSCAN 的演算法可以使用。
本文將介紹 DBSCAN 這個實用的分群演算法,並以實際範例展示如何做到將相似的資料分群在一起,藉此讓大家對 DBSCAN 有更深入的理解。
以前在開發 Chrome 擴充 NimoTab 時,有 1 個功能需要將相似/相同的網頁標題分群在一起,例如下圖:
當時用的是土炮的方法(但其實類似 DBSCAN),不過後來跟從事機器學習的同事討教有沒有更好的做法時,才知道有 1 個稱為 DBSCAN 的演算法可以使用。
本文將介紹 DBSCAN 這個實用的分群演算法,並以實際範例展示如何做到將相似的資料分群在一起,藉此讓大家對 DBSCAN 有更深入的理解。
Floyd-Warshall 演算法,又稱佛洛伊德演算法,主要用於找出圖(graph)中所有頂點之間的最短路徑,它也能用來偵測圖中是否存在閉環(cycle)。
本文將使用 Python 學習 Floyd-Warshall 演算法,並且以找出城市與城市之間最便宜機票組合作為應用範例,讓讀者對 Floyd-Warshall 演算法有深入的了解。
Posted on Aug 16, 2024 in Python 程式設計 - 初階 , 演算法 by Amo Chen ‐ 4 min read
最近接觸了一些牌類遊戲的開發,發現如何洗牌也是 1 個學問,所以特別查了一個重要的演算法 Fisher-Yates Shuffle / Knuth Shuffle ,發現 Python 的 random.shuffle() 也使用相同的演算法實作,所以特別將 Fisher-Yates Shuffle / Knuth Shuffle 實作細節與視覺化做出來,希望可以讓不熟悉的人也能迅速上手。
Posted on Jul 4, 2024 in Python 程式設計 - 初階 , 演算法 by Amo Chen ‐ 3 min read