나는 여전히이 문제에 갇혀있다. R 메일 링리스트 (Christian Hennig에게 감사드립니다)로부터 다음과 같은 제안을 받았습니다.
라이브러리 fpc 에서 dbscan 함수를 고려 했습니까 , 아니면 다른 기능 입니까? 이 fpc::dbscan()
함수에는 "distance"매개 변수가 없지만 여러 옵션 중 하나가 메모리 문제를 해결할 수 있습니다 ( "memory"매개 변수의 문서를 참조하십시오).
수십만 개의 포인트에 거리 매트릭스를 사용하는 것은 재앙을위한 레시피입니다 (메모리 단위). 사용 한 기능이 그 기능을 수행했는지 확실하지 않지만 fpc::dbscan()
피할 수 있습니다.
fpc::dbscan()
사용자가 제공해야하는 조정 상수 가 필요한 것은 사실입니다 . 불행히도이 작업을 수행하는 일반적인 규칙은 없습니다. 상수의 방법과 의미를 이해하고 이것이 응용 프로그램의 요구 사항으로 어떻게 해석되는지 이해해야합니다.
몇 가지 다른 선택을 시도하고 클러스터 유효성 검사를 수행하여 작동하는 것을 볼 수 있지만 전자 메일을 통해 쉽게 일반적인 용어로 설명 할 수는 없습니다.
내 데이터로 시도했지만 성공하지 못했습니다.
"예, fpc에서 dbscan을 시도했지만 여전히 메모리 문제가 발생합니다. 답변과 관련하여 어떤 메모리 매개 변수를보아야할지 모르겠습니다. 다음은 dbscan 매개 변수로 시도한 코드입니다. 실수가 있는지 확인하십시오.
> sstdat=read.csv("sst.dat",sep=";",header=F,col.names=c("lon","lat","sst"))
> library(fpc)
> sst1=subset(sstdat, sst<50)
> sst2=subset(sst1, lon>-6)
> sst2=subset(sst2, lon<40)
> sst2=subset(sst2, lat<46)
> dbscan(sst2$sst, 0.1, MinPts = 5, scale = FALSE, method = c("hybrid"),
seeds = FALSE, showplot = FALSE, countmode = NULL)
Error: no se puede ubicar un vector de tamaño 858.2 Mb
> head(sst2)
lon lat sst
1257 35.18 24.98 26.78
1258 35.22 24.98 26.78
1259 35.27 24.98 26.78
1260 35.31 24.98 26.78
1261 35.35 24.98 26.78
1262 35.40 24.98 26.85
이 예제에서는 dbscan()
lon / lat이 아닌 온도 값 에만 적용 되므로 eps
parameter는 0.1입니다. 그리드 된 데이터 세트이므로 모든 점이 8 개의 데이터 점으로 둘러싸여 있으므로 주변 점 중 5 개 이상이 도달 거리 내에 있어야한다고 생각했습니다. 그러나 온도 값만 고려하여 올바른 접근 방식을 사용하고 있는지 확실하지 않은 경우 공간 정보가 누락되었을 수 있습니다. 경도 및 위도 데이터를 어떻게 처리해야합니까?
차원 sst2
: 152243 행 x 3 열 "
R과 DBSCAN에 대한 정보를 공유 할 수있는 경우를 대비하여이 메일 메시지를 공유합니다. 다시 감사합니다