Perkembangan astronomi modern semakin bergantung pada big data hasil survei langit berskala besar, salah satunya adalah Sloan Digital Sky Survey (SDSS). Program observasi ini menghasilkan jutaan data fotometrik dan spektroskopi yang memetakan berbagai objek langit seperti bintang, galaksi, dan quasar. Salah satu dataset turunannya adalah Stellar Classification Dataset – SDSS17, yang berisi ribuan observasi objek langit dengan informasi magnitudo pada lima filter fotometrik (u, g, r, i, z) serta nilai redshift yang merepresentasikan jarak kosmologis suatu objek. Walaupun dataset ini memiliki label kelas asli, pendekatan unsupervised learning seperti K-Means Clustering tetap memiliki peranan penting karena tidak bergantung pada label dan mampu mengungkap pola alami yang mungkin tersembunyi. Melalui clustering, kita dapat melihat apakah objek-objek langit dengan karakteristik tertentu—misalnya objek paling terang, paling redup, atau yang memiliki redshift tinggi—secara alami membentuk kelompok yang konsisten dan mudah diinterpretasikan. Metode K-Means cocok untuk dataset ini karena seluruh variabelnya bersifat numerik, memiliki variasi yang kaya, dan berukuran cukup besar sehingga mendukung proses pembentukan cluster yang stabil. Dengan mengelompokkan objek-objek langit berdasarkan kesamaan karakteristik fotometrik dan spektralnya, analisis ini dapat memberikan wawasan yang lebih dalam mengenai struktur dan keragaman objek di alam semesta. Dengan demikian, penerapan analisis cluster pada dataset SDSS17 tidak hanya menjadi proses statistik, tetapi juga langkah eksploratif untuk memahami pola-pola alami dalam data astronomi serta membandingkannya dengan klasifikasi asli sebagai bentuk validasi.
library(readxl)
## Warning: package 'readxl' was built under R version 4.4.3
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.4.3
library(cluster)
library(factoextra)
## Warning: package 'factoextra' was built under R version 4.4.3
## Welcome! Want to learn more? See two factoextra-related books at https://goo.gl/ve3WBa
library(dplyr)
## Warning: package 'dplyr' was built under R version 4.4.3
##
## Attaching package: 'dplyr'
## The following objects are masked from 'package:stats':
##
## filter, lag
## The following objects are masked from 'package:base':
##
## intersect, setdiff, setequal, union
library(reshape2)
## Warning: package 'reshape2' was built under R version 4.4.3
UAP <- read_excel("C:/Users/Jihan Fatin/Downloads/UAP.xlsx")
UAP_num <- UAP %>% select(where(is.numeric))
UAP_scaled <- scale(UAP_num)
summary(UAP_num)
## u g r i
## Min. :12.26 Min. :10.51 Min. :10.07 Min. :11.30
## 1st Qu.:20.47 1st Qu.:19.16 1st Qu.:18.34 1st Qu.:17.91
## Median :22.17 Median :21.11 Median :20.19 Median :19.49
## Mean :22.13 Mean :20.70 Mean :19.73 Mean :19.17
## 3rd Qu.:23.69 3rd Qu.:22.11 3rd Qu.:21.09 3rd Qu.:20.47
## Max. :29.20 Max. :28.90 Max. :27.40 Max. :24.78
## z redshift
## Min. :10.23 Min. :-0.004136
## 1st Qu.:17.66 1st Qu.: 0.070480
## Median :19.08 Median : 0.428240
## Mean :18.85 Mean : 0.607663
## 3rd Qu.:19.97 3rd Qu.: 0.729127
## Max. :25.33 Max. : 7.010263
wss <- numeric(10)
for(k in 1:10){
km <- kmeans(UAP_scaled, centers = k, nstart = 25)
wss[k] <- km$tot.withinss
}
elbow_df <- data.frame(k = 1:10, wss = wss)
ggplot(elbow_df, aes(k, wss)) +
geom_point() +
geom_line() +
scale_x_continuous(breaks = 1:10) +
labs(title = "Elbow Plot",
x = "Jumlah Cluster (k)",
y = "Total Within Sum of Squares") +
theme_minimal()
sil_width <- numeric(9)
for(k in 2:10){
km <- kmeans(UAP_scaled, centers = k, nstart = 25)
ss <- silhouette(km$cluster, dist(UAP_scaled))
sil_width[k-1] <- mean(ss[, 3])
}
## Warning: Quick-TRANSfer stage steps exceeded maximum (= 249950)
## Warning: did not converge in 10 iterations
## Warning: did not converge in 10 iterations
## Warning: did not converge in 10 iterations
sil_df <- data.frame(k = 2:10, sil_width = sil_width)
ggplot(sil_df, aes(k, sil_width)) +
geom_point() +
geom_line() +
labs(title = "Silhouette Plot",
x = "Jumlah Cluster (k)",
y = "Rata-rata Silhouette Width") +
theme_minimal()
k_choose <- 3
km_final <- kmeans(UAP_scaled, centers = k_choose, nstart = 50, iter.max = 500)
print(km_final)
## K-means clustering with 3 clusters of sizes 2599, 868, 1532
##
## Cluster means:
## u g r i z redshift
## 1 0.6704793 0.6510903 0.5291776 0.4224691 0.3553327 -0.2233254
## 2 -0.1746320 0.2213685 0.6472115 0.8977654 0.9905183 1.7693160
## 3 -1.0385086 -1.2299813 -1.2644335 -1.2253639 -1.1640206 -0.6235925
##
## Clustering vector:
## [1] 1 1 1 1 3 1 1 1 1 1 1 1 1 3 1 1 1 2 1 3 1 1 1 2 3 1 1 1 3 3 1 1 1 2 1 1 1
## [38] 3 1 1 1 1 1 1 1 1 2 2 2 1 1 2 1 1 3 1 1 3 1 1 3 1 3 1 1 3 3 3 1 1 3 2 2 3
## [75] 2 1 1 1 1 1 2 1 1 2 1 2 1 2 3 1 3 1 1 1 1 1 3 1 2 1 1 1 1 3 1 1 3 2 1 3 1
## [112] 1 1 1 1 2 2 1 2 1 1 2 1 1 1 1 1 3 3 1 3 3 1 3 3 3 1 1 1 1 1 3 3 2 3 1 3 1
## [149] 3 1 1 3 1 3 1 1 2 1 1 1 1 2 1 1 3 1 3 3 1 1 1 1 1 3 2 2 1 3 1 1 1 3 1 3 1
## [186] 1 1 1 3 1 1 3 3 1 1 1 1 1 3 3 3 1 3 3 3 3 2 2 1 2 1 1 3 1 3 3 3 3 1 1 1 1
## [223] 2 1 2 2 1 3 2 3 1 1 1 3 1 1 1 3 3 1 2 3 3 3 1 1 1 1 2 3 2 1 1 1 1 3 2 3 2
## [260] 3 1 1 1 1 3 2 1 1 1 1 1 1 1 3 3 3 3 1 1 1 3 2 2 1 3 1 1 1 1 1 1 3 3 1 2 2
## [297] 2 3 3 3 2 1 1 1 1 1 1 3 1 3 3 1 2 2 1 1 1 2 3 3 1 1 3 1 1 1 3 3 2 1 3 1 1
## [334] 1 1 3 2 3 1 1 3 2 3 3 1 1 1 1 1 1 1 1 1 1 1 1 3 2 1 1 1 1 1 1 3 3 3 2 3 3
## [371] 3 1 1 1 1 1 2 3 3 3 1 3 2 2 2 2 1 3 2 3 1 3 1 1 3 1 3 1 3 1 2 1 1 2 1 1 1
## [408] 1 3 3 3 1 2 1 1 1 3 1 3 3 1 3 1 1 1 1 3 3 1 1 1 2 1 1 3 1 3 3 1 3 1 1 1 1
## [445] 1 1 1 1 3 1 3 1 1 1 3 2 1 2 2 3 1 1 2 1 1 1 1 3 1 1 1 1 1 1 2 3 1 1 1 1 3
## [482] 3 3 1 1 3 2 1 2 2 3 1 1 1 1 1 3 3 1 3 3 1 1 3 1 1 1 1 3 1 2 3 2 3 1 1 1 3
## [519] 3 1 3 3 1 3 1 3 1 3 1 2 1 3 1 1 1 3 1 1 3 1 3 1 1 1 1 3 1 3 3 3 1 3 1 1 2
## [556] 1 1 1 3 3 1 1 1 1 1 1 1 1 3 1 1 1 1 1 1 1 1 1 1 2 1 1 3 3 3 1 1 1 2 3 3 1
## [593] 2 3 1 2 1 3 1 1 3 1 1 1 1 3 3 1 1 1 3 3 3 1 1 1 3 3 2 3 1 1 2 2 2 1 1 1 3
## [630] 1 1 2 3 2 1 3 1 3 1 1 3 1 2 3 1 1 3 1 2 1 2 2 3 2 1 2 1 3 3 1 1 1 3 3 1 1
## [667] 1 1 1 3 3 3 3 1 1 1 3 3 1 1 1 2 3 3 3 1 3 1 3 2 3 1 2 1 1 1 1 1 1 2 2 1 1
## [704] 1 1 2 1 1 3 1 3 2 1 2 2 1 1 3 1 1 3 1 1 3 1 1 1 3 3 1 1 2 3 1 1 1 1 3 3 1
## [741] 2 1 2 3 3 2 1 1 1 3 1 1 1 2 2 2 3 2 1 3 1 3 1 3 1 1 1 1 1 2 1 2 1 3 2 1 3
## [778] 3 1 3 1 1 1 1 1 3 3 1 1 3 3 1 2 1 2 2 2 1 1 1 1 3 1 3 1 1 2 2 1 3 3 3 3 1
## [815] 1 2 1 2 3 3 3 1 3 1 3 1 3 3 1 3 2 1 1 3 3 3 1 1 1 1 3 1 1 3 1 1 3 3 1 3 1
## [852] 3 3 1 1 2 3 1 1 3 3 3 1 1 1 1 1 1 3 2 1 1 2 1 1 2 2 3 1 3 2 3 1 2 1 1 1 1
## [889] 1 1 3 1 3 1 1 2 2 1 1 3 3 3 1 1 1 2 1 1 1 3 3 2 1 1 3 2 1 2 2 1 1 1 1 2 1
## [926] 1 3 1 1 1 1 1 1 2 2 2 1 1 1 3 3 1 1 3 1 1 3 1 1 2 2 3 1 3 2 2 1 1 3 3 1 1
## [963] 3 1 1 1 1 1 1 3 3 3 1 1 1 1 2 2 1 3 1 1 1 1 3 3 1 1 2 1 1 3 1 1 1 1 1 1 1
## [1000] 1 3 1 3 3 1 3 1 1 2 1 1 3 2 1 1 2 3 3 1 3 1 1 2 1 1 2 3 3 1 3 1 1 1 1 3 3
## [1037] 1 3 1 3 3 1 1 1 1 3 1 1 1 1 3 1 3 1 2 2 1 2 2 1 1 1 1 1 3 1 3 1 2 3 1 1 1
## [1074] 3 1 1 1 1 1 1 2 2 1 3 1 3 3 3 1 3 3 3 3 3 1 1 1 1 1 1 1 1 1 3 3 1 1 1 1 2
## [1111] 3 1 1 1 1 1 1 1 2 3 1 2 3 1 3 3 1 3 2 1 1 1 1 3 1 1 1 1 1 3 1 1 3 1 3 1 1
## [1148] 1 1 3 3 1 3 1 1 2 3 3 3 2 3 1 2 1 1 3 3 3 3 2 1 1 2 3 1 3 1 1 1 1 1 1 1 3
## [1185] 1 1 1 1 2 1 2 1 3 2 1 2 1 1 1 3 1 3 3 1 1 1 3 3 3 3 1 3 1 3 2 1 1 1 3 1 3
## [1222] 1 1 1 3 3 1 3 1 1 1 1 2 1 1 1 1 1 2 1 3 1 1 1 1 1 1 1 3 1 3 1 1 2 1 1 1 3
## [1259] 1 1 1 3 2 1 3 1 1 3 1 1 3 1 1 1 1 3 3 1 3 3 3 1 1 1 1 1 3 1 1 1 1 1 3 2 1
## [1296] 3 1 2 1 1 3 3 1 1 1 1 3 1 1 2 1 3 1 3 3 1 1 1 1 2 3 3 1 1 3 3 3 1 3 1 2 3
## [1333] 1 3 1 1 3 2 1 1 3 1 2 2 1 1 1 3 1 1 1 1 3 3 1 3 1 3 1 1 1 1 1 1 3 3 1 1 1
## [1370] 3 1 1 1 1 1 1 1 3 3 1 2 2 1 2 2 1 1 1 3 3 1 1 1 3 3 2 1 1 1 1 1 1 3 3 1 2
## [1407] 1 3 2 3 1 1 1 1 3 1 1 3 3 2 1 1 3 3 3 1 3 3 3 3 3 1 1 1 1 3 2 1 3 2 1 1 3
## [1444] 1 3 1 2 3 2 1 2 3 3 1 1 3 2 1 3 3 3 1 2 1 2 1 1 3 3 3 2 1 3 3 3 3 2 2 3 1
## [1481] 1 1 3 3 1 1 3 1 3 3 1 3 1 1 2 1 2 3 1 1 2 1 2 3 3 1 2 1 1 3 3 1 1 3 1 2 2
## [1518] 3 3 1 1 1 1 2 3 1 2 3 3 1 3 3 1 1 1 1 1 1 1 2 1 3 1 3 1 1 1 1 2 1 1 1 1 2
## [1555] 2 3 1 2 1 1 3 1 3 1 1 1 1 3 1 1 1 1 1 1 3 3 1 3 2 2 2 1 1 1 1 1 1 1 2 1 3
## [1592] 1 3 1 1 3 1 2 2 3 1 1 1 1 3 1 1 1 3 1 2 3 1 1 3 1 2 2 2 2 1 1 1 1 1 1 1 3
## [1629] 1 1 1 2 1 1 1 1 3 1 1 3 1 1 1 1 2 1 1 3 3 1 3 3 1 1 1 1 2 3 1 2 2 3 2 1 1
## [1666] 2 1 1 1 1 1 3 1 3 1 1 3 1 3 1 1 1 1 3 2 3 1 1 1 1 2 1 2 2 2 1 3 1 1 2 1 1
## [1703] 1 3 3 1 1 1 1 3 1 1 1 1 1 3 3 1 1 1 2 1 1 1 1 1 1 3 3 1 1 1 1 1 1 1 3 3 2
## [1740] 2 1 3 1 3 1 3 1 3 1 2 1 1 1 1 1 3 2 1 1 1 1 1 1 3 3 3 3 1 1 2 3 1 1 1 3 3
## [1777] 1 1 3 1 1 1 2 1 3 1 1 1 2 1 2 2 1 1 1 1 1 2 1 2 3 3 3 2 2 3 1 2 3 1 1 1 3
## [1814] 1 1 1 3 3 2 1 1 2 1 1 1 1 1 3 1 2 2 1 3 1 1 1 1 2 1 2 1 1 1 1 2 2 3 1 1 3
## [1851] 3 1 1 2 3 2 1 2 2 1 2 2 1 2 3 3 2 1 2 1 3 1 1 1 1 3 1 2 2 1 3 1 1 3 3 2 1
## [1888] 1 3 1 1 1 1 1 1 3 3 3 3 2 1 2 1 1 2 3 3 1 3 1 1 3 1 1 3 1 3 1 1 1 1 3 3 3
## [1925] 1 3 2 2 1 1 3 2 1 1 3 3 1 1 1 3 1 3 1 1 1 1 1 1 2 2 3 1 3 1 1 1 1 1 1 3 1
## [1962] 1 3 3 2 3 2 3 3 1 1 3 3 1 3 1 1 3 1 3 1 2 2 2 1 2 1 1 1 3 1 3 2 3 2 3 3 2
## [1999] 1 3 3 1 1 3 3 2 1 3 3 1 1 1 1 1 3 3 1 2 3 1 1 1 3 1 2 1 1 3 3 2 3 1 2 1 2
## [2036] 1 1 1 2 2 3 1 1 1 3 3 1 3 1 1 3 1 1 3 1 3 2 3 2 3 1 1 1 3 2 1 3 1 1 2 2 3
## [2073] 2 1 1 3 2 2 2 2 1 3 1 1 1 3 3 1 2 2 2 1 2 2 2 3 3 3 1 3 2 1 1 3 3 1 1 1 1
## [2110] 2 2 1 3 1 3 3 1 1 2 1 1 1 3 1 1 3 3 1 3 2 1 1 1 1 1 1 1 1 1 1 1 1 2 2 1 2
## [2147] 1 1 2 2 3 1 3 1 3 3 1 2 3 1 1 3 3 2 1 1 2 1 1 1 1 1 3 3 3 3 2 3 3 1 1 3 1
## [2184] 1 3 2 1 3 1 1 3 2 1 2 1 1 3 3 1 1 1 3 1 1 3 3 2 1 1 3 1 3 2 2 3 2 2 1 1 1
## [2221] 1 1 1 3 1 1 1 1 1 1 1 3 3 2 2 2 1 3 3 1 1 1 1 1 1 2 2 1 1 2 3 3 3 1 1 1 3
## [2258] 1 1 3 1 1 1 1 1 2 1 2 1 3 1 2 2 3 1 1 3 1 2 1 2 2 3 2 1 1 1 3 3 3 1 3 1 3
## [2295] 1 1 1 1 1 2 2 3 1 1 1 1 1 1 1 1 2 3 1 3 3 1 3 1 1 3 1 1 3 3 3 1 1 2 3 2 3
## [2332] 3 2 3 1 3 3 2 3 2 1 2 1 2 1 2 3 3 3 3 1 3 1 3 2 3 1 2 3 1 1 3 1 1 2 3 1 3
## [2369] 1 2 3 3 3 1 2 3 1 2 2 3 1 2 2 1 1 1 3 3 1 2 1 3 1 1 1 1 3 3 3 1 2 1 3 3 1
## [2406] 1 3 3 1 3 2 1 1 3 3 3 3 3 2 1 2 3 1 1 2 3 2 2 1 2 2 1 3 3 3 3 3 1 1 1 1 3
## [2443] 3 1 1 1 1 2 2 3 3 3 1 3 3 3 2 1 3 1 1 2 1 2 1 1 1 3 2 1 1 2 1 3 3 1 3 1 2
## [2480] 2 1 1 1 3 2 2 2 2 2 3 1 1 3 3 3 3 3 1 1 3 1 1 1 1 3 1 1 3 1 3 3 1 2 2 2 3
## [2517] 2 1 1 1 2 3 1 1 1 3 1 3 3 3 3 3 1 2 1 1 1 1 2 1 3 3 1 1 3 3 2 1 1 2 1 1 3
## [2554] 3 3 1 2 1 1 1 1 3 1 3 1 3 2 1 3 1 2 1 1 1 2 1 2 1 1 1 1 1 1 3 1 1 3 3 3 3
## [2591] 1 3 3 3 3 1 3 2 1 3 3 3 3 1 1 1 1 3 1 2 2 1 1 3 1 1 3 1 1 1 3 1 2 1 1 1 3
## [2628] 1 3 3 2 2 1 3 1 2 1 1 1 2 1 1 1 3 1 1 3 2 1 1 2 3 1 1 1 3 3 1 1 1 1 3 3 1
## [2665] 1 1 1 1 2 2 3 1 3 2 3 3 2 3 1 1 1 1 1 2 1 1 3 1 1 1 1 3 1 3 2 1 1 3 1 1 3
## [2702] 3 1 2 1 1 1 1 1 3 3 2 1 1 1 1 1 3 1 1 1 1 1 1 2 1 3 1 3 1 3 1 1 1 3 1 3 1
## [2739] 3 3 3 1 2 1 2 3 2 1 2 1 1 1 3 3 3 2 1 2 2 1 3 2 1 1 1 1 3 1 1 3 3 3 2 3 3
## [2776] 2 1 3 1 3 3 3 1 1 3 3 3 1 3 1 2 1 1 3 1 1 2 1 3 1 2 1 1 3 2 1 3 3 1 3 1 1
## [2813] 1 2 2 3 1 1 2 3 1 1 1 3 2 1 1 1 2 2 3 3 1 1 1 1 1 3 3 3 1 1 2 1 1 2 3 3 3
## [2850] 3 1 2 2 1 3 1 1 3 1 1 3 2 2 1 1 1 3 1 1 1 1 1 2 1 1 1 2 1 3 1 1 2 3 3 3 1
## [2887] 1 3 2 3 1 3 1 1 1 3 2 1 3 1 2 1 1 1 1 1 1 1 1 3 3 1 1 1 3 2 2 1 3 3 3 1 1
## [2924] 3 1 3 3 1 3 1 1 1 2 1 3 1 3 1 3 1 1 1 3 1 3 3 1 2 1 3 1 1 3 1 3 3 1 1 2 2
## [2961] 3 1 1 3 3 3 3 1 3 1 3 2 3 1 3 1 3 3 1 1 1 1 1 2 1 3 3 1 3 3 1 1 1 1 1 1 2
## [2998] 1 1 2 1 1 1 3 1 3 2 1 3 3 1 1 3 1 3 3 1 1 1 1 1 3 1 1 1 3 3 3 1 2 1 2 2 1
## [3035] 1 3 2 1 1 3 2 1 3 1 1 1 1 1 2 3 3 1 1 3 3 1 2 1 2 3 2 3 3 1 3 1 2 3 3 1 1
## [3072] 3 3 2 2 3 3 1 1 1 1 1 1 3 1 1 3 3 3 3 1 3 1 1 2 1 3 3 3 3 1 1 3 3 1 3 2 1
## [3109] 1 3 2 3 1 1 1 3 2 2 1 2 1 1 1 3 2 2 1 3 1 1 3 3 3 1 2 1 3 1 3 2 3 2 3 1 3
## [3146] 2 2 1 1 3 1 1 1 2 1 3 3 1 1 3 3 1 1 3 2 1 2 1 1 3 3 1 1 3 1 3 1 1 1 1 1 3
## [3183] 3 2 1 2 1 3 1 3 1 1 2 1 1 3 2 1 1 1 1 2 1 3 3 2 1 2 2 1 2 3 1 1 1 2 3 2 1
## [3220] 3 2 1 1 2 3 1 1 1 3 3 1 3 1 3 3 1 1 3 3 3 1 1 2 2 3 2 1 2 1 3 2 2 3 1 1 3
## [3257] 3 3 3 2 2 1 3 1 1 3 1 3 2 1 1 1 1 1 1 2 3 1 3 1 3 3 1 3 2 3 2 2 2 2 1 3 1
## [3294] 3 1 3 1 2 3 2 3 1 2 1 3 1 1 2 2 1 1 1 1 1 2 2 1 3 3 3 1 2 3 1 2 1 1 1 1 2
## [3331] 1 3 2 1 2 1 1 1 1 2 2 1 3 1 1 3 1 3 2 3 1 1 2 2 1 3 3 3 3 1 1 1 2 3 1 1 3
## [3368] 3 1 1 2 2 1 3 1 1 2 1 3 2 2 2 1 1 2 2 2 3 1 3 1 3 1 2 1 2 3 3 2 1 1 1 1 1
## [3405] 1 2 2 1 3 1 3 2 1 3 1 2 1 1 1 2 3 1 3 1 1 1 1 2 2 1 1 1 2 3 3 3 1 3 1 1 2
## [3442] 1 1 3 3 1 1 3 3 3 3 1 1 1 1 1 1 2 1 3 3 3 3 1 3 1 3 1 3 1 2 1 2 1 3 1 2 3
## [3479] 1 1 3 2 2 1 3 1 2 1 1 1 1 1 3 2 2 1 1 1 1 3 3 3 2 3 2 3 2 2 1 1 2 3 3 1 3
## [3516] 3 3 3 2 3 1 3 3 3 1 1 3 2 2 3 3 1 2 3 1 1 3 2 1 1 3 1 1 1 3 1 2 3 3 1 1 2
## [3553] 3 1 2 3 1 1 1 1 1 3 3 1 1 3 2 1 1 1 2 3 2 1 3 1 1 3 3 1 1 1 1 2 3 3 1 1 1
## [3590] 1 2 1 2 1 3 3 2 3 1 1 3 2 1 2 2 2 2 2 1 1 1 1 1 1 1 1 1 3 1 3 1 1 1 3 3 3
## [3627] 1 1 1 2 2 2 1 1 1 1 2 2 1 1 1 1 3 1 1 2 1 2 1 1 3 1 2 3 1 1 1 3 1 3 1 3 1
## [3664] 1 1 2 2 3 2 2 2 2 3 3 3 2 3 3 1 3 2 1 3 1 1 1 2 2 1 3 1 2 1 1 3 3 1 3 1 1
## [3701] 1 1 3 1 3 3 1 1 1 1 3 3 3 3 3 3 1 1 3 2 3 1 1 1 3 1 1 3 3 1 3 1 1 1 3 3 3
## [3738] 2 1 2 1 3 2 1 3 1 1 3 3 3 2 1 2 1 3 2 1 1 1 1 1 3 3 1 3 3 3 3 3 2 2 2 3 1
## [3775] 3 3 3 3 3 3 2 2 2 3 1 1 1 1 1 3 2 3 3 1 1 1 3 3 3 1 1 1 1 1 2 3 1 1 2 1 3
## [3812] 1 1 2 2 2 2 2 1 1 2 3 1 3 3 1 3 3 1 1 1 3 3 1 3 3 1 1 1 1 2 2 2 2 1 3 1 1
## [3849] 3 3 3 2 2 2 2 1 1 1 1 3 1 1 3 3 1 3 1 1 3 2 3 3 1 1 3 1 2 1 3 2 2 3 1 1 1
## [3886] 3 3 3 1 1 1 1 2 1 3 3 1 1 1 3 2 2 3 1 3 1 1 2 1 2 3 2 1 1 1 1 1 1 2 1 3 2
## [3923] 1 3 2 3 1 1 1 3 3 3 3 1 1 3 1 1 1 3 2 2 2 3 1 1 3 1 2 1 2 1 1 2 2 1 1 1 1
## [3960] 1 3 2 1 2 3 1 1 1 3 1 1 1 3 3 2 2 1 1 3 3 1 1 1 1 1 1 1 1 2 3 1 1 1 2 1 1
## [3997] 1 3 2 1 3 3 1 3 1 1 3 1 1 2 1 1 1 2 1 1 1 1 1 3 3 1 3 3 3 2 1 1 3 3 1 2 1
## [4034] 2 2 2 3 2 1 2 2 3 1 1 3 2 1 1 1 1 3 1 3 3 3 3 3 3 1 3 3 1 3 1 1 1 2 3 3 1
## [4071] 1 1 3 3 3 1 3 3 1 1 1 1 1 3 2 2 3 3 1 1 1 3 3 3 3 1 1 1 1 3 2 3 1 1 1 1 2
## [4108] 1 1 3 1 1 3 1 3 2 3 3 3 1 2 3 2 1 2 1 2 3 3 3 1 3 1 1 3 3 3 2 2 2 2 1 1 1
## [4145] 3 2 2 1 2 2 1 1 1 1 3 1 1 1 1 3 1 1 1 1 3 1 1 3 1 1 3 1 1 1 3 3 3 3 3 1 1
## [4182] 1 3 3 1 2 1 3 1 1 1 2 1 1 3 1 1 2 3 2 2 2 3 1 1 1 1 2 3 3 2 3 1 1 3 1 2 3
## [4219] 1 1 1 1 3 3 2 1 1 1 3 3 2 3 1 1 1 1 2 2 3 1 3 1 2 1 3 1 2 1 1 1 3 3 3 3 1
## [4256] 3 1 3 1 1 2 1 1 1 1 1 3 3 3 1 1 1 3 1 1 3 3 3 3 2 2 1 2 2 1 3 3 2 2 2 2 1
## [4293] 1 3 1 1 3 1 1 1 1 1 2 1 1 1 1 2 1 3 1 1 3 1 1 1 1 1 3 3 3 1 1 1 1 1 3 1 1
## [4330] 3 3 3 1 1 1 1 1 1 3 3 1 3 1 1 1 2 3 1 1 1 3 2 1 1 1 2 1 1 3 1 2 2 2 1 1 3
## [4367] 3 1 1 3 3 1 3 1 1 1 1 3 1 3 1 1 1 2 3 1 1 1 1 1 2 3 1 2 1 3 1 3 1 3 1 3 3
## [4404] 2 3 3 1 1 1 1 3 1 1 1 2 3 2 1 1 2 2 3 2 1 1 1 3 1 3 3 2 3 3 1 3 1 1 3 1 3
## [4441] 1 1 1 2 3 1 1 3 1 3 3 2 1 3 3 3 2 3 1 1 2 1 1 1 3 3 1 2 1 1 2 3 3 1 3 2 1
## [4478] 2 1 3 3 3 1 3 2 1 1 1 3 1 1 1 3 2 1 3 3 1 1 2 3 1 2 2 2 2 2 1 1 1 1 1 3 3
## [4515] 3 3 1 2 1 1 3 2 1 1 3 3 2 3 2 1 2 2 2 1 1 1 3 3 2 3 1 1 1 2 3 3 1 1 1 1 1
## [4552] 1 1 1 3 1 1 2 3 2 1 2 3 3 2 1 1 1 1 1 3 3 1 2 2 1 2 1 1 2 1 1 2 2 3 1 2 3
## [4589] 1 1 1 1 1 1 3 1 1 1 3 1 1 1 3 2 3 2 1 3 3 1 1 3 3 2 2 1 2 3 2 2 1 1 3 1 1
## [4626] 3 1 1 3 2 3 1 3 3 3 3 1 3 3 1 1 3 2 3 1 3 1 2 1 1 3 1 3 3 3 3 3 1 1 3 1 3
## [4663] 3 1 1 1 2 3 2 2 1 2 2 1 1 1 2 1 3 3 3 3 1 1 1 1 2 1 3 3 1 1 3 3 3 1 1 3 1
## [4700] 1 1 1 3 3 1 3 1 1 3 3 1 1 1 3 1 1 2 1 1 2 1 1 1 1 1 2 1 1 3 1 3 1 1 2 1 3
## [4737] 3 1 3 3 3 1 1 2 2 2 2 2 1 3 3 1 3 1 3 1 1 1 1 1 1 3 2 1 1 3 3 1 2 2 3 3 2
## [4774] 2 1 1 3 1 1 2 1 3 1 1 3 1 2 3 1 1 2 1 1 3 3 1 1 3 1 1 3 1 3 1 1 3 2 2 1 1
## [4811] 1 1 3 1 2 1 3 1 3 3 3 3 3 3 2 2 3 3 3 2 2 1 2 2 2 1 3 1 1 1 1 1 1 3 1 3 2
## [4848] 3 2 1 1 2 3 1 1 1 1 3 1 2 2 1 2 2 2 3 1 1 1 2 2 2 1 3 2 3 2 3 3 3 3 3 1 2
## [4885] 2 1 1 3 1 3 3 1 1 1 2 3 1 3 3 3 3 2 1 3 2 1 3 1 3 1 1 1 3 2 2 1 2 1 1 1 1
## [4922] 1 2 3 3 3 3 3 3 1 1 3 2 1 2 3 1 1 1 1 1 3 1 2 2 3 2 1 1 1 1 2 3 1 3 3 2 1
## [4959] 1 3 3 2 1 2 3 3 3 3 1 1 1 2 2 1 2 2 2 2 1 1 1 1 3 1 1 1 3 1 1 1 3 2 1 1 2
## [4996] 2 3 1 3
##
## Within cluster sum of squares by cluster:
## [1] 4885.762 2274.614 2815.848
## (between_SS / total_SS = 66.7 %)
##
## Available components:
##
## [1] "cluster" "centers" "totss" "withinss" "tot.withinss"
## [6] "betweenss" "size" "iter" "ifault"
table(km_final$cluster)
##
## 1 2 3
## 2599 868 1532
UAP_result <- UAP_num %>% mutate(cluster = factor(km_final$cluster))
pca <- prcomp(UAP_scaled)
pca_df <- data.frame(
PC1 = pca$x[,1],
PC2 = pca$x[,2],
cluster = factor(km_final$cluster)
)
ggplot(pca_df, aes(PC1, PC2, color = cluster)) +
geom_point(size = 2, alpha = 0.7) +
labs(title = paste("PCA Plot K-Means (k =", k_choose, ")"),
x = "PC1", y = "PC2") +
theme_minimal()
fviz_cluster(km_final, data = UAP_scaled,
geom = "point",
ellipse.type = "convex",
repel = TRUE,
main = paste("Cluster Plot (k =", k_choose, ")"))
sil <- silhouette(km_final$cluster, dist(UAP_scaled))
fviz_silhouette(sil)
## cluster size ave.sil.width
## 1 1 2599 0.38
## 2 2 868 0.33
## 3 3 1532 0.57
centers_df <- as.data.frame(km_final$centers)
centers_df$cluster <- paste("Cluster", 1:k_choose)
centers_melt <- melt(centers_df, id = "cluster")
ggplot(centers_melt, aes(variable, cluster, fill = value)) +
geom_tile() +
scale_fill_gradient(low = "white", high = "lightpink") +
labs(title = "Profil Cluster (Centroid Heatmap)",
x = "Variabel", y = "Cluster") +
theme_minimal()
for (var in colnames(UAP_num)) {
print(
ggplot(UAP_result, aes(x = cluster, y = .data[[var]], fill = cluster)) +
geom_boxplot(alpha = 0.7) +
theme_minimal() +
labs(title = paste("Boxplot", var),
x = "Cluster", y = var)
)
}
Berdasarkan hasil eksplorasi data yang disajikan pada tabel ringkasan statistik, karakteristik variabel fotometrik (u, g, r, i, z) menunjukkan pola spektral yang konsisten. Nilai rata-rata (mean) magnitudo terlihat menurun secara bertahap dari filter dengan panjang gelombang terpendek menuju yang terpanjang, dimulai dari 22,13 pada filter ultraviolet (u) hingga 18,85 pada filter inframerah (z). Dalam konteks fotometri astronomi, penurunan nilai magnitudo ini mengindikasikan bahwa secara umum objek-objek langit dalam dataset SDSS17 memiliki intensitas cahaya yang lebih terang pada spektrum merah dan inframerah dibandingkan pada spektrum ultraviolet. Selain itu, kelima filter tersebut memiliki rentang variasi data (range) yang cukup lebar, dengan nilai minimum berkisar di angka 10 hingga 12 dan nilai maksimum mencapai 29. Variasi yang tinggi pada intensitas cahaya ini mengonfirmasi bahwa dataset mencakup keragaman objek yang luas, mulai dari benda langit yang sangat terang hingga yang sangat redup, yang merupakan modal penting bagi algoritma clustering untuk dapat membedakan karakteristik antar-objek secara optimal. Di sisi lain, variabel redshift atau geseran merah menunjukkan perilaku distribusi data yang berbeda dibandingkan variabel fotometrik. Statistik menunjukkan adanya kemencengan distribusi (skewness) ke arah positif, yang ditandai dengan nilai mean (0,607) yang lebih besar dibandingkan nilai median (0,428). Hal ini diperkuat dengan keberadaan nilai maksimum yang ekstrem mencapai 7,01, jauh melampaui kuartil ketiga data. Nilai ekstrem ini kemungkinan besar merepresentasikan keberadaan Quasar atau objek kosmologis yang jaraknya sangat jauh, sementara mayoritas data terkonsentrasi pada nilai redshift rendah yang merepresentasikan galaksi atau bintang pada jarak menengah. Terdapat pula nilai minimum negatif (-0,004) yang mengindikasikan adanya sebagian kecil objek yang bergerak mendekat atau merupakan bintang lokal dalam galaksi, yang secara statistik berbeda dari populasi utama. Temuan deskriptif ini memberikan implikasi penting terhadap langkah pra-pemrosesan sebelum penerapan metode K-Means Clustering. Terdapat perbedaan skala pengukuran yang sangat mencolok antara variabel magnitudo yang bernilai puluhan (rentang 10–29) dan variabel redshift yang mayoritas bernilai desimal (0–1). Mengingat algoritma K-Means bekerja berdasarkan perhitungan jarak (Euclidean distance) yang sensitif terhadap besaran angka, kondisi data seperti ini berpotensi menyebabkan variabel magnitudo mendominasi pembentukan cluster dan menenggelamkan pengaruh variabel redshift. Oleh karena itu, proses standarisasi data (scaling) menjadi tahapan mutlak yang harus dilakukan agar setiap variabel memiliki bobot yang setara dalam menentukan pengelompokan objek langit yang terbentuk nantinya.
Penentuan jumlah cluster terbaik dilakukan dengan menggunakan metode Elbow, yang mengukur nilai Total Within Sum of Squares (WSS) untuk melihat seberapa kompak pengelompokan data pada setiap jumlah k. Berdasarkan grafik Elbow Plot yang disajikan, terlihat adanya tren penurunan nilai WSS yang drastis seiring dengan bertambahnya jumlah cluster dari 1 hingga 3. Penurunan nilai WSS yang tajam ini mengindikasikan bahwa penambahan cluster memberikan kontribusi yang signifikan dalam mengurangi variansi di dalam kelompok. Titik potong atau “siku” (elbow) pada grafik terlihat terbentuk secara jelas pada saat k=3. Setelah titik ini, penurunan nilai WSS mulai melandai dan tidak lagi se-signifikan sebelumnya (dari k=4 hingga k=10). Hal ini menandakan bahwa penambahan jumlah cluster melebihi 3 tidak lagi memberikan keuntungan yang besar dalam memisahkan karakteristik data (“diminishing returns”). Oleh karena itu, berdasarkan prinsip efisiensi dan pola penurunan variansi tersebut, diputuskan bahwa jumlah cluster optimal yang akan digunakan dalam analisis selanjutnya adalah sebanyak 3 cluster.
Sebagai langkah validasi untuk memastikan kualitas pengelompokan, digunakan metode Average Silhouette. Grafik Silhouette Plot di atas memperlihatkan nilai rata-rata silhouette width untuk berbagai jumlah cluster. Secara matematis, nilai rata-rata silhouette tertinggi dicapai pada saat k=2 (dengan nilai mendekati 0,49), yang mengindikasikan bahwa data sebenarnya terpisah sangat baik secara global menjadi dua kelompok besar. Namun, grafik juga menunjukkan bahwa nilai silhouette untuk k=3 masih berada pada tingkat yang relatif tinggi dan kompetitif, yaitu di kisaran 0,43. Setelah melewati k=3, terjadi penurunan nilai silhouette yang tajam dan konsisten hingga k=10, yang menandakan bahwa struktur cluster menjadi semakin lemah dan tumpang tindih jika dibagi menjadi lebih dari tiga kelompok. Meskipun k=2 memiliki nilai objektif tertinggi, pemilihan jumlah cluster sebanyak 3 (k=3) diputuskan sebagai titik optimal dengan mempertimbangkan hasil dari Elbow Method sebelumnya yang menunjukkan lekukan tegas pada titik tersebut, serta pertimbangan substansi data astronomi. Penggunaan 3 cluster dianggap lebih mampu menangkap variasi detail objek langit (seperti potensi pemisahan antara bintang, galaksi, dan quasar) dibandingkan hanya 2 cluster, dengan tetap mempertahankan nilai validitas silhouette yang solid (di atas 0,4). Oleh karena itu, model K-Means dengan 3 cluster dipilih untuk analisis karakteristik selanjutnya.
Grafik cluster plot di atas mempertegas struktur pengelompokan dengan
menampilkan convex hull atau area poligon yang melingkupi persebaran
anggota setiap cluster. Informasi krusial yang disajikan grafik ini
adalah persentase variansi data yang mampu dijelaskan oleh kedua sumbu
utama, di mana Dim1 (74%) dan Dim2 (16,1%) secara kumulatif
merepresentasikan 90,1% informasi dari total dataset. Tingginya angka
representasi ini (di atas 80%) menjamin bahwa visualisasi dua dimensi
ini sangat akurat dan dapat dipercaya untuk menggambarkan struktur data
yang sebenarnya. Secara geometris, poligon-poligon tersebut menunjukkan
batasan wilayah yang relatif terpisah antar kelompok. Meskipun terdapat
sedikit persinggungan pada area perbatasan, tidak terlihat adanya
tumpang tindih yang signifikan antar poligon. Hal ini mengonfirmasi
bahwa meskipun objek langit memiliki variasi yang kontinu, algoritma
K-Means berhasil menarik garis batas yang tegas untuk memisahkan
karakteristik unik dari Cluster 1 (Merah), Cluster 2 (Hijau), dan
Cluster 3 (Biru) secara optimal.
Visualisasi struktur cluster disajikan menggunakan proyeksi Principal
Component Analysis (PCA) pada dua dimensi utama. Grafik menunjukkan
bahwa Cluster 1, Cluster 2, dan Cluster 3 menempati ruang visual yang
berbeda, yang mengindikasikan adanya perbedaan karakteristik fotometrik
yang signifikan antar-kelompok. Sumbu Dimensi 1 dan Dimensi 2 mampu
merepresentasikan 90,1% dari total variansi data, sehingga visualisasi
ini sangat representatif terhadap struktur data yang sebenarnya.
Meskipun terlihat adanya sedikit irisan (overlap) pada batas area
poligon (convex hull) antara Cluster 1 dan Cluster 2, hal ini merupakan
fenomena yang wajar dalam reduksi dimensi. Irisan visual tersebut
terjadi akibat proyeksi data dari ruang enam dimensi ke dua dimensi.
Namun, mengingat tingginya nilai validitas silhouette dan jarak
antar-centroid yang cukup jauh, dapat disimpulkan bahwa secara matematis
ketiga kelompok tersebut tetap terpisah dengan baik (well-separated)
dalam ruang multidimensi aslinya.
Validasi internal terhadap kualitas pengelompokan dilakukan dengan menganalisis grafik Silhouette Plot. Metode ini mengukur tingkat kohesi (seberapa dekat suatu objek dengan anggota lain dalam satu cluster) dan tingkat separasi (seberapa jauh objek tersebut dari cluster tetangga). Berdasarkan hasil visualisasi di atas, nilai rata-rata silhouette width global yang diperoleh adalah sebesar 0,43. Dalam literatur analisis klaster, nilai ini mengindikasikan bahwa struktur pengelompokan yang terbentuk tergolong sedang (moderate structure). Artinya, data telah terbagi ke dalam kelompok-kelompok yang cukup jelas, meskipun masih terdapat kedekatan jarak antar-batas kelompok tertentu yang wajar terjadi pada data astronomi yang kompleks. Secara spesifik, kualitas setiap cluster menunjukkan tingkat stabilitas yang bervariasi:
• Cluster 3 (Biru) memiliki kualitas pembentukan terbaik dengan rata-rata silhouette width tertinggi, yaitu 0,57. Hal ini terlihat dari bentuk plot yang lebar dan konsisten positif, menandakan bahwa anggota kelompok ini (yang sebelumnya diidentifikasi sebagai objek paling terang/Bintang) sangat kompak dan terpisah jauh dari kelompok lain.
• Cluster 2 (Hijau) dan Cluster 1 (Merah) memiliki rata-rata width berturut-turut sebesar 0,38 dan 0,33. Nilai yang lebih rendah ini menunjukkan bahwa anggota di kedua kelompok ini memiliki variasi yang lebih tinggi atau posisinya relatif lebih dekat dengan batas pemisah antar-cluster.
Perlu diperhatikan bahwa pada Cluster 2, terlihat adanya sejumlah kecil garis silhouette yang bernilai negatif (ujung bawah grafik hijau yang melewati garis 0). Nilai negatif ini mengindikasikan adanya sebagian kecil objek yang berpotensi mengalami misclassification atau berada tepat di area perbatasan (overlapping region) dengan cluster tetangga. Namun, karena mayoritas nilai silhouette tetap positif dan nilai rata-rata global masih berada pada tingkat yang dapat diterima (> 0,4), maka hasil clustering ini dapat dinyatakan valid dan layak digunakan untuk interpretasi karakteristik lebih lanjut.
Visualisasi Centroid Heatmap memetakan karakteristik fisik setiap kelompok berdasarkan nilai rata-rata yang telah distandarisasi, di mana warna merah muda pekat menunjukkan nilai tinggi (di atas rata-rata) dan warna putih menunjukkan nilai rendah (di bawah rata-rata). Pola ini mengungkap identitas objek langit secara jelas berdasarkan kombinasi intensitas cahaya (magnitudo) dan jarak (redshift). Cluster 3 tampil paling berbeda dengan dominasi warna putih pada seluruh variabel magnitudo dan redshift. Warna putih ini menandakan nilai magnitudo yang sangat rendah (yang berarti objek sangat terang) serta jarak yang dekat dengan bumi. Profil “terang dan dekat” ini secara kuat mengidentifikasi anggota Cluster 3 sebagai Bintang (Stars). Kontras dengan itu, Cluster 1 ditandai dengan warna merah muda paling pekat pada kolom redshift, yang mengindikasikan jarak kosmologis sangat jauh. Dikombinasikan dengan magnitudo yang tinggi (cahaya redup), karakteristik ini konsisten dengan sifat Quasar. Di antara kedua ekstrem tersebut, Cluster 2 menunjukkan gradasi warna merah muda pudar yang merata, mencerminkan nilai magnitudo dan redshift pada kisaran menengah (rata-rata). Profil moderat ini merepresentasikan populasi Galaksi pada umumnya yang mendominasi survei langit. Dengan demikian, analisis ini berhasil memvalidasi terbentuknya tiga kelompok alami: Bintang (terang/dekat), Quasar (jauh), dan Galaksi (menengah).
Analisis mendalam terhadap variabel redshift dilakukan menggunakan Boxplot untuk melihat sebaran jarak kosmologis pada masing-masing kelompok. Grafik di atas memperlihatkan perbedaan distribusi yang sangat signifikan dan tegas antar-ketiga cluster, yang mengonfirmasi bahwa variabel redshift merupakan faktor diskriminan utama dalam pembentukan kelompok. Cluster 1 (Merah) menempati posisi paling tinggi dalam grafik dengan rentang nilai redshift yang sangat lebar. Nilai median kelompok ini berada di kisaran angka 2,0, namun memiliki whisker dan banyak pencilan (outliers) yang menjulur hingga mencapai angka 7,0. Tingginya nilai redshift serta besarnya variansi data pada kelompok ini mengindikasikan bahwa Cluster 1 berisi kumpulan objek yang berada pada jarak ekstrem dari bumi. Sebaran data yang menjulur jauh ke atas ini sangat konsisten dengan karakteristik Quasar, yang dikenal memiliki rentang jarak kosmologis yang sangat jauh dan bervariasi. Sebaliknya, Cluster 3 (Biru) menunjukkan distribusi data yang sangat memusat di angka nol. Kotak (box) pada plot ini terlihat sangat pipih dengan nilai median yang nyaris menyentuh garis nol, yang berarti objek-objek di dalamnya memiliki pergeseran merah yang sangat minim. Hal ini menjadi bukti kuat bahwa anggota Cluster 3 adalah objek lokal yang berada di dalam galaksi kita sendiri atau sangat dekat dengan bumi, yaitu Bintang (Stars). Sementara itu, Cluster 2 (Hijau) menempati posisi peralihan dengan distribusi data yang kompak di kisaran nilai 0,4 hingga 0,6. Rentang ini merepresentasikan jarak menengah yang khas bagi populasi Galaksi pada umumnya. Dengan demikian, boxplot ini secara visual memvalidasi pemisahan objek berdasarkan kedalaman ruang alam semesta: Bintang (dekat), Galaksi (menengah), dan Quasar (jauh).
Berdasarkan hasil analisis K-Means Clustering yang telah dilakukan pada Stellar Classification Dataset – SDSS17, dapat ditarik beberapa kesimpulan sebagai berikut:
Pembentukan Kelompok Alami Metode K-Means Clustering terbukti mampu mengelompokkan objek-objek langit dalam dataset SDSS17 secara alami berdasarkan kemiripan karakteristik variabel fotometrik (u, g, r, i, z) dan jarak kosmologis (redshift). Visualisasi menggunakan Principal Component Analysis (PCA) menunjukkan bahwa ketiga kelompok yang terbentuk menempati ruang visual yang berbeda dengan variansi data yang terjelaskan mencapai 90,1%, meskipun terdapat sedikit irisan visual akibat reduksi dimensi. Hal ini menandakan bahwa variabel magnitudo dan redshift merupakan parameter pembeda yang efektif dalam memisahkan jenis objek langit.
Jumlah Cluster Optimal Jumlah cluster optimal yang merepresentasikan pola alami data adalah sebanyak 3 cluster (k=3). Keputusan ini didasarkan pada metode Elbow yang menunjukkan penurunan variansi (within sum of squares) yang mulai melandai secara signifikan pada titik k=3. Selain itu, validasi menggunakan Silhouette Plot menghasilkan nilai rata-rata 0,43, yang mengindikasikan struktur pengelompokan yang moderat namun cukup stabil untuk membedakan karakteristik objek secara bermakna.
Interpretasi Karakteristik Cluster Hasil profiling karakteristik fisik menunjukkan bahwa setiap cluster merepresentasikan kelas objek astronomi yang spesifik dan konsisten dengan teori astrofisika:
o Cluster 1 merepresentasikan Quasar, ditandai dengan nilai redshift yang sangat tinggi (jarak ekstrem jauh) dan magnitudo tinggi (intensitas cahaya redup).
o Cluster 2 merepresentasikan Galaksi, ditandai dengan karakteristik magnitudo dan redshift yang berada pada kisaran menengah/rata-rata, serta menjadi populasi mayoritas dalam dataset.
o Cluster 3 merepresentasikan Bintang (Stars), ditandai dengan nilai redshift mendekati nol (jarak sangat dekat/lokal) dan nilai magnitudo yang sangat rendah (intensitas cahaya sangat terang).
Berdasarkan hasil praktikum ini, terdapat beberapa saran untuk pengembangan analisis selanjutnya:
Mengingat adanya sedikit overlap pada visualisasi PCA dan nilai silhouette yang moderat, disarankan untuk mencoba metode clustering lain yang berbasis densitas (seperti DBSCAN) atau model berbasis distribusi (seperti Gaussian Mixture Model) untuk melihat apakah dapat menangani perbatasan antar-kelas dengan lebih presisi.
Pada penelitian selanjutnya, dapat ditambahkan variabel fitur lain dari data SDSS (seperti data spektroskopi yang lebih detail) untuk meningkatkan ketajaman separasi antar cluster, khususnya untuk memisahkan galaksi jauh dengan Quasar yang memiliki kemiripan fotometrik.