ROCK (RObust Clustering using linKs) là một thuật toán phân cụm phân cấp cho các thuộc tính phạm trù (định danh) [10], khám phá các khái niệm về liên kết (số lƣợng của hàng xóm chung giữa hai đối tƣợng) với dữ liệu là các thuộc tính phạm trù. Thuật toán phân cụm truyền thống phân cụm dữ liệu với các thuộc tính Boolean và phân cụm sử dụng hàm tính khoảng cách. Tuy nhiên, các thực nghiệm cho thấy rằng các biện pháp khoảng cách nhƣ vậy cho kết quả phân cụm dữ liệu không cao với dữ liệu phạm trù. Hơn thế nữa, hầu hết các thuật toán phân cụm chỉ đánh giá sự tƣơng tự giữa các điểm khi phân cụm, có nghĩa là ở mỗi bƣớc các điểm tƣơng tự nhất đƣợc sát nhập vào một cụm duy nhất. Cách tiếp cận này “địa phƣơng hóa” dễ bị lỗi. Ví dụ, hai cụm riêng biệt có thể có một vài điểm hoặc giá trị ngoại lai ở gần, do vậy dựa trên sự tƣơng tự giữa các điểm để đƣa ra quyết định phân cụm có thể gây ra hai cụm đƣợc sát nhập. ROCK có cách tiếp cận toàn cục hơn với việc nhóm bằng cách xem xét các vùng lân cận của các cặp điểm riêng
rẽ. Nếu hai điểm tƣơng tự là láng giềng của nhau thì hai điểm có thể thuộc cùng một cụm và nhƣ vậy có thể đƣợc sáp nhập.
Thật vậy, hai điểm pi và pj là láng giềng của nhau nếu sim(pi, pj) , trong đó sim là hàm tƣơng tự và là một ngƣỡng dùng quy định. Chúng ta có thể chọn sim là một khoảng cách số hoặc thậm chí không phải là khoảng cách số đƣợc chuẩn hóa để giá trị của nó nằm trong khoảng 0 và 1, với giá trị lớn hơn cho thấy rằng các điểm tƣơng tự hơn. Số lƣợng các liên kết giữa pi và pj đƣợc định nghĩa là số lƣợng các láng giềng chung giữa pi và pj. Nếu số lƣợng các liên kết giữa hai điểm là lớn, khi đó nó có nhiều khả năng thuộc về cùng một cụm. Bằng việc xem xét các điểm dữ liệu lân cận trong mối quan hệ giữa các cặp cá thể của các điểm, ROCK là đáng tin cậy hơn nhiều so với các phƣơng pháp phân cụm chuẩn mà chỉ tập trung vào sự tƣơng tự của các điểm.
ROCK là một biện pháp tốt để sử dụng đánh giá các phân cụm. Lấy mẫu ngẫu nhiên đƣợc sử dụng để mở rộng các tập dữ liệu lớn. Độ phức tạp xấu nhất của thuật toán ROCK là O(n2+nmmma+n2logn) trong đó mm và ma tƣơng ứng là số lƣợng tối đa và trung bình của láng giềng, và n là số của các đối tƣợng.