# \donttest{
# DBSCAN ---------------------------
if (require("dbscan", quietly = TRUE)) {
model <- dbscan::dbscan(iris[1:4], eps = 1.45, minPts = 10)
rez <- model_parameters(model, iris[1:4])
rez
# Get clusters
predict(rez)
# Clusters centers in long form
attributes(rez)$means
# Between and Total Sum of Squares
attributes(rez)$Sum_Squares_Total
attributes(rez)$Sum_Squares_Between
# HDBSCAN
model <- dbscan::hdbscan(iris[1:4], minPts = 10)
model_parameters(model, iris[1:4])
}
# }
#
# Hierarchical clustering (hclust) ---------------------------
data <- iris[1:4]
model <- hclust(dist(data))
clusters <- cutree(model, 3)
rez <- model_parameters(model, data, clusters)
rez
# Get clusters
predict(rez)
# Clusters centers in long form
attributes(rez)$means
# Between and Total Sum of Squares
attributes(rez)$Total_Sum_Squares
attributes(rez)$Between_Sum_Squares
# \donttest{
#
# pvclust (finds "significant" clusters) ---------------------------
if (require("pvclust", quietly = TRUE)) {
data <- iris[1:4]
# NOTE: pvclust works on transposed data
model <- pvclust::pvclust(datawizard::data_transpose(data, verbose = FALSE),
method.dist = "euclidean",
nboot = 50,
quiet = TRUE
)
rez <- model_parameters(model, data, ci = 0.90)
rez
# Get clusters
predict(rez)
# Clusters centers in long form
attributes(rez)$means
# Between and Total Sum of Squares
attributes(rez)$Sum_Squares_Total
attributes(rez)$Sum_Squares_Between
}
# }
if (FALSE) {
#
# K-means -------------------------------
model <- kmeans(iris[1:4], centers = 3)
rez <- model_parameters(model)
rez
# Get clusters
predict(rez)
# Clusters centers in long form
attributes(rez)$means
# Between and Total Sum of Squares
attributes(rez)$Sum_Squares_Total
attributes(rez)$Sum_Squares_Between
}
if (FALSE) {
#
# Hierarchical K-means (factoextra::hkclust) ----------------------
if (require("factoextra", quietly = TRUE)) {
data <- iris[1:4]
model <- factoextra::hkmeans(data, k = 3)
rez <- model_parameters(model)
rez
# Get clusters
predict(rez)
# Clusters centers in long form
attributes(rez)$means
# Between and Total Sum of Squares
attributes(rez)$Sum_Squares_Total
attributes(rez)$Sum_Squares_Between
}
}
if (require("mclust", quietly = TRUE)) {
model <- mclust::Mclust(iris[1:4], verbose = FALSE)
model_parameters(model)
}
if (FALSE) {
#
# K-Medoids (PAM and HPAM) ==============
if (require("cluster", quietly = TRUE)) {
model <- cluster::pam(iris[1:4], k = 3)
model_parameters(model)
}
if (require("fpc", quietly = TRUE)) {
model <- fpc::pamk(iris[1:4], criterion = "ch")
model_parameters(model)
}
}
Run the code above in your browser using DataLab