youngroklee-ml / data-mining-techniques

0 stars 1 forks source link

ch12_cluster.R - Ch12.5 code #2

Closed youngroklee-ml closed 9 months ago

youngroklee-ml commented 9 months ago

R scripts return several errors. The script may also have several typos.

# Ch12.5 How to choose k
# Non-hierachical clustering ###

# read csv file
dat1 <- read.csv("data/ch12_dat2.csv")

dat2 <- dat1[, -1]

# 1. Euclidean distance
D1 <- dist(dat2)
D1 <- round(D1, 2)
D1
#>       1     2     3     4     5     6     7
#> 2 16.12                                    
#> 3  2.24 17.00                              
#> 4 18.60  9.06 18.36                        
#> 5 13.15  5.00 14.56 13.15                  
#> 6  5.66 12.17  5.39 13.04 10.82            
#> 7 15.30  1.41 16.03  8.00  5.39 11.05      
#> 8 16.64  7.28 16.55  2.24 11.05 11.18  6.08

# step1: to choose the optimal k
library(factoextra)
#> Loading required package: ggplot2
#> Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
fviz_nbclust(dat1, kmeans, method = "wss")
#> Error: number of cluster centres must lie between 1 and nrow(x)

fviz_nbclust(dat1, kmeans, method = "gap_stat")
#> Error: number of cluster centres must lie between 1 and nrow(x)
fviz_nbclust(dat1, kmeans, method = "silhouette")
#> Error: number of cluster centres must lie between 1 and nrow(x)

# visualization
fviz_cluster(db,
  data = dat2,
  ellipse.type = "convex",
  repel = TRUE
)
#> Error in eval(expr, envir, enclos): object 'db' not found

# calculate silhouette
library(cluster)
sil_pam <- silhouette(pam_out$clustering, dist(dat1))
#> Error in eval(expr, envir, enclos): object 'pam_out' not found
sil_pam
#> Error in eval(expr, envir, enclos): object 'sil_pam' not found
mean(sil_pam[, 3])
#> Error in eval(expr, envir, enclos): object 'sil_pam' not found

sil_db <- silhouette(db$cluster, dist(dat1))
#> Error in eval(expr, envir, enclos): object 'db' not found
mean(sil_db[, 3])
#> Error in eval(expr, envir, enclos): object 'sil_db' not found

# plot silhouette
library(factoextra)
fviz_silhouette(sil_pam)
#> Error in eval(expr, envir, enclos): object 'sil_pam' not found
fviz_silhouette(sil_db)
#> Error in eval(expr, envir, enclos): object 'sil_db' not found

Created on 2024-01-17 with reprex v2.1.0

youngroklee-ml commented 9 months ago

This should have been fixed by #3