聚類的基本問題及兩個常用演算法
一、聚類的定義及其兩個基本問題
Data clustering is the task of partitioning a set of objects into groups such that the similarity of objects within each group is higher than that of objects across groups.
To cluster data, we need:
A distance measure (to quantify how similar or dissimilar two objects are)
An algorithm for clustering the data based on the distance measure
1、Distance measure
point and point distance
point and cluster distance:等價於point與cluster center point的距離
cluster and cluster distance:等價於cluster center points的距離
2、The Closest-Pair Problem
找出P中距離最近的兩個點:
(1)Brute force algorithm: 時間複雜度為O()
(2)Divide and conquer algorithm: 時間複雜度O(n(logn)^2)
FastClosestPair的recurrences:
T(n) = 2T(n/2) + f(n) ,f(n)為ClosestPairStrip時間複雜度O(nlogn)
T(2) = O(1)
ClosestPairStrip時間複雜度:O(nlogn)
二、兩種常用聚類演算法
1、Hierarchical Clustering 層次聚類
演算法思想:給定data、目標簇數k
step1:首先把每個點當成一個簇
step2:找到最近的兩個簇,把它們合併成一個簇
step3:重複step2直到只剩下k個簇
2、K-means Clustering K均值聚類
演算法思想:給定data、目標簇數k、迭代次數q
step1:初始化k個centers(如何初始化?)
step2:把每個點分配到離它最近的center
step3:屬於同一個center的點構成一個cluster
step4:重新計算每個cluster的center
step5:重複step2-4 q次
時間複雜度:O(qkn)
3、如何選擇一個合適的k?
通常情況下,我們並不知道應該聚成多少類,因此我們會選擇不同的k,比較聚出來的簇的質量,衡量簇的質量用error of a cluster:
參考資料:Coursera Algorithmic Thinking, Rice University.
相關文章
- 常用聚類演算法以及演算法評價聚類演算法
- 聚類演算法——DBSCAN演算法原理及公式聚類演算法公式
- C++ 中兩個類互相引用的問題C++
- 25 個最基本的 JavaScript 面試問題及答案JavaScript面試
- 25個最基本的JavaScript面試問題及答案JavaScript面試
- 聚類演算法聚類演算法
- 聚類之K均值聚類和EM演算法聚類演算法
- 聚類(part3)--高階聚類演算法聚類演算法
- Spark中的聚類演算法Spark聚類演算法
- 部分聚類演算法簡介及優缺點分析聚類演算法
- 機器學習中的聚類演算法演變及學習筆記機器學習聚類演算法筆記
- OPTICS聚類演算法原理聚類演算法
- 初探DBSCAN聚類演算法聚類演算法
- 聚類演算法綜述聚類演算法
- DBSCAN密度聚類演算法聚類演算法
- BIRCH聚類演算法原理聚類演算法
- 聚類之dbscan演算法聚類演算法
- Meanshift,聚類演算法聚類演算法
- Oracle常用問題及解答Oracle
- 14聚類演算法-程式碼案例六-譜聚類(SC)演算法案例聚類演算法
- SDWebImage的基本用法及常見問題Web
- 09聚類演算法-層次聚類-CF-Tree、BIRCH、CURE聚類演算法
- 各類聚類(clustering)演算法初探聚類演算法
- 可伸縮聚類演算法綜述(可伸縮聚類演算法開篇)聚類演算法
- sklearn建模及評估(聚類)聚類
- 手寫一個HTTP框架:兩個類實現基本的IoC功能HTTP框架
- 聚類模型的演算法效能評價聚類模型演算法
- 04聚類演算法-程式碼案例一-K-means聚類聚類演算法
- 深度聚類演算法淺談聚類演算法
- 深度聚類演算法敘談聚類演算法
- 今天解決的兩個問題
- [javascript]搞清this的指向只需問兩個問題JavaScript
- 兩個資料訪問受限的問題
- 【Python機器學習實戰】聚類演算法(1)——K-Means聚類Python機器學習聚類演算法
- 兩個小問題深入淺出List的效能問題
- 機器學習Sklearn系列:(五)聚類演算法機器學習聚類演算法
- K-means聚類演算法聚類演算法
- k-means 聚類演算法聚類演算法