amap
패키지의 Kmeans
기능에서 경고 메시지를 처리하는 솔루션을 찾고 있습니다. 경고 메시지는 다음과 같습니다.K-means 기능에서 "빈 클러스터"경고를 어떻게 처리 할 수 있습니까?
empty cluster: try a better set of initial centers
.
어쨌든 신호를받을 수 있습니까? 그렇다면이 오류 메시지가 발생했을 때 알 수 있고 문제를 처리 할 수 있습니까? (예 : 반환 값이있을 때까지 알고리즘을 실행하면 빈 클러스터가 없음)
멋진 재현 가능한 예제를 만드는 것은 어렵습니다. 그러나,이 추악한하지만 기능과 함께 제공 : 당신이 터미널에서이 작업을 실행하면
library(amap)
numberK = 20
ts.len = 7
time.series <- rep(sample(1:8000, numberK, replace = TRUE),ts.len)
time.series <- rep(rbind(time.series, time.series), 30)
time.series <- matrix(time.series, ncol = ts.len)
centers <- matrix(sample(1:3000, numberK*ts.len), ncol = ts.len)
Kmeans((time.series), centers = centers, iter.max = 99)
, 그것은 당신에게 내가 이야기하고 경고 메시지를 보낼 수 있습니다.
참고 :이 문제를 해결하기위한 나의 생각은 경고의 신호를 포착하고 해결 방법을 실행하는 것입니다. 그러나, 나는 아마도
옵션 하나 :'options (warn = 2); tryCatch (expr = {Kmeans ((time.series), centers = centers, iter.max = 99)}, error = function (e) "잡힌 오류")'. – joran
또는 기본 옵션 :'tryCatch (expr = {Kmeans ((time.series), centers = centers, iter.max = 99)}, warning = function (e) "Caught warning")' – joran
...또는 경고와 함께'시도 <- 시도 (expr = {Kmeans (time.series), 센터 = 센터, iter.max = 99}}, 침묵 = TRUE) '클래스를 확인한 다음'시도'및 그만해라. – joran