# Script esempio calcolo K-means x <- c(0.8,2,7.8,4.4,6,9.1,0.6,6.8,4) y <- c(2.4,4,6,2,1,8.2,1,6.6,4.8) g1<- c(1,0,1,0,1,0,1,0,1) d <- data.frame(x,y,g1) mx0_1 <- mean(subset(d, d$g1 == 0)$x) my0_1 <-mean(subset(d, d$g1 == 0)$y) mx1_1 <- mean(subset(d, d$g1 == 1)$x) my1_1 <- mean(subset(d, d$g1 == 1)$y) plot(d$x,d$y, col=ifelse(d$g1==0,"red","black")) points(mean(subset(d, g1 == 0)$x), mean(subset(d, g1 == 0)$y), pch=8, col="red") points(mean(subset(d, g1 == 1)$x), mean(subset(d, g1 == 1)$y), pch=8, col="black") d$dist0_1[1] <- sqrt((0.8-5.575)^2 + (2.4-5.2)^2 ) d$dist1_1[1] <- sqrt((0.8-4)^2 + (2.4-2.88)^2 ) d$dist0_1[2] <- sqrt((2-5.575)^2 + (4-5.2)^2 ) d$dist1_1[2] <- sqrt((2-4)^2 + (4-2.88)^2 ) d$dist0_1[3] <- sqrt((7.8-5.575)^2 + (6-5.2)^2 ) d$dist1_1[3] <- sqrt((7.8-4)^2 + (6-2.88)^2 ) d$dist0_1[9] <- sqrt((4-5.575)^2 + (4.8-5.2)^2 ) d$dist1_1[9] <- sqrt((4-4)^2 + (4.8-2.88)^2 ) for(i in 1:nrow(d)){ d$dist0_1[i] <- sqrt((d$x[i]-mx0_1)^2 + (d$y[i]-my0_1)^2 ) d$dist1_1[i] <- sqrt((d$x[i]-mx1_1)^2 + (d$y[i]-my1_1)^2 ) d$g2[i] <- ifelse(d$dist0_1[i] - d$dist1_1[i]<0, 0, 1) } mx0_2 <- mean(subset(d, g2 == 0)$x) my0_2 <-mean(subset(d, g2 == 0)$y) mx1_2 <- mean(subset(d, g2 == 1)$x) my1_2 <- mean(subset(d, g2 == 1)$y) for(i in 1:nrow(d)){ d$dist0_2[i] <- sqrt((d$x[i]-mx0_2)^2 + (d$y[i]-my0_2)^2 ) d$dist1_2[i] <- sqrt((d$x[i]-mx1_2)^2 + (d$y[i]-my1_2)^2 ) d$g3[i] <- ifelse(d$dist0_2[i] - d$dist1_2[i]<0, 0, 1) } mx0_3 <- mean(subset(d, g3 == 0)$x) my0_3 <-mean(subset(d, g3 == 0)$y) mx1_3 <- mean(subset(d, g3 == 1)$x) my1_3 <- mean(subset(d, g3 == 1)$y) for(i in 1:nrow(d)){ d$dist0_3[i] <- sqrt((d$x[i]-mx0_3)^2 + (d$y[i]-my0_3)^2 ) d$dist1_3[i] <- sqrt((d$x[i]-mx1_3)^2 + (d$y[i]-my1_3)^2 ) d$g4[i] <- ifelse(d$dist0_3[i] - d$dist1_3[i]<0, 0, 1) }