나는 이것이 단순한 KNN 분석이라고 말할 수 있습니다. ESRI 도움말이 설명하는 대안 인 "no distance matrix"구성 요소는 상당히 바람직하지 않은 것처럼 보입니다. 기본적으로 랜덤 시드를 사용하는 영역 성장 접근법을 사용하는 K-means 클러스터링을 사용합니다. 이것은 매우 불안정하고 매우 가변적 인 결과를 반환 할 수 있습니다. 단절된 지역과 같은 일부 문제를 피하기 위해 약간의 기동을 수행하는 것처럼 보이므로 결과를 정확히 재현하는 데 어느 정도 시간이 걸릴 수 있습니다. 당신은 spdep에서 "공간 제약"옵션을 근사시킬 수 있습니다. 다음은 시작점을 제공 할 거리 분석의 간단한 예입니다. "클래스"를 지정하려면 몇 가지 유형의 루핑 구조를 설정해야합니다.
require(sp)
require(spdep)
data(meuse)
coordinates(meuse) <- ~x+y
# Create distance matrix of specified range
meuse.dist <- dnearneigh(coordinates(meuse), 0.0001, 1000)
# Coerce distance object to a list object with distances for each observation
dist.list <- nbdists(meuse.dist, coordinates(meuse))
# Create a new column with the distance to the nearest observation using lapply and unlist
[email protected] <- data.frame([email protected], NNDist=unlist(lapply(dist.list, FUN=function(x) min(x))))
# Plot results
spplot(meuse, "NNDist", col.regions=colorRampPalette(c("blue","yellow","red"),
interpolate="spline")(10) )
계층 적 클러스터링을 탐색 할 수도 있습니다. 그러나 더 큰 데이터 세트의 경우 hclust는 삼각형 거리 매트릭스를 필요로하지만 dnearneigh는 삼각형 거리 매트릭스를 필요로합니다. 다음은 제한된 계층 적 클러스터링을 사용하는 예입니다.
# SPATIALLY CONSTRAINED CLUSTERING
require(sp)
require(rioja)
data(meuse)
coordinates(meuse) <- ~x+y
cdat <- data.frame(x=coordinates(meuse)[,1],y=coordinates(meuse)[,2])
rownames(cdat) <- rownames([email protected])
chc <- chclust(dist(cdat), method="conslink")
# KNN
chc.n3 <- cutree(chc, k=3)
# DISTANCE
chc.d200 <- cutree(chc, h=200)
[email protected] <- data.frame([email protected], KNN=as.factor(chc.n3), DClust=chc.d200)
opar <- par
par(mfcol=c(1,2))
cols <- topo.colors(length(unique([email protected]$KNN)))
color <- rep("xx", nrow([email protected]))
for(i in 1:length(unique([email protected]$KNN))) {
v <- unique([email protected]$KNN)[i]
color[([email protected]$KNN == v)] <- cols[i]
}
plot(meuse, col=color, pch=19, main="KNN Clustering")
cols <- topo.colors(length(unique([email protected]$DClust)))
color <- rep("xx", nrow([email protected]))
for(i in 1:length(unique([email protected]$DClust))) {
v <- unique([email protected]$DClust)[i]
color[([email protected]$DClust == v)] <- cols[i]
}
plot(meuse, col=color, pch=19, main="Distance Clustering")
par <- opar
안녕하세요. 마이크, 안녕하세요. 나는 당신이 좀 더 자세하게 설명 할 필요가 있다고 생각한다. 이미 시도한 것, 즉 코드를 게시하는 것, 그리고 예제를 만들면 여전히 더 큰 가능성을 보여 주면 누군가를 도와 줄 수있는 더 큰 기회가됩니다 (http://stackoverflow.com/). q/5963269/1478381). 느슨하게 문구를 넣을 수있는 질문은 * 이것을하기위한 코드를 작성하는 방법은 여기에서 그렇게 잘하지 않는 경향이 있습니다. 그냥 머리를 올려. –
'NO_SPATIAL_CONSTRAINT가 지정되면 그룹화 분석 도구는 K 평균 알고리즘을 사용합니다 .' ArcGIS 도움말에서 .... 따라서 k-means-clustering을 살펴보십시오. – EDi
Simon의 머리를 주셔서 감사합니다. 현재 현재 문제를 해결하고 있으며 곧 재현 할 수있는 내용을 게시하려고합니다. 하지만 저는 R 초심자이기 때문에 클러스터 분석이 모방하려고하는 GIS를 재현 할 수있는 일종의 유효성 검사를 받기를 희망했습니다. – mikeLdub