# NOT RUN { require(graphics) ### Example 1: Violent crime rates by US state hc <- hclust(dist(USArrests), "ave") plot(hc) plot(hc, hang = -1) ## Do the same with centroid clustering and *squared* Euclidean distance, ## cut the tree into ten clusters and reconstruct the upper part of the ## tree from the cluster centers. hc <- hclust(dist(USArrests)^2, "cen") memb <- cutree(hc, k = 10) cent <- NULL for(k in 1:10){ cent <- rbind(cent, colMeans(USArrests[memb == k, , drop = FALSE])) } hc1 <- hclust(dist(cent)^2, method = "cen", members = table(memb)) opar <- par(mfrow = c(1, 2)) plot(hc, labels = FALSE, hang = -1, main = "Original Tree") plot(hc1, labels = FALSE, hang = -1, main = "Re-start from 10 clusters") par(opar) ### Example 2: Straight-line distances among 10 US cities ## Compare the results of algorithms "ward.D" and "ward.D2" mds2 <- -cmdscale(UScitiesD) plot(mds2, type="n", axes=FALSE, ann=FALSE) text(mds2, labels=rownames(mds2), xpd = NA) hcity.D <- hclust(UScitiesD, "ward.D") # "wrong" hcity.D2 <- hclust(UScitiesD, "ward.D2") opar <- par(mfrow = c(1, 2)) plot(hcity.D, hang=-1) plot(hcity.D2, hang=-1) par(opar) # }
Run the code above in your browser using DataCamp Workspace