library(tidyverse)
## ── Attaching core tidyverse packages ──────────────────────── tidyverse 2.0.0 ──
## ✔ dplyr 1.2.1 ✔ readr 2.2.0
## ✔ forcats 1.0.1 ✔ stringr 1.6.0
## ✔ ggplot2 4.0.3 ✔ tibble 3.3.1
## ✔ lubridate 1.9.5 ✔ tidyr 1.3.2
## ✔ purrr 1.2.2
## ── Conflicts ────────────────────────────────────────── tidyverse_conflicts() ──
## ✖ dplyr::filter() masks stats::filter()
## ✖ dplyr::lag() masks stats::lag()
## ℹ Use the conflicted package (<http://conflicted.r-lib.org/>) to force all conflicts to become errors
library(factoextra)
## Welcome to factoextra!
## Want to learn more? See two factoextra-related books at https://www.datanovia.com/en/product/practical-guide-to-principal-component-methods-in-r/
library(cluster)
library(dbscan)
##
## Attaching package: 'dbscan'
##
## The following object is masked from 'package:stats':
##
## as.dendrogram
library(corrplot)
## corrplot 0.95 loaded
library(e1071)
##
## Attaching package: 'e1071'
##
## The following object is masked from 'package:ggplot2':
##
## element
data <- read.csv("menu.csv")
head(data)
## Category Item Serving.Size Calories
## 1 Breakfast Egg McMuffin 4.8 oz (136 g) 300
## 2 Breakfast Egg White Delight 4.8 oz (135 g) 250
## 3 Breakfast Sausage McMuffin 3.9 oz (111 g) 370
## 4 Breakfast Sausage McMuffin with Egg 5.7 oz (161 g) 450
## 5 Breakfast Sausage McMuffin with Egg Whites 5.7 oz (161 g) 400
## 6 Breakfast Steak & Egg McMuffin 6.5 oz (185 g) 430
## Calories.from.Fat Total.Fat Total.Fat....Daily.Value. Saturated.Fat
## 1 120 13 20 5
## 2 70 8 12 3
## 3 200 23 35 8
## 4 250 28 43 10
## 5 210 23 35 8
## 6 210 23 36 9
## Saturated.Fat....Daily.Value. Trans.Fat Cholesterol
## 1 25 0 260
## 2 15 0 25
## 3 42 0 45
## 4 52 0 285
## 5 42 0 50
## 6 46 1 300
## Cholesterol....Daily.Value. Sodium Sodium....Daily.Value. Carbohydrates
## 1 87 750 31 31
## 2 8 770 32 30
## 3 15 780 33 29
## 4 95 860 36 30
## 5 16 880 37 30
## 6 100 960 40 31
## Carbohydrates....Daily.Value. Dietary.Fiber Dietary.Fiber....Daily.Value.
## 1 10 4 17
## 2 10 4 17
## 3 10 4 17
## 4 10 4 17
## 5 10 4 17
## 6 10 4 18
## Sugars Protein Vitamin.A....Daily.Value. Vitamin.C....Daily.Value.
## 1 3 17 10 0
## 2 3 18 6 0
## 3 2 14 8 0
## 4 2 21 15 0
## 5 2 21 6 0
## 6 3 26 15 2
## Calcium....Daily.Value. Iron....Daily.Value.
## 1 25 15
## 2 25 8
## 3 25 10
## 4 30 15
## 5 25 10
## 6 30 20
str(data)
## 'data.frame': 260 obs. of 24 variables:
## $ Category : chr "Breakfast" "Breakfast" "Breakfast" "Breakfast" ...
## $ Item : chr "Egg McMuffin" "Egg White Delight" "Sausage McMuffin" "Sausage McMuffin with Egg" ...
## $ Serving.Size : chr "4.8 oz (136 g)" "4.8 oz (135 g)" "3.9 oz (111 g)" "5.7 oz (161 g)" ...
## $ Calories : int 300 250 370 450 400 430 460 520 410 470 ...
## $ Calories.from.Fat : int 120 70 200 250 210 210 230 270 180 220 ...
## $ Total.Fat : num 13 8 23 28 23 23 26 30 20 25 ...
## $ Total.Fat....Daily.Value. : int 20 12 35 43 35 36 40 47 32 38 ...
## $ Saturated.Fat : num 5 3 8 10 8 9 13 14 11 12 ...
## $ Saturated.Fat....Daily.Value.: int 25 15 42 52 42 46 65 68 56 59 ...
## $ Trans.Fat : num 0 0 0 0 0 1 0 0 0 0 ...
## $ Cholesterol : int 260 25 45 285 50 300 250 250 35 35 ...
## $ Cholesterol....Daily.Value. : int 87 8 15 95 16 100 83 83 11 11 ...
## $ Sodium : int 750 770 780 860 880 960 1300 1410 1300 1420 ...
## $ Sodium....Daily.Value. : int 31 32 33 36 37 40 54 59 54 59 ...
## $ Carbohydrates : int 31 30 29 30 30 31 38 43 36 42 ...
## $ Carbohydrates....Daily.Value.: int 10 10 10 10 10 10 13 14 12 14 ...
## $ Dietary.Fiber : int 4 4 4 4 4 4 2 3 2 3 ...
## $ Dietary.Fiber....Daily.Value.: int 17 17 17 17 17 18 7 12 7 12 ...
## $ Sugars : int 3 3 2 2 2 3 3 4 3 4 ...
## $ Protein : int 17 18 14 21 21 26 19 19 20 20 ...
## $ Vitamin.A....Daily.Value. : int 10 6 8 15 6 15 10 15 2 6 ...
## $ Vitamin.C....Daily.Value. : int 0 0 0 0 0 2 8 8 8 8 ...
## $ Calcium....Daily.Value. : int 25 25 25 30 25 30 15 20 15 15 ...
## $ Iron....Daily.Value. : int 15 8 10 15 10 20 15 20 10 15 ...
summary(data)
## Category Item Serving.Size Calories
## Length:260 Length:260 Length:260 Min. : 0.0
## Class :character Class :character Class :character 1st Qu.: 210.0
## Mode :character Mode :character Mode :character Median : 340.0
## Mean : 368.3
## 3rd Qu.: 500.0
## Max. :1880.0
## Calories.from.Fat Total.Fat Total.Fat....Daily.Value. Saturated.Fat
## Min. : 0.0 Min. : 0.000 Min. : 0.00 Min. : 0.000
## 1st Qu.: 20.0 1st Qu.: 2.375 1st Qu.: 3.75 1st Qu.: 1.000
## Median : 100.0 Median : 11.000 Median : 17.00 Median : 5.000
## Mean : 127.1 Mean : 14.165 Mean : 21.82 Mean : 6.008
## 3rd Qu.: 200.0 3rd Qu.: 22.250 3rd Qu.: 35.00 3rd Qu.:10.000
## Max. :1060.0 Max. :118.000 Max. :182.00 Max. :20.000
## Saturated.Fat....Daily.Value. Trans.Fat Cholesterol
## Min. : 0.00 Min. :0.0000 Min. : 0.00
## 1st Qu.: 4.75 1st Qu.:0.0000 1st Qu.: 5.00
## Median : 24.00 Median :0.0000 Median : 35.00
## Mean : 29.97 Mean :0.2038 Mean : 54.94
## 3rd Qu.: 48.00 3rd Qu.:0.0000 3rd Qu.: 65.00
## Max. :102.00 Max. :2.5000 Max. :575.00
## Cholesterol....Daily.Value. Sodium Sodium....Daily.Value.
## Min. : 0.00 Min. : 0.0 Min. : 0.00
## 1st Qu.: 2.00 1st Qu.: 107.5 1st Qu.: 4.75
## Median : 11.00 Median : 190.0 Median : 8.00
## Mean : 18.39 Mean : 495.8 Mean : 20.68
## 3rd Qu.: 21.25 3rd Qu.: 865.0 3rd Qu.: 36.25
## Max. :192.00 Max. :3600.0 Max. :150.00
## Carbohydrates Carbohydrates....Daily.Value. Dietary.Fiber
## Min. : 0.00 Min. : 0.00 Min. :0.000
## 1st Qu.: 30.00 1st Qu.:10.00 1st Qu.:0.000
## Median : 44.00 Median :15.00 Median :1.000
## Mean : 47.35 Mean :15.78 Mean :1.631
## 3rd Qu.: 60.00 3rd Qu.:20.00 3rd Qu.:3.000
## Max. :141.00 Max. :47.00 Max. :7.000
## Dietary.Fiber....Daily.Value. Sugars Protein
## Min. : 0.000 Min. : 0.00 Min. : 0.00
## 1st Qu.: 0.000 1st Qu.: 5.75 1st Qu.: 4.00
## Median : 5.000 Median : 17.50 Median :12.00
## Mean : 6.531 Mean : 29.42 Mean :13.34
## 3rd Qu.:10.000 3rd Qu.: 48.00 3rd Qu.:19.00
## Max. :28.000 Max. :128.00 Max. :87.00
## Vitamin.A....Daily.Value. Vitamin.C....Daily.Value. Calcium....Daily.Value.
## Min. : 0.00 Min. : 0.000 Min. : 0.00
## 1st Qu.: 2.00 1st Qu.: 0.000 1st Qu.: 6.00
## Median : 8.00 Median : 0.000 Median :20.00
## Mean : 13.43 Mean : 8.535 Mean :20.97
## 3rd Qu.: 15.00 3rd Qu.: 4.000 3rd Qu.:30.00
## Max. :170.00 Max. :240.000 Max. :70.00
## Iron....Daily.Value.
## Min. : 0.000
## 1st Qu.: 0.000
## Median : 4.000
## Mean : 7.735
## 3rd Qu.:15.000
## Max. :40.000
colSums(is.na(data))
## Category Item
## 0 0
## Serving.Size Calories
## 0 0
## Calories.from.Fat Total.Fat
## 0 0
## Total.Fat....Daily.Value. Saturated.Fat
## 0 0
## Saturated.Fat....Daily.Value. Trans.Fat
## 0 0
## Cholesterol Cholesterol....Daily.Value.
## 0 0
## Sodium Sodium....Daily.Value.
## 0 0
## Carbohydrates Carbohydrates....Daily.Value.
## 0 0
## Dietary.Fiber Dietary.Fiber....Daily.Value.
## 0 0
## Sugars Protein
## 0 0
## Vitamin.A....Daily.Value. Vitamin.C....Daily.Value.
## 0 0
## Calcium....Daily.Value. Iron....Daily.Value.
## 0 0
dt1 <- data %>%
select(Calories, Total.Fat, Carbohydrates, Protein, Sugars, Sodium)
head(dt1)
## Calories Total.Fat Carbohydrates Protein Sugars Sodium
## 1 300 13 31 17 3 750
## 2 250 8 30 18 3 770
## 3 370 23 29 14 2 780
## 4 450 28 30 21 2 860
## 5 400 23 30 21 2 880
## 6 430 23 31 26 3 960
#heatmap korelasi
corr_matrix <- cor(dt1, use = "complete.obs")
corrplot(corr_matrix, method = "color", type = "upper",
addCoef.col = "black", tl.col = "black",
title = "Heatmap Fitur Terpilih")
## Normalisasi Data
dt_scaled <- scale(dt1)
dt_scaled <- as.data.frame(dt_scaled)
plot(dt1$Protein, dt1$Total.Fat,
xlab = "Protein",
ylab = "Total Fat",
main = "Visualisasi Awal Data",
pch = 19)
wss <- vector()
for (k in 1:10) {
kmeans_model <- kmeans(dt_scaled, centers = k, nstart = 25)
wss[k] <- kmeans_model$tot.withinss
}
plot(1:10, wss, type = "b",
xlab = "Jumlah Cluster",
ylab = "Inertia (WSS)",
main = "Elbow Method")
set.seed(42)
kmeans_model <- kmeans(dt_scaled, centers = 3, nstart = 25)
dt1$cluster_kmeans <- kmeans_model$cluster
head(dt1)
## Calories Total.Fat Carbohydrates Protein Sugars Sodium cluster_kmeans
## 1 300 13 31 17 3 750 1
## 2 250 8 30 18 3 770 1
## 3 370 23 29 14 2 780 3
## 4 450 28 30 21 2 860 3
## 5 400 23 30 21 2 880 3
## 6 430 23 31 26 3 960 3
plot(dt1$Calories, dt1$Total.Fat,
col = dt1$cluster_kmeans,
pch = 19,
main = "K-Means Clustering")
dist_matrix <- dist(dt_scaled, method = "euclidean")
hc <- hclust(dist_matrix, method = "ward.D2")
plot(hc, main = "Dendrogram")
dt1$cluster_hier <- cutree(hc, k = 3)
dbscan_model <- dbscan(dt_scaled, eps = 0.8, minPts = 5)
dt1$cluster_dbscan <- dbscan_model$cluster
plot(dt1$Calories, dt1$Total.Fat,
col = dt1$cluster_dbscan + 1,
pch = 19,
main = "DBSCAN Clustering")
set.seed(42)
fcm <- cmeans(dt_scaled, centers = 3, m = 2)
dt1$cluster_fcm <- fcm$cluster
fcm$membership
## 1 2 3
## [1,] 0.43073631 0.18149268 0.387771010
## [2,] 0.50187662 0.18027328 0.317850096
## [3,] 0.30087481 0.17159184 0.527533341
## [4,] 0.11116684 0.09497799 0.793855169
## [5,] 0.15152102 0.11255084 0.735928133
## [6,] 0.08684598 0.07616374 0.836990283
## [7,] 0.05367772 0.05157039 0.894751888
## [8,] 0.03775606 0.04208238 0.920161563
## [9,] 0.09628199 0.08136566 0.822352357
## [10,] 0.04214024 0.04347278 0.914386978
## [11,] 0.19546282 0.15043026 0.654106918
## [12,] 0.14229741 0.13440336 0.723299239
## [13,] 0.06468710 0.06590689 0.869406008
## [14,] 0.06197020 0.07233654 0.865693258
## [15,] 0.07561339 0.06844240 0.855944213
## [16,] 0.04988852 0.05371327 0.896398208
## [17,] 0.12563445 0.10561326 0.768752294
## [18,] 0.06522847 0.06751950 0.867252029
## [19,] 0.02890678 0.03243353 0.938659687
## [20,] 0.06355988 0.07677390 0.859666212
## [21,] 0.13146729 0.14008185 0.728450862
## [22,] 0.21458604 0.20618985 0.579224110
## [23,] 0.02644115 0.03627652 0.937282330
## [24,] 0.02109835 0.02690287 0.951998780
## [25,] 0.03412190 0.04818794 0.917690163
## [26,] 0.02847991 0.03864963 0.932870466
## [27,] 0.05630633 0.07994326 0.863750415
## [28,] 0.09794392 0.13243886 0.769617227
## [29,] 0.11904615 0.16390258 0.717051273
## [30,] 0.05049563 0.06568977 0.883814600
## [31,] 0.07583900 0.10299488 0.821166120
## [32,] 0.17610499 0.27533486 0.548560147
## [33,] 0.18550144 0.28433746 0.530161102
## [34,] 0.16356159 0.26292803 0.573510383
## [35,] 0.17409567 0.27473263 0.551171700
## [36,] 0.45017729 0.33993368 0.209889027
## [37,] 0.11677861 0.18864889 0.694572506
## [38,] 0.48318014 0.17290751 0.343912357
## [39,] 0.85961814 0.07457707 0.065804783
## [40,] 0.20872770 0.63808228 0.153190022
## [41,] 0.55301836 0.36294205 0.084039588
## [42,] 0.80038677 0.14226473 0.057348499
## [43,] 0.02060962 0.02675501 0.952635378
## [44,] 0.02231749 0.02737511 0.950307399
## [45,] 0.05741284 0.07812853 0.864458629
## [46,] 0.05810147 0.07925947 0.862639060
## [47,] 0.02596287 0.03373834 0.940298788
## [48,] 0.13251579 0.17818884 0.689295367
## [49,] 0.75097553 0.12348567 0.125538797
## [50,] 0.52946866 0.18602851 0.284502821
## [51,] 0.07579182 0.06977524 0.854432943
## [52,] 0.09095332 0.13142712 0.777619560
## [53,] 0.20267841 0.14911893 0.648202658
## [54,] 0.05293142 0.05210409 0.894964497
## [55,] 0.14912076 0.12737426 0.723504985
## [56,] 0.07599912 0.06866379 0.855337084
## [57,] 0.03180899 0.03883428 0.929356722
## [58,] 0.03745779 0.05237571 0.910166506
## [59,] 0.24261987 0.20138983 0.555990303
## [60,] 0.06256368 0.09310278 0.844333536
## [61,] 0.09346152 0.11390695 0.792631529
## [62,] 0.03440476 0.05041132 0.915183923
## [63,] 0.10525861 0.11807239 0.776668994
## [64,] 0.09365219 0.14425540 0.762092416
## [65,] 0.08127553 0.11087446 0.807850014
## [66,] 0.11871265 0.11274739 0.768539959
## [67,] 0.34326908 0.20046683 0.456264088
## [68,] 0.02181529 0.02364774 0.954536967
## [69,] 0.06850871 0.06536621 0.866125079
## [70,] 0.28223097 0.18163779 0.536131244
## [71,] 0.04520429 0.06310645 0.891689266
## [72,] 0.07776411 0.08792312 0.834312772
## [73,] 0.01914085 0.02752822 0.953330930
## [74,] 0.06406980 0.06807034 0.867859861
## [75,] 0.05399762 0.08730213 0.858700255
## [76,] 0.04093259 0.05515215 0.903915267
## [77,] 0.03020427 0.04701538 0.922780347
## [78,] 0.16747604 0.16870555 0.663818411
## [79,] 0.79187651 0.09796764 0.110155851
## [80,] 0.56149367 0.16195569 0.276550636
## [81,] 0.09018422 0.08082007 0.828995713
## [82,] 0.15887183 0.21466130 0.626466875
## [83,] 0.25467310 0.31118529 0.434141616
## [84,] 0.34154712 0.21431358 0.444139293
## [85,] 0.86103827 0.07086104 0.068100693
## [86,] 0.18303260 0.13005463 0.686912773
## [87,] 0.41621958 0.19538767 0.388392755
## [88,] 0.94584179 0.03094325 0.023214959
## [89,] 0.08724945 0.09642436 0.816326188
## [90,] 0.36507631 0.21238988 0.422533814
## [91,] 0.39380804 0.20424178 0.401950178
## [92,] 0.56927096 0.17540780 0.255321239
## [93,] 0.43176917 0.18870618 0.379524647
## [94,] 0.59601920 0.16124209 0.242738711
## [95,] 0.30291677 0.17178132 0.525301910
## [96,] 0.49672108 0.17007223 0.333206687
## [97,] 0.85154931 0.08468242 0.063768270
## [98,] 0.63554947 0.20539480 0.159055735
## [99,] 0.30844530 0.36378178 0.327772926
## [100,] 0.88697095 0.06394640 0.049082649
## [101,] 0.83368567 0.09386759 0.072446733
## [102,] 0.83075926 0.09628429 0.072956454
## [103,] 0.97953606 0.01375950 0.006704440
## [104,] 0.86018331 0.08666246 0.053154230
## [105,] 0.96039784 0.02438778 0.015214386
## [106,] 0.96712498 0.02004704 0.012827975
## [107,] 0.86567662 0.07732663 0.056996756
## [108,] 0.29260425 0.63483205 0.072563705
## [109,] 0.27990525 0.64686214 0.073232604
## [110,] 0.51853625 0.40868169 0.072782060
## [111,] 0.80685006 0.14412046 0.049029477
## [112,] 0.50913184 0.40680594 0.084062217
## [113,] 0.25651106 0.65023311 0.093255831
## [114,] 0.90998893 0.06146851 0.028542562
## [115,] 0.80605869 0.10796154 0.085979771
## [116,] 0.80627368 0.10771250 0.086013826
## [117,] 0.80652702 0.10737609 0.086096894
## [118,] 0.80617077 0.10783455 0.085994683
## [119,] 0.85190639 0.10788011 0.040213499
## [120,] 0.56503503 0.35444135 0.080523619
## [121,] 0.27905427 0.63006404 0.090881687
## [122,] 0.92017601 0.05374302 0.026080969
## [123,] 0.81185919 0.10319837 0.084942442
## [124,] 0.81285032 0.10182588 0.085323804
## [125,] 0.81218521 0.10116483 0.086649963
## [126,] 0.80967052 0.10506456 0.085264923
## [127,] 0.83661221 0.12004165 0.043346135
## [128,] 0.52478025 0.39202912 0.083190630
## [129,] 0.26128539 0.64686012 0.091854490
## [130,] 0.91682728 0.05625563 0.026917085
## [131,] 0.92048930 0.04560480 0.033905906
## [132,] 0.94710763 0.03343239 0.019459979
## [133,] 0.92120817 0.05038366 0.028408178
## [134,] 0.90982627 0.06416056 0.026013173
## [135,] 0.76658688 0.18074443 0.052668691
## [136,] 0.31770167 0.60265840 0.079639933
## [137,] 0.80580716 0.10823029 0.085962544
## [138,] 0.80605869 0.10796154 0.085979771
## [139,] 0.80605869 0.10796154 0.085979771
## [140,] 0.80617077 0.10783455 0.085994683
## [141,] 0.80593747 0.10809346 0.085969067
## [142,] 0.85550159 0.10598033 0.038518079
## [143,] 0.70075215 0.23531913 0.063928718
## [144,] 0.50783693 0.41056302 0.081600049
## [145,] 0.91728493 0.05615228 0.026562788
## [146,] 0.80580716 0.10823029 0.085962544
## [147,] 0.80580716 0.10823029 0.085962544
## [148,] 0.80580716 0.10823029 0.085962544
## [149,] 0.91488308 0.04797859 0.037138336
## [150,] 0.88295480 0.06631692 0.050728283
## [151,] 0.68714805 0.17445075 0.138401202
## [152,] 0.67530875 0.25427579 0.070415456
## [153,] 0.27671062 0.64511544 0.078173941
## [154,] 0.03342278 0.94355550 0.023021718
## [155,] 0.67530875 0.25427579 0.070415456
## [156,] 0.29885026 0.62064746 0.080502276
## [157,] 0.03498640 0.94096347 0.024050135
## [158,] 0.73537195 0.20160005 0.063028002
## [159,] 0.34932045 0.56406786 0.086611692
## [160,] 0.05076516 0.91572210 0.033512739
## [161,] 0.92788184 0.04191198 0.030206180
## [162,] 0.82675930 0.10118928 0.072051424
## [163,] 0.56280085 0.25785253 0.179346612
## [164,] 0.90646920 0.05439376 0.039137047
## [165,] 0.89811160 0.06021279 0.041675608
## [166,] 0.80989224 0.11435802 0.075749735
## [167,] 0.74277373 0.19595384 0.061272427
## [168,] 0.46314343 0.44728307 0.089573493
## [169,] 0.20586049 0.70837862 0.085760889
## [170,] 0.76273634 0.17907573 0.058187924
## [171,] 0.46314343 0.44728307 0.089573493
## [172,] 0.20586049 0.70837862 0.085760889
## [173,] 0.78678498 0.15885265 0.054362370
## [174,] 0.51508445 0.39635517 0.088560377
## [175,] 0.24331118 0.66454618 0.092142636
## [176,] 0.93117686 0.04118087 0.027642270
## [177,] 0.89467258 0.06474382 0.040583591
## [178,] 0.73203446 0.16985822 0.098107317
## [179,] 0.35984985 0.55107286 0.089077297
## [180,] 0.05694271 0.91004617 0.033011113
## [181,] 0.02604343 0.94770327 0.026253303
## [182,] 0.50620507 0.41003445 0.083760483
## [183,] 0.20067502 0.72857751 0.070747466
## [184,] 0.08774874 0.85588170 0.056369561
## [185,] 0.46662716 0.43923868 0.094134168
## [186,] 0.12161639 0.81877990 0.059603710
## [187,] 0.03145339 0.93805637 0.030490245
## [188,] 0.62267756 0.30241983 0.074902611
## [189,] 0.26800816 0.64991197 0.082079873
## [190,] 0.11506363 0.81832544 0.066610926
## [191,] 0.25729860 0.65519787 0.087503538
## [192,] 0.03925695 0.93205797 0.028685077
## [193,] 0.05262614 0.88393007 0.063443794
## [194,] 0.42953540 0.48196148 0.088503114
## [195,] 0.16194039 0.77154318 0.066516434
## [196,] 0.10148497 0.82481177 0.073703262
## [197,] 0.96199025 0.02484488 0.013164873
## [198,] 0.92086221 0.05591276 0.023225030
## [199,] 0.56376481 0.36187205 0.074363137
## [200,] 0.96000235 0.02587818 0.014119470
## [201,] 0.93873077 0.04239277 0.018876461
## [202,] 0.65898090 0.27410265 0.066916452
## [203,] 0.95877903 0.02644031 0.014780658
## [204,] 0.93873077 0.04239277 0.018876461
## [205,] 0.68066573 0.25470636 0.064627911
## [206,] 0.95527903 0.02838458 0.016336387
## [207,] 0.95110922 0.03311515 0.015775625
## [208,] 0.73528998 0.20670400 0.058006021
## [209,] 0.86847541 0.07358852 0.057936066
## [210,] 0.88420321 0.06488646 0.050910329
## [211,] 0.89749327 0.05730511 0.045201614
## [212,] 0.67203651 0.25257773 0.075385759
## [213,] 0.31536071 0.59679143 0.087847862
## [214,] 0.01061430 0.98028000 0.009105697
## [215,] 0.78520102 0.16443051 0.050368469
## [216,] 0.46781001 0.45041272 0.081777268
## [217,] 0.05628704 0.91150909 0.032203870
## [218,] 0.73025342 0.20156639 0.068180188
## [219,] 0.40428548 0.49869612 0.097018407
## [220,] 0.01538202 0.97262441 0.011993562
## [221,] 0.84703634 0.11338909 0.039574569
## [222,] 0.56042151 0.35991494 0.079663557
## [223,] 0.08374466 0.87356887 0.042686472
## [224,] 0.06157192 0.90223643 0.036191645
## [225,] 0.06554540 0.87250582 0.061948780
## [226,] 0.12810953 0.71858955 0.153300928
## [227,] 0.07033940 0.88746543 0.042195175
## [228,] 0.07002829 0.86277626 0.067195450
## [229,] 0.12862240 0.71606728 0.155310319
## [230,] 0.06867437 0.87039667 0.060928954
## [231,] 0.11373663 0.75968907 0.126574300
## [232,] 0.16269604 0.62528452 0.212019445
## [233,] 0.63808777 0.29263987 0.069272359
## [234,] 0.37971771 0.53953781 0.080744485
## [235,] 0.18047713 0.74532641 0.074196463
## [236,] 0.67583494 0.25965994 0.064505120
## [237,] 0.41356922 0.50693154 0.079499238
## [238,] 0.18282047 0.74650220 0.070677331
## [239,] 0.62446653 0.30468500 0.070848471
## [240,] 0.37400469 0.54552892 0.080466390
## [241,] 0.18085562 0.74463560 0.074508780
## [242,] 0.03895473 0.92672972 0.034315551
## [243,] 0.12305070 0.72914697 0.147802334
## [244,] 0.17760962 0.58272664 0.239663747
## [245,] 0.06953764 0.86469328 0.065769080
## [246,] 0.14997093 0.67089917 0.179129898
## [247,] 0.19479467 0.55544635 0.249758974
## [248,] 0.06839056 0.86311887 0.068490570
## [249,] 0.14689909 0.66983738 0.183263538
## [250,] 0.19239318 0.55222099 0.255385824
## [251,] 0.13409973 0.70998308 0.155917193
## [252,] 0.18571224 0.57393281 0.240354943
## [253,] 0.11757798 0.74500007 0.137421945
## [254,] 0.20058910 0.52500484 0.274406060
## [255,] 0.03438351 0.94683288 0.018783613
## [256,] 0.02398811 0.95297492 0.023036969
## [257,] 0.12824149 0.69418181 0.177576695
## [258,] 0.31540913 0.60289301 0.081697856
## [259,] 0.16710144 0.57198907 0.260909489
## [260,] 0.09837800 0.85068611 0.050935886
plot(dt1$Calories, dt1$Total.Fat,
col = dt1$cluster_fcm,
pch = 19,
main = "Fuzzy C-Means Clustering")
sil <- silhouette(kmeans_model$cluster, dist(dt_scaled))
mean(sil[, 3])
## [1] 0.4240723
dt1 %>%
group_by(cluster_kmeans) %>%
summarise(across(where(is.numeric), mean))
## # A tibble: 3 × 10
## cluster_kmeans Calories Total.Fat Carbohydrates Protein Sugars Sodium
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 197. 5.34 31.4 6.37 23.2 169.
## 2 2 512. 14.9 82.9 12.4 73.0 205.
## 3 3 569. 29.6 49.4 26.6 7.81 1306.
## # ℹ 3 more variables: cluster_hier <dbl>, cluster_dbscan <dbl>,
## # cluster_fcm <dbl>
dt1 %>%
group_by(cluster_hier) %>%
summarise(across(where(is.numeric), mean))
## # A tibble: 3 × 10
## cluster_hier Calories Total.Fat Carbohydrates Protein Sugars Sodium
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 519. 26.3 46.5 24.3 7.51 1175.
## 2 2 114. 3.79 16.5 3.80 11.0 89.6
## 3 3 385. 9.77 65.5 9.49 58.3 153.
## # ℹ 3 more variables: cluster_kmeans <dbl>, cluster_dbscan <dbl>,
## # cluster_fcm <dbl>
dt1 %>%
group_by(cluster_dbscan) %>%
summarise(across(where(is.numeric), mean))
## # A tibble: 2 × 10
## cluster_dbscan Calories Total.Fat Carbohydrates Protein Sugars Sodium
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 0 780. 36.0 87 27.7 39 1135.
## 2 1 330. 12.2 43.7 12.0 28.5 437.
## # ℹ 3 more variables: cluster_kmeans <dbl>, cluster_hier <dbl>,
## # cluster_fcm <dbl>
dt1 %>%
group_by(cluster_fcm) %>%
summarise(across(where(is.numeric), mean))
## # A tibble: 3 × 10
## cluster_fcm Calories Total.Fat Carbohydrates Protein Sugars Sodium
## <int> <dbl> <dbl> <dbl> <dbl> <dbl> <dbl>
## 1 1 172. 4.55 27.7 5.68 20.5 153.
## 2 2 468. 13.3 76.2 11.4 66.4 190.
## 3 3 557. 28.8 48.7 26.1 7.77 1275.
## # ℹ 3 more variables: cluster_kmeans <dbl>, cluster_hier <dbl>,
## # cluster_dbscan <dbl>