Advertisement
Guest User

Untitled

a guest
Apr 24th, 2018
87
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
R 5.23 KB | None | 0 0
  1. #install.packages("clusterCrit")                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                            
  2. library(clusterCrit)
  3. library(cluster)
  4.  
  5. # HEADERS
  6. iris_headers = c("sepal_length", "sepal_width", "petal_length", "petal_width", "class")
  7. wine_headers = c("class", "Alcohol", "Malic_acid", "Ash", "Alcalnity_of_ash", "Magnesium", "Total_phenols", "Flavanoids", "Nonflavanoid_phenols", "Proanthocyanins", "Color_intensity", "Hue", "OD280/OD315_of_diluted_wines", "Proline")
  8. glass_headers = c("Id", "Refractive_index", "Na", "Mg", "Al", "Si", "K", "Ca", "Ba", "Fe", "class")
  9. diabetes_headers = c("Pregnant_times", "Plasma_glucose", "Blood_pressure", "Triceps_skin_thickness", "Serum_insulin", "BMI",
  10.                      "Diabetes_pedigree", "Age", "class")
  11.  
  12. get_data <- function(datasetName, dataset) {
  13.   switch(datasetName,
  14.          "iris" = {
  15.            data <- dataset[ ,1:4]
  16.          },
  17.          "wine" = {
  18.            data <- dataset[ ,2:13]
  19.          },
  20.          "glass" = {
  21.            data <- dataset[ ,2:10]
  22.          },
  23.          "diabetes" = {
  24.            data <- dataset[ ,1:8]
  25.          })
  26.   return (data)
  27. }
  28.  
  29. get_class <- function(datasetName, dataset) {
  30.   switch(datasetName,
  31.          "iris" = {
  32.            class <- dataset[, 5]
  33.          },
  34.          "wine" = {
  35.            class <- dataset[, 1]
  36.          },
  37.          "glass" = {
  38.            class <- dataset[, 11]
  39.          },
  40.          "diabetes" = {
  41.            class <- dataset[, 9]
  42.          })
  43.   return (class)
  44. }
  45.  
  46. load_dataset <- function(filename, headers) {
  47.   dataset <- read.csv(filename, header = FALSE)
  48.   colnames(dataset) <- headers
  49.   return (dataset)
  50. }
  51.  
  52. calculateCriterias <- function(data, cl) {
  53.   intCrit <- intCriteria(data, cl$cluster, c("Davies_Bouldin", "Dunn", "Silhouette"))
  54.   # extCrit <- extCriteria(classes, cl$cluster, c("Rand"))
  55.   return(intCrit)
  56.   # return(c(intCrit))
  57. }
  58.  
  59. clasterise_kmeans <- function(dataset, numberOfClusters){
  60.   return(kmeans(dataset, numberOfClusters))
  61. }
  62.  
  63. clasterise_pam <- function(dataset, numberOfClusters){
  64.   return(pam(dataset, numberOfClusters))
  65. }
  66.  
  67. #DATASETS
  68. # iris <- load_dataset("iris.csv", iris_headers)
  69. # wine <- load_dataset("wine.csv", wine_headers)
  70. # glass <- load_dataset("glass.csv", glass_headers)
  71. diabetes <- load_dataset("diabetes.csv", diabetes_headers)
  72.  
  73. # iris_data = get_data("iris", iris)
  74. # iris_class = get_class("iris", iris)
  75. # wine_data = get_data("wine", wine)
  76. # wine_class = get_class("wine", wine)
  77. # glass_data = get_data("glass", glass)
  78. # glass_class = get_class("glass", glass)
  79. diabetes_data = get_data("diabetes", diabetes)
  80. diabetes_class = get_class("diabetes", diabetes)
  81.  
  82. #MAIN
  83. data = diabetes_data
  84. class = diabetes_class
  85. number_of_clusters = 3
  86.  
  87. data_matrix <- matrix(unlist(data), ncol = length(data), byrow = TRUE)
  88. kmeans_cl <- clasterise_kmeans(data, number_of_clusters)
  89. pam_cl <- clasterise_pam(data, number_of_clusters)
  90. kmeans_criterias <-calculateCriterias(data_matrix, kmeans_cl)
  91. pam_criterias <-calculateCriterias(data_matrix, pam_cl)
  92. print(kmeans_criterias)
  93. print(pam_criterias)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement