Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn THUẬT TOÁN DBSCAN (Nguồn: A Density-Based Algorithm for Discovering Clusters in Large Spatial Databases with Noise Martin Ester, Hans-Peter Kriegel, Jörg Sander, Xiaowei Xu Institute for Computer Science, University of Munich Oettingenstr 67, D-80538 München, Germany {ester | kriegel | sander | xwxu}@informatik.uni-muenchen.de) Thuật toán DBSCAN ((Density Based Spatial Clustering of Applications with Noise) Martin Ester tác giả khác đề xuất thuật toán gom tụm dựa mật độ, hiệu với sở liệu lớn, có khả xử lý nhiễu Ý tưởng thuật toán vùng lân cận đối tượng cụm có số đối tượng lớn ngưỡng tối thiểu Hình dạng vùng lân cận phụ thuộc vào hàm khoảng cách đối tượng (nếu sử dụng khoảng cách Manhattan không gian chiều vùng lân cận có hình chữ nhật, sử dụng khoảng cách Eucler không gian chiều vùng lân cận có hình tròn) Các đối tượng cụm phân làm loại: đối tượng bên cụm (core point: đối tượng lõi) đối tượng nằm đường biên cụm (border point: đối tượng biên) Hình Đối tượng biên đối tuợng lõi I Định nghĩa Định nghĩa Vùng lân cận Eps đối tượng p, ký hiệu NEps(p) tập hợp đối tượng q cho khoảng cách p q dist(p,q) nhỏ Eps NEps(p) = {q∈D | dist(p,q) ≤ Eps} Tính chất: - Nói chung vùng lân cận đối tượng biên có số đối tượng đáng kể so đối tượng biên Định nghĩa Đối tượng p tới trực mật độ (directly density-reachable) thỏa Eps, MinPts từ đối tượng q p∈NEps(q) |NEps(q)| ≥ MinPts Data Minning –DBSCAN Trang 1/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn Tính chất: - Nếu p, q core point quan hệ directly density-reachable đối xứng nghĩa p tới trực mật độ từ q ngược lại - Nếu p, q có đối tượng lõi (core point), đối tượng biên hình đối tượng biên có tới trực mật độ từ đối tượng lõi mà chiều ngược lại (bất đối xứng) Hình Quan hệ tới trực mật độ Định nghĩa Đối tượng p tới theo mật độ (density-reachable) thỏa Eps, MinPts từ đối tượng q tồn dãy p1, p2, , pn (p1 =q, pn= p) cho pi+1 tới theo mật độ trực tiếp từ pi Tính chất: - Quan hệ density-reachable mở rộng directly density-reachable - Quan hệ density-reachable có tính bắt cầu - Nếu p, q đối tượng lõi (core point) quan hệ density-reachable đối xứng nghĩa p tới theo mật độ từ q ngược lại - Nếu p, q đối tượng biên (border point) p không tới theo mật độ từ q ngược lại - Nếu p, q có đối tượng lõi (core point), đối tượng biên hình đối tượng biên có tới theo mật độ từ đối tượng lõi mà chiều ngược lại (bất đối xứng) Hình Quan hệ tới theo mật độ Data Minning –DBSCAN Trang 2/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn Định nghĩa Đối tượng p kết nối theo mật độ (density-connected) thỏa Eps, MinPts với đối tượng q tồn đối tượng o cho p q tới theo mật độ từ o Tính chất: - Đối với đối tượng tới theo mật độ với đối tượng khác, quan hệ density-connected có tính phản xạ - Quan hệ density-connected có tính đối xứng Hình Quan hệ kết nối theo mật độ Định nghĩa Cho sở liệu D, cụm C thỏa Eps MinPts tập khác rỗng D thỏa điều kiện sau: 1) ∀p,q: p ∈C q liên hệ theo mật độ từ p thỏa Eps MinPts q∈C 2) ∀p,q∈C: p kết nối theo mật độ với p thỏa Eps MinPts Cụm C thỏa định nghĩa có MinPts đối tượng lý sau: C phải có đối tượng p (C khác rỗng), p phải liên hệ mật độ với thân thông qua đối tượng o (điều kiện định nghĩa 5) Vì vậy, o đối tượng lõi vùng lân cận Eps o có MinPts đối tượng (do p có liên hệ mật độ từ o) Định nghĩa Cho cụm C1 , ., Ck sở liệu D với tham số Epsi and MinPtsi, (i = 1, , k) Tập nhiễu tập đối tượng thuộc D không thuộc cụm Ci noise = {p∈D | ∀i: p ∉ Ci} II Bổ đề Bổ đề Cho p đối tượng D |NEps(p)| ≥ MinPts Tập O = {o | o∈D o tới theo mật độ từ p thỏa Eps and MinPts} cụm thỏa Eps and MinPts Bổ đề Gọi C cụm thỏa Eps MinPts, p đối tượng thuộc C cho | NEps(p)| ≥ MinPts Khi tập C tương đương với tập O = {o | o tới theo mật độ từ p thỏa Eps and MinPts} Data Minning –DBSCAN Trang 3/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn III Thuật toán Thuật toán DBSCAN (Density Based Spatial Clustering of Applications with Noise) thuật toán gom tụm đối tượng sở liệu không gian thỏa mãn định nghĩa Ứng với thông số Eps, MinPts cho trước, DBSCAN xác định cụm thông qua bước: 1) chọn đối tượng thỏa mãn điều kiện đối tượng lõi làm đối tuợng hạt giống; 2) tìm đối tượng tới đuợc theo mật độ từ đối tượng hạt giống Trong trường hợp lý tưởng ứng với cụm, cần phải xác định thông số Eps, MinPts đối tượng thuộc cụm; sau đó, tìm tất đối tượng cho cụm Tuy nhiên, không dễ xác định thông tin nhanh chóng xác nên DBSCAN sử dụng thông số Eps, MinPts cụm có mật độ dày đặc làm thông số chung cho tất cụm Các thông số xác định thông qua thuật toán heuristic (xem phần IV) Để tìm cụm, thuật toán DBSCAN đối tượng sau tìm tất đối tượng tới theo mật độ thỏa Eps and MinPts từ đối tượng p Nếu p đối tượng lõi, bước sinh cụm thỏa Eps and MinPts (xem bổ đề 2) Nếu p đối tượng biên không tìm đối tượng tới theo mật độ từ p, DBSCAN duyệt đối tượng sở liệu Vì sử dụng chung thông số Eps MinPts cho tất cụm nên DBSCAN kết hợp cụm thỏa định nghĩa thành cụm hai cụm gần Khoảng cách tập đối tượng S S2, ký hiệu dist (S1, S2) giá trị khoảng cách nhỏ đối tượng p, q thuộc S1, S2: dist (S1, S2) = min{dist(p,q) | p∈S1, q∈S2} Hai tập đối tượng cụm tách khoảng cách chúng lớn hớn Eps (Then, two sets of points having at least the density of the thinnest cluster will be separated from each other only if the distance between the two sets is larger than Eps) Vì vậy, thuật toán DBSCAN cần phải gọi đệ qui để loại trừ cụm có số đối tượng lớn Vấn đề không khó giải DBSCAN cung cấp thuật toán cở hiệu • Mã giã thuật toán DBSCAN DBSCAN (SetOfPoints, Eps, MinPts) // SetOfPoints is UNCLASSIFIED (UNCLASSIFIED :chưa phân lớp) ClusterId := nextId(NOISE); FOR i FROM TO SetOfPoints.size DO Point := SetOfPoints.get(i); IF Point.ClId = UNCLASSIFIED THEN IF ExpandCluster(SetOfPoints, Point,ClusterId, Eps, MinPts) THEN ClusterId := nextId(ClusterId) END IF END IF END FOR END; // DBSCAN SetOfPoints toàn đối tượng sở liệu cụm khám phá bước trước Eps MinPts thông số xác định tay thông qua thuật toán heuristics (xem mục IV) Hàm SetOfPoints.get(i) trả thành phần thứ i SetOfPoints, hàm ExpandCluster để tạo cụm từ đối tượng lõi Data Minning –DBSCAN Trang 4/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn • Mã giả hàm ExpandCluster ExpandCluster(SetOfPoints, Point, ClId, Eps,MinPts) : Boolean; seeds:=SetOfPoints.regionQuery(Point,Eps); IF seeds.size= MinPts THEN FOR i FROM TO result.size DO resultP := result.get(i); IF resultP.ClId IN {UNCLASSIFIED, NOISE} THEN IF resultP.ClId = UNCLASSIFIED THEN seeds.append(resultP); END IF; SetOfPoints.changeClId(resultP,ClId); END IF; // UNCLASSIFIED or NOISE END FOR; END IF; // result.size >= MinPts seeds.delete(currentP); END WHILE; // seeds Empty RETURN True; END IF END; // ExpandCluster Hàm SetOfPoints.regionQuery(Point,Eps) trả vùng lân cận Eps đối tượng Point tập SetOfPoints Có thể sử dụng cấu trúc R* để thực hiệu phép toán Giá trị ClId (clusterId) đối tượng có trị NOISE (nhiễu) thay đổi đối tượng có tới theo mật độ từ đối tượng khác Các đối tượng không thêm vào danh sách đối tượng hạt giống (đối tượng đại diện cho cụm) đối tượng đối tượng lõi (core point) Nếu cụm C1 C2 gần nhau, có số đối tượng p nằm cụm C1 C2 Khi đó, p đối tượng nằm biên cụm không C1 C2 trùng DBSCAN sử dụng thông số Eps MinPts cho tất cụm Trong trường hợp này, đối tượng p thuộc cụm phát trước Ngoại trừ tình xảy này, kết DBSCAN độc lập với thứ tự đối tượng duyệt bổ đề Data Minning –DBSCAN Trang 5/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn IV Xác định thông số Eps and MinPts Thông số Eps MinPts cho thuật toán DBSCAN xác định tay thông qua thuật toán heuristics xác định thông số Eps MinPts cho cụm có mật độ dày đặc Thuật toán dựa quan sát sau: Gọi d khoảng cách đối tượng p đối tượng gần thứ k vùng lân cận d đối tượng p chứa k+1 đối tượng (hoặc nhiều k+1 đối tượng nhiều đối tượng có khoảng cách đến p) Thay đổi giá trị k không dẫn đến thay đổi lớn giá trị d trừ k đối tượng nằm xấp xỉ đường thẳng Với giá trị k cho trước, hàm k-dist khoảng cách từ đối tượng đến đối tượng gần thứ k Tạo đồ thị sorted k-dist cách xếp đối tượng theo giá trị kdist giảm dần Nếu chọn đối tượng p, đặt thông số Eps k-dist(p) MinPts k, đối tượng có khoảng cách với p nhỏ giá trị k-dist thuộc cụm tạo đối tượng p Nếu tìm đối tượng ngưỡng với giá trị k-dist lớn cụm mỏng D, ta tìm giá trị thông số mong muốn Đối tượng ngưỡng đối tượng vùng lõm đồ thị sorted k-dist (xem hình 5) Tất đối tượng với giá trị k-dist cao (bên trái đối tượng ngưỡng) xem nhiễu Các đối tượng lại (bên phải đối tượng ngưỡng) thuộc cụm Hình Đồ thị sorted 4-dsit Nói chung, khó xác dịnh tự động vùng lõm với người dùng xác định dễ dàng cách quan sát đồ thị DBSCAN cần hai thông số: Eps MinPts Tuy nhiên, kết thí nghiệm cho thấy đồ thị k-dist với k > không khác biệt nhiều so với đồ thị sorted 4-dist chi phí tính toán lại tăng đáng kể Vì vậy, ta loại trừ thông số MinPts cách cho MinPts Tóm lại, thông số Eps MinPts cho thuật toán DBSCAN xác định qua bước sau: - Hệ thống tính toán hiển thị đồ thị sorted 4-dist - Nếu người dùng ước tính số phần trăm nhiễu hệ thống đề nghị đối tượng ngưỡng theo số phần trăm nhiễu người dùng nhập vào - Người dùng chấp nhận đối tượng ngưỡng đề nghị chọn đối tượng khác làm đối tượng ngưỡng Giá trị 4-dist đối tượng ngưỡng sử dụng làm thông số Eps cho thuật toán DBSCAN Data Minning –DBSCAN Trang 6/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn V Điểm mạnh thuật toán - Khám phá cụm có hình dáng Chỉ cần thông số đầu vào (số phần trăm nhiễu) Có thể thay đổi quy mô (scalability): hiệu sở liệu lớn Có khả xử lý nhiễu Data Minning –DBSCAN Trang 7/7 ... than Eps) Vì vậy, thuật toán DBSCAN cần phải gọi đệ qui để loại trừ cụm có số đối tượng lớn Vấn đề không khó giải DBSCAN cung cấp thuật toán cở hiệu • Mã giã thuật toán DBSCAN DBSCAN (SetOfPoints,... Minning DBSCAN Trang 3/7 Nguyễn Hoài Phương –CH0403014- Email: phuongnh@dsp.com.vn III Thuật toán Thuật toán DBSCAN (Density Based Spatial Clustering of Applications with Noise) thuật toán gom... xác nên DBSCAN sử dụng thông số Eps, MinPts cụm có mật độ dày đặc làm thông số chung cho tất cụm Các thông số xác định thông qua thuật toán heuristic (xem phần IV) Để tìm cụm, thuật toán DBSCAN