install.packages(c(“readr”, “corrplot”, “factoextra”)) library(readr) library(corrplot) library(factoextra)
#wczytywanie danych spotify_data <- read_csv(“/Users/alege/Desktop/MAGISTERKA/maszynowe/dataset.csv”)
#podgląd danych str(spotify_data) head(spotify_data)
features <- spotify_data[, c(“danceability”, “energy”, “loudness”, “speechiness”, “acousticness”, “instrumentalness”, “liveness”, “valence”, “tempo”, “duration_ms”)]
features_na <- na.omit(features)
scaled_features <- scale(features_na)
head(scaled_features)
M <- cor(scaled_features)
corrplot(M, method = “circle”, type = “upper”, order = “hclust”, tl.col = “black”, tl.srt = 45, title = “Macierz Korelacji Atrybutów Spotify”)
spotify_pca <- prcomp(scaled_features, center = TRUE, scale = TRUE)
print(spotify_pca)
eigenvalues <- get_eigenvalue(spotify_pca) print(eigenvalues)
fviz_eig(spotify_pca, addlabels = TRUE, ylim = c(0, 50))
pca_loadings <- round(spotify_pca$rotation[, 1:4], 3) print(pca_loadings)
fviz_pca_biplot(spotify_pca, axes = c(1, 2), # Oś 1 i 2 col.var = “black”, # Kolor cech (wektorów) repel = TRUE, title = “Biplot PC1 vs PC2 Atrybutów Spotify”)
fviz_eig(spotify_pca, addlabels = TRUE, ylim = c(0, 50), title = “Wykres Osypiska (Scree Plot) PCA Spotify”)
fviz_pca_biplot(spotify_pca, axes = c(1, 2), # Wyświetl komponenty 1 i 2 col.var = “red”, # Kolor wektorów zmiennych col.ind = “darkblue”, # Kolor punktów obserwacji repel = TRUE, # Zapobiega nakładaniu się etykiet title = “Biplot Atrybutów Spotify (PC1 vs PC2)”)