2011-09-21 18 views
5

Có thể nhận các cụm km km giống nhau cho mỗi lần thực hiện cho một tập dữ liệu cụ thể hay không. Cũng giống như cho một giá trị ngẫu nhiên, chúng ta có thể sử dụng một hạt giống cố định. Có thể dừng ngẫu nhiên phân cụm không?k-means: Các cụm giống nhau cho mỗi lần thực hiện

Trả lời

4

Có, gọi set.seed(foo) ngay trước khi chạy kmeans(....) sẽ cung cấp cùng một khởi đầu ngẫu nhiên và do đó cùng một cụm mỗi lần. foo là một hạt giống, như 42 hoặc một số giá trị số khác.

+0

chỉ cần thêm để đáp ứng Andrie và Gavin, tôi đã thử nghiệm rằng ngay cả khi chúng tôi đặt 'tranh luận nstart' trong các kmeans() lớn hơn 1, tức là có nhiều lần lặp ngẫu nhiên, việc set.seed() sẽ nhận được kết quả giống hệt nhau. –

13

Có. Sử dụng set.seed để đặt hạt giống cho giá trị ngẫu nhiên trước khi thực hiện phân cụm.

Sử dụng ví dụ trong kmeans:

set.seed(1) 
x <- rbind(matrix(rnorm(100, sd = 0.3), ncol = 2), 
      matrix(rnorm(100, mean = 1, sd = 0.3), ncol = 2)) 
colnames(x) <- c("x", "y") 


set.seed(2) 
XX <- kmeans(x, 2) 

set.seed(2) 
YY <- kmeans(x, 2) 

Kiểm tra đẳng thức:

identical(XX, YY) 
[1] TRUE 
+1

+1 cho ví dụ –

+0

Cảm ơn một triệu vì sự trợ giúp tuyệt vời này! Vui lòng chấp nhận OP. – slotishtype

Các vấn đề liên quan