tôi đã tập hợp dữ liệu (5000 điểm với 4 kích thước) mà tôi đã sử dụng cụm kmeans trong R.đặt hàng điểm clustered sử dụng Kmeans và R
Tôi muốn đặt hàng các điểm trong mỗi cụm theo khoảng cách của họ để trung tâm của cụm đó.
Rất đơn giản, các dữ liệu trông như thế này (tôi đang sử dụng một tập hợp con để kiểm tra các cách tiếp cận khác nhau):
id Ans Acc Que Kudos
1 100 100 100 100
2 85 83 80 75
3 69 65 30 29
4 41 45 30 22
5 10 12 18 16
6 10 13 10 9
7 10 16 16 19
8 65 68 100 100
9 36 30 35 29
10 36 30 26 22
Thứ nhất, tôi đã sử dụng phương pháp sau đây để cụm dataset thành 2 cụm:
(result <- kmeans(data, 2))
này trả về một đối tượng kmeans rằng có những điều sau methods: cluster, centers etc.
Nhưng tôi canno t tìm ra cách so sánh từng điểm và tạo ra một danh sách có thứ tự.
Thứ hai, tôi cố gắng tiếp cận seriation theo đề nghị của một người dùng khác SO here
tôi sử dụng các lệnh này:
clus <- kmeans(scale(x, scale = FALSE), centers = 3, iter.max = 50, nstart = 10)
mns <- sapply(split(x, clus$cluster), function(x) mean(unlist(x)))
result <- dat[order(order(mns)[clus$cluster]), ]
Mà dường như để tạo ra một danh sách có thứ nhưng nếu tôi gắn nó vào nhãn các cụm (sử dụng lệnh cbind sau đây):
result <- cbind(x[order(order(mns)[clus$cluster]), ],clus$cluster)
Tôi nhận được kết quả sau, dường như không theo thứ tự chỉnh sửa chính xác:
id Ans Acc Que Kudos clus
1 3 69 65 30 29 1
2 4 41 45 30 22 1
3 5 10 12 18 16 2
4 6 10 13 10 9 2
5 7 10 16 16 19 2
6 9 36 30 35 29 2
7 10 36 30 26 22 2
8 1 100 100 100 100 1
9 2 85 83 80 75 2
10 8 65 68 100 100 2
Tôi không muốn viết lệnh willy-nilly nhưng hiểu cách thức hoạt động của phương pháp. Nếu bất cứ ai có thể giúp đỡ hoặc phát tán một số ánh sáng về điều này, nó sẽ thực sự tuyệt vời.
EDIT :::::::::::
Như các cụm có thể dễ dàng vẽ, tôi tưởng tượng có một cách đơn giản hơn để có được và xếp hạng các khoảng cách giữa các điểm và trung tâm.
Các trung tâm cho các cụm trên (khi sử dụng k = 2) như sau. Nhưng tôi không biết làm thế nào để có được và so sánh điều này với mỗi điểm riêng lẻ.
Ans Accep Que Kudos
1 83.33333 83.66667 93.33333 91.66667
2 30.28571 30.14286 23.57143 20.85714
NB ::::::::
Tôi không cần kmeans sử dụng hàng đầu nhưng tôi muốn xác định số lượng các cụm và lấy một danh sách có thứ tự các điểm từ những cụm.
Đây là câu hỏi hay ... kiểm tra xem bạn không sử dụng ID để cụm (Tôi đoán có những trường hợp bạn có thể muốn, nhưng không chắc) – Seth
Tuyệt, tôi không muốn cụm các id, giám sát thay mặt tôi. Tôi sẽ sửa đổi câu hỏi. thanks..j – slotishtype
Tôi tin rằng 'kmeans()' cũng trả về các trung tâm cụm cuối cùng.Từ đó, không nên quá khó để tính toán khoảng cách từ mỗi điểm đến trung tâm cụm của nó. –