Lab 2: Clustering

set.seed (2)
x=matrix (rnorm (50*2) , ncol =2)
x[1:25 ,1]=x[1:25 ,1]+3
x[1:25 ,2]=x[1:25 ,2] -4
km.out= kmeans (x,2, nstart =20)
km.out$cluster
 [1] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 1
[28] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
plot(x, col =(km.out$cluster +1) , main="K-Means Clustering
Results with K=2", xlab ="", ylab="", pch =20, cex =2)

set.seed (4)
km.out =kmeans (x,3, nstart =20)
km.out
K-means clustering with 3 clusters of sizes 10, 23, 17

Cluster means:
        [,1]        [,2]
1  2.3001545 -2.69622023
2 -0.3820397 -0.08740753
3  3.7789567 -4.56200798

Clustering vector:
 [1] 3 1 3 1 3 3 3 1 3 1 3 1 3 1 3 1 3 3 3 3 3 1 3 3 3 2 2
[28] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2

Within cluster sum of squares by cluster:
[1] 19.56137 52.67700 25.74089
 (between_SS / total_SS =  79.3 %)

Available components:

[1] "cluster"      "centers"      "totss"       
[4] "withinss"     "tot.withinss" "betweenss"   
[7] "size"         "iter"         "ifault"      
set.seed (3)
km.out= kmeans (x,3, nstart =1)
km.out$tot.withinss
[1] 104.3319
km.out =kmeans (x,3, nstart =20)
km.out$tot.withinss
[1] 97.97927

Hierachical Clustering

hc.complete =hclust (dist(x), method ="complete")
hc.average =hclust (dist(x), method ="average")
hc.single =hclust (dist(x), method ="single")
par(mfrow =c(1,3))
plot(hc.complete ,main ="Complete Linkage", xlab="", sub ="",
cex =.9)
plot(hc.average , main ="Average Linkage", xlab="", sub ="",
cex =.9)
plot(hc.single , main="Single Linkage", xlab="", sub ="",
cex =.9)

cutree (hc.complete , 2)
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
[28] 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2
cutree (hc.average , 2)
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 2
[28] 2 2 2 2 2 1 2 2 2 2 2 2 2 2 2 2 1 2 1 2 2 2 2
cutree (hc.single , 2)
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 1 1
[28] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
cutree (hc.single , 4)
 [1] 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 2 1 1 1 1 1 1 1 1 1 3 3
[28] 3 3 3 3 3 3 3 3 3 3 3 3 3 3 4 3 3 3 3 3 3 3 3
xsc=scale (x)
plot(hclust (dist(xsc), method ="complete"), main ="Hierarchical Clustering with Scaled Features")

x=matrix (rnorm (30*3) , ncol =3)
dd=as.dist(1- cor(t(x)))
plot(hclust (dd, method ="complete"), main="Complete Linkage
with Correlation -Based Distance", xlab="", sub ="")
LS0tDQp0aXRsZTogIkxhYm9yYXRvcmlvIENhcO10dWxvIDEwLjUiDQpzdWJ0aXRsZTogIkFsZWphbmRyYSBDZXJtZfFvIg0Kb3V0cHV0OiBodG1sX25vdGVib29rDQotLS0NCiMjI0xhYiAyOiBDbHVzdGVyaW5nDQoNCmBgYHtyfQ0Kc2V0LnNlZWQgKDIpDQp4PW1hdHJpeCAocm5vcm0gKDUwKjIpICwgbmNvbCA9MikNCnhbMToyNSAsMV09eFsxOjI1ICwxXSszDQp4WzE6MjUgLDJdPXhbMToyNSAsMl0gLTQNCmBgYA0KDQpgYGB7cn0NCmttLm91dD0ga21lYW5zICh4LDIsIG5zdGFydCA9MjApDQpgYGANCg0KYGBge3J9DQprbS5vdXQkY2x1c3Rlcg0KYGBgDQoNCmBgYHtyfQ0KcGxvdCh4LCBjb2wgPShrbS5vdXQkY2x1c3RlciArMSkgLCBtYWluPSJLLU1lYW5zIENsdXN0ZXJpbmcNClJlc3VsdHMgd2l0aCBLPTIiLCB4bGFiID0iIiwgeWxhYj0iIiwgcGNoID0yMCwgY2V4ID0yKQ0KYGBgDQoNCmBgYHtyfQ0Kc2V0LnNlZWQgKDQpDQprbS5vdXQgPWttZWFucyAoeCwzLCBuc3RhcnQgPTIwKQ0Ka20ub3V0DQpgYGANCmBgYHtyfQ0Kc2V0LnNlZWQgKDMpDQprbS5vdXQ9IGttZWFucyAoeCwzLCBuc3RhcnQgPTEpDQprbS5vdXQkdG90LndpdGhpbnNzDQpgYGANCmBgYHtyfQ0Ka20ub3V0ID1rbWVhbnMgKHgsMywgbnN0YXJ0ID0yMCkNCmttLm91dCR0b3Qud2l0aGluc3MNCmBgYA0KDQojIyMjSGllcmFjaGljYWwgQ2x1c3RlcmluZw0KYGBge3J9DQpoYy5jb21wbGV0ZSA9aGNsdXN0IChkaXN0KHgpLCBtZXRob2QgPSJjb21wbGV0ZSIpDQpgYGANCg0KYGBge3J9DQpoYy5hdmVyYWdlID1oY2x1c3QgKGRpc3QoeCksIG1ldGhvZCA9ImF2ZXJhZ2UiKQ0KaGMuc2luZ2xlID1oY2x1c3QgKGRpc3QoeCksIG1ldGhvZCA9InNpbmdsZSIpDQpgYGANCg0KYGBge3J9DQpwYXIobWZyb3cgPWMoMSwzKSkNCnBsb3QoaGMuY29tcGxldGUgLG1haW4gPSJDb21wbGV0ZSBMaW5rYWdlIiwgeGxhYj0iIiwgc3ViID0iIiwNCmNleCA9LjkpDQpwbG90KGhjLmF2ZXJhZ2UgLCBtYWluID0iQXZlcmFnZSBMaW5rYWdlIiwgeGxhYj0iIiwgc3ViID0iIiwNCmNleCA9LjkpDQpwbG90KGhjLnNpbmdsZSAsIG1haW49IlNpbmdsZSBMaW5rYWdlIiwgeGxhYj0iIiwgc3ViID0iIiwNCmNleCA9LjkpDQpgYGANCg0KYGBge3J9DQpjdXRyZWUgKGhjLmNvbXBsZXRlICwgMikNCmBgYA0KDQpgYGB7cn0NCmN1dHJlZSAoaGMuYXZlcmFnZSAsIDIpDQpgYGANCg0KYGBge3J9DQpjdXRyZWUgKGhjLnNpbmdsZSAsIDIpDQpgYGANCg0KYGBge3J9DQpjdXRyZWUgKGhjLnNpbmdsZSAsIDQpDQpgYGANCmBgYHtyfQ0KeHNjPXNjYWxlICh4KQ0KcGxvdChoY2x1c3QgKGRpc3QoeHNjKSwgbWV0aG9kID0iY29tcGxldGUiKSwgbWFpbiA9IkhpZXJhcmNoaWNhbCBDbHVzdGVyaW5nIHdpdGggU2NhbGVkIEZlYXR1cmVzIikNCmBgYA0KDQpgYGB7cn0NCng9bWF0cml4IChybm9ybSAoMzAqMykgLCBuY29sID0zKQ0KZGQ9YXMuZGlzdCgxLSBjb3IodCh4KSkpDQpwbG90KGhjbHVzdCAoZGQsIG1ldGhvZCA9ImNvbXBsZXRlIiksIG1haW49IkNvbXBsZXRlIExpbmthZ2UNCndpdGggQ29ycmVsYXRpb24gLUJhc2VkIERpc3RhbmNlIiwgeGxhYj0iIiwgc3ViID0iIikNCmBgYA0KDQoNCg==