Pertemuan 13: ANN

Dokumen ini berisi analisis dan pemodelan klasifikasi menggunakan Artificial Neural Network (ANN) pada dataset Spotify.

Analisis dan Pemodelan

## Pertemuan 13: ANN

# Library
library(readr)
library(nnet)
library(ggplot2)
## Warning: package 'ggplot2' was built under R version 4.5.3
# Dataset
datasetspotify <- read_delim(
  "datasetspotify.csv",
  delim = ";",
  col_types = cols(.default = col_character()),
  show_col_types = FALSE,
  name_repair = "minimal"
)

# Melihat dataset
# View(datasetspotify)  # dinonaktifkan agar proses knit berjalan

# Menampilkan 6 baris pertama
head(datasetspotify)
## # A tibble: 6 × 38
##   ``    track_id   artists album_name track_name popularity duration_ms explicit
##   <chr> <chr>      <chr>   <chr>      <chr>      <chr>      <chr>       <chr>   
## 1 0     5SuOikwiR… Gen Ho… Comedy     Comedy     73         230666      FALSE   
## 2 1     4qPNDBW1i… Ben Wo… Ghost (Ac… Ghost - A… 55         149610      FALSE   
## 3 2     1iJBSr7s7… Ingrid… <NA>       <NA>       <NA>       <NA>        <NA>    
## 4 3     6lfxq3CG4… Kina G… Crazy Ric… Can't Hel… 71         201933      FALSE   
## 5 4     5vjLSffim… Chord … Hold On    Hold On    82         198853      FALSE   
## 6 5     01MVOl9Kt… Tyrone… Days I Wi… Days I Wi… 58         214240      FALSE   
## # ℹ 30 more variables: danceability <chr>, energy <chr>, key <chr>,
## #   loudness <chr>, mode <chr>, speechiness <chr>, acousticness <chr>,
## #   instrumentalness <chr>, liveness <chr>, valence <chr>, tempo <chr>,
## #   time_signature <chr>, track_genre <chr>, `` <chr>, `` <chr>, `` <chr>,
## #   `` <chr>, `` <chr>, `` <chr>, `` <chr>, `` <chr>, `` <chr>, `` <chr>,
## #   `` <chr>, `` <chr>, `` <chr>, `` <chr>, `` <chr>, `` <chr>, `` <chr>
# Melihat dimensi dataset
dim(datasetspotify)
## [1] 114000     38
# Melihat struktur dataset
str(datasetspotify)
## spc_tbl_ [114,000 × 38] (S3: spec_tbl_df/tbl_df/tbl/data.frame)
##  $                 : chr [1:114000] "0" "1" "2" "3" ...
##  $ track_id        : chr [1:114000] "5SuOikwiRyPMVoIQDJUgSV" "4qPNDBW1i3p13qLCt0Ki3A" "1iJBSr7s7jYXzM8EGcbK5b" "6lfxq3CG4xtTiEg7opyCyx" ...
##  $ artists         : chr [1:114000] "Gen Hoshino" "Ben Woodward" "Ingrid Michaelson" "Kina Grannis" ...
##  $ album_name      : chr [1:114000] "Comedy" "Ghost (Acoustic)" NA "Crazy Rich Asians (Original Motion Picture Soundtrack)" ...
##  $ track_name      : chr [1:114000] "Comedy" "Ghost - Acoustic" NA "Can't Help Falling In Love" ...
##  $ popularity      : chr [1:114000] "73" "55" NA "71" ...
##  $ duration_ms     : chr [1:114000] "230666" "149610" NA "201933" ...
##  $ explicit        : chr [1:114000] "FALSE" "FALSE" NA "FALSE" ...
##  $ danceability    : chr [1:114000] "0.676" "0.42" NA "0.266" ...
##  $ energy          : chr [1:114000] "0.461" "0.166" NA "0.0596" ...
##  $ key             : chr [1:114000] "1" "1" NA "0" ...
##  $ loudness        : chr [1:114000] "-6.746" "-17.235" NA "-18.515" ...
##  $ mode            : chr [1:114000] "0" "1" NA "1" ...
##  $ speechiness     : chr [1:114000] "0.143" "0.0763" NA "0.0363" ...
##  $ acousticness    : chr [1:114000] "0.0322" "0.924" NA "0.905" ...
##  $ instrumentalness: chr [1:114000] "1.01e-06" "5.56e-06" NA "7.07e-05" ...
##  $ liveness        : chr [1:114000] "0.358" "0.101" NA "0.132" ...
##  $ valence         : chr [1:114000] "0.715" "0.267" NA "0.143" ...
##  $ tempo           : chr [1:114000] "87.917" "77.489" NA "181.74" ...
##  $ time_signature  : chr [1:114000] "4" "4" NA "3" ...
##  $ track_genre     : chr [1:114000] "acoustic" "acoustic" NA "acoustic" ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  $                 : chr [1:114000] NA NA NA NA ...
##  - attr(*, "spec")=
##   .. cols(
##   ..   .default = col_character(),
##   ..   col_character(),
##   ..   track_id = col_character(),
##   ..   artists = col_character(),
##   ..   album_name = col_character(),
##   ..   track_name = col_character(),
##   ..   popularity = col_character(),
##   ..   duration_ms = col_character(),
##   ..   explicit = col_character(),
##   ..   danceability = col_character(),
##   ..   energy = col_character(),
##   ..   key = col_character(),
##   ..   loudness = col_character(),
##   ..   mode = col_character(),
##   ..   speechiness = col_character(),
##   ..   acousticness = col_character(),
##   ..   instrumentalness = col_character(),
##   ..   liveness = col_character(),
##   ..   valence = col_character(),
##   ..   tempo = col_character(),
##   ..   time_signature = col_character(),
##   ..   track_genre = col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character(),
##   ..   col_character()
##   .. )
##  - attr(*, "problems")=<externalptr>
# Memilih variabel
datasetspotify <- datasetspotify[, c(
  "track_genre",
  "popularity",
  "danceability",
  "energy",
  "valence"
)]

# Membersihkan nama variabel
names(datasetspotify) <- c(
  "track_genre",
  "popularity",
  "danceability",
  "energy",
  "valence"
)

# Mengubah variabel menjadi numerik
datasetspotify[, -1] <- lapply(
  datasetspotify[, -1],
  function(x) suppressWarnings(
    as.numeric(gsub(",", ".", trimws(x)))
  )
)

# Menghapus missing value
datasetspotify <- na.omit(datasetspotify)

# Menghapus nilai Inf dan NaN
datasetspotify <- datasetspotify[
  apply(
    datasetspotify[, -1],
    1,
    function(x) all(is.finite(x))
  ),
]

# Menghapus genre kosong
datasetspotify <- datasetspotify[
  !is.na(datasetspotify$track_genre) &
    trimws(datasetspotify$track_genre) != "",
]

# Mengubah track_genre menjadi factor
datasetspotify$track_genre <- factor(
  trimws(datasetspotify$track_genre)
)

# Melihat dataset setelah pembersihan
# View(datasetspotify)  # dinonaktifkan agar proses knit berjalan

# Melihat jumlah data setelah pembersihan
dim(datasetspotify)
## [1] 83849     5
# Melihat struktur dataset
str(datasetspotify)
## tibble [83,849 × 5] (S3: tbl_df/tbl/data.frame)
##  $ track_genre : Factor w/ 114 levels "acoustic","afrobeat",..: 1 1 1 1 1 1 1 1 1 1 ...
##  $ popularity  : num [1:83849] 73 55 71 82 58 80 56 74 69 52 ...
##  $ danceability: num [1:83849] 0.676 0.42 0.266 0.618 0.688 0.703 0.442 0.627 0.483 0.489 ...
##  $ energy      : num [1:83849] 0.461 0.166 0.0596 0.443 0.481 0.444 0.632 0.363 0.303 0.314 ...
##  $ valence     : num [1:83849] 0.715 0.267 0.143 0.167 0.666 0.712 0.196 0.301 0.139 0.607 ...
##  - attr(*, "na.action")= 'omit' Named int [1:30151] 3 7 9 15 17 18 19 20 22 23 ...
##   ..- attr(*, "names")= chr [1:30151] "3" "7" "9" "15" ...
# Variabel
y <- datasetspotify$track_genre
x1 <- datasetspotify$popularity
x2 <- datasetspotify$danceability
x3 <- datasetspotify$energy
x4 <- datasetspotify$valence

# Exploratory Data (ED)
summary(datasetspotify)
##       track_genre      popularity     danceability        energy         
##  grindcore  :  994   Min.   : 0.00   Min.   :0.0000   Min.   :0.0000201  
##  black-metal:  986   1st Qu.:18.00   1st Qu.:0.4430   1st Qu.:0.4640000  
##  j-idol     :  985   Median :34.00   Median :0.5630   Median :0.6800000  
##  death-metal:  982   Mean   :33.07   Mean   :0.5535   Mean   :0.6420704  
##  power-pop  :  981   3rd Qu.:49.00   3rd Qu.:0.6780   3rd Qu.:0.8640000  
##  study      :  968   Max.   :98.00   Max.   :0.9850   Max.   :1.0000000  
##  (Other)    :77953                                                       
##     valence      
##  Min.   :0.0000  
##  1st Qu.:0.2650  
##  Median :0.4700  
##  Mean   :0.4802  
##  3rd Qu.:0.6900  
##  Max.   :0.9950  
## 
# Fungsi Plot X
getplotx <- function(data, color = "black", n_sample = 1000){
  
  set.seed(123)
  
  index_sample <- sample(
    seq_along(data),
    size = min(n_sample, length(data)),
    replace = FALSE
  )
  
  d <- data.frame(
    x = index_sample,
    y = data[index_sample]
  )
  
  p <- ggplot(d, aes(x = x, y = y)) +
    geom_point(color = color, alpha = 0.6) +
    labs(x = "index", y = "data") +
    theme_minimal()
  
  return(p)
}

# Plot X
getplotx(x1, color = "#17D5D3")

getplotx(x2, color = "#17D5D3")

getplotx(x3, color = "#17D5D3")

getplotx(x4, color = "#17D5D3")

# Fungsi Plot XY
getplotxy <- function(datax, datay, n_sample = 1000){
  
  set.seed(123)
  
  genre_top <- names(
    sort(table(datay), decreasing = TRUE)
  )[1:min(10, length(unique(datay)))]
  
  index_genre <- which(datay %in% genre_top)
  
  index_sample <- sample(
    index_genre,
    size = min(n_sample, length(index_genre)),
    replace = FALSE
  )
  
  d <- data.frame(
    x = datax[index_sample],
    y = datay[index_sample]
  )
  
  p <- ggplot(d, aes(x = x, y = y, color = y)) +
    geom_jitter(
      height = 0.15,
      alpha = 0.4,
      width = 0
    ) +
    labs(
      x = "data x",
      y = "track_genre"
    ) +
    theme_minimal() +
    theme(
      axis.text.y = element_text(size = 8)
    ) +
    guides(color = "none")
  
  return(p)
}

# Plot XY
getplotxy(x1, y)

getplotxy(x2, y)

getplotxy(x3, y)

getplotxy(x4, y)

## Pengambilan sampel data
set.seed(123)

# Maksimal 200 data per genre
jumlah_sampel <- 200

# Mengambil sampel berdasarkan genre
dataset_sampel <- do.call(
  rbind,
  lapply(
    split(datasetspotify, datasetspotify$track_genre),
    function(data){
      data[
        sample(
          nrow(data),
          min(jumlah_sampel, nrow(data)),
          replace = FALSE
        ),
      ]
    }
  )
)

# Mengatur ulang baris dataset
dataset_sampel <- dataset_sampel[
  sample(nrow(dataset_sampel)),
]

# Mengubah genre menjadi factor
dataset_sampel$track_genre <- factor(
  dataset_sampel$track_genre
)

# Melihat dataset sampel
dim(dataset_sampel)
## [1] 22777     5
## Split data (80% training)
set.seed(123)

# Split berdasarkan genre
index_train <- unlist(
  lapply(
    split(
      seq_len(nrow(dataset_sampel)),
      dataset_sampel$track_genre
    ),
    function(index){
      sample(
        index,
        size = floor(length(index)*0.8),
        replace = FALSE
      )
    }
  )
)

# Data training
dtrain <- dataset_sampel[index_train, ]

# Data testing
dtest <- dataset_sampel[-index_train, ]

# Menyamakan level factor
dtrain$track_genre <- factor(
  dtrain$track_genre,
  levels = levels(dataset_sampel$track_genre)
)

dtest$track_genre <- factor(
  dtest$track_genre,
  levels = levels(dataset_sampel$track_genre)
)

# Info data
message("Info:")
## Info:
message("data sampel: ", nrow(dataset_sampel))
## data sampel: 22777
message("data training: ", nrow(dtrain))
## data training: 18221
message("data testing: ", nrow(dtest))
## data testing: 4556
## Standardisasi prediktor

# Parameter standardisasi dari data training
mean_x <- sapply(dtrain[, -1], mean)
sd_x   <- sapply(dtrain[, -1], sd)

# Menghindari pembagian dengan nol
sd_x[sd_x == 0] <- 1

# Standardisasi data training
dtrain[, -1] <- scale(
  dtrain[, -1],
  center = mean_x,
  scale = sd_x
)

# Standardisasi data testing
dtest[, -1] <- scale(
  dtest[, -1],
  center = mean_x,
  scale = sd_x
)

## Pemodelan Klasifikasi ANN
set.size  <- c(2,3,5)
set.maxit <- c(100)

set.macc <- matrix(
  nrow = length(set.size)*length(set.maxit),
  ncol = 3
)

colnames(set.macc) <- c(
  "size",
  "maxit",
  "akurasi"
)

tmp <- 0

for (i in 1:length(set.size)) {
  for (j in 1:length(set.maxit)) {
    
    tmp <- tmp + 1
    
    model_ANN <- nnet(
      track_genre ~ .,
      data = dtrain,
      size = set.size[i],
      maxit = set.maxit[j],
      trace = F,
      MaxNWts = 100000
    )
    
    pred_y <- predict(
      model_ANN,
      newdata = dtest,
      type = "class"
    )
    
    mc.tmp <- table(
      Prediksi = pred_y,
      Aktual = dtest$track_genre
    )
    
    ac.tmp <- sum(diag(mc.tmp))/sum(mc.tmp)
    
    message(
      '==> [',round(tmp/nrow(set.macc)*100,1),'%] size: ',
      set.size[i],
      ' maxit: ', set.maxit[j],
      ' akurasi: ', round(ac.tmp,4)
    )
    
    set.macc[tmp,] <- c(
      set.size[i],
      set.maxit[j],
      ac.tmp
    )
  }
}
## ==> [33.3%] size: 2 maxit: 100 akurasi: 0.0119
## ==> [66.7%] size: 3 maxit: 100 akurasi: 0.0169
## ==> [100%] size: 5 maxit: 100 akurasi: 0.0083
# Hasil akurasi
set.macc
##      size maxit    akurasi
## [1,]    2   100 0.01185250
## [2,]    3   100 0.01690079
## [3,]    5   100 0.00834065
# Model terbaik
hasil.terbaik <- set.macc[
  which.max(set.macc[,3]),
]

hasil.terbaik
##         size        maxit      akurasi 
##   3.00000000 100.00000000   0.01690079
message("Model terbaik:")
## Model terbaik:
message("Size: ", hasil.terbaik[1])
## Size: 3
message("Maxit: ", hasil.terbaik[2])
## Maxit: 100
message("Akurasi: ", round(hasil.terbaik[3],4))
## Akurasi: 0.0169
message("Akurasi (%): ", round(hasil.terbaik[3]*100,2), "%")
## Akurasi (%): 1.69%
## Model Final
model_final <- nnet(
  track_genre ~ .,
  data = dtrain,
  size = hasil.terbaik[1],
  maxit = hasil.terbaik[2],
  trace = F,
  MaxNWts = 100000
)

# Prediksi model final
pred_y <- predict(
  model_final,
  newdata = dtest,
  type = "class"
)

# Confusion Matrix
mc.tmp <- table(
  Prediksi = pred_y,
  Aktual = dtest$track_genre
)

mc.tmp
##                    Aktual
## Prediksi            acoustic afrobeat alt-rock alternative ambient anime
##   ambient                  6        0        0           1      20     2
##   anime                    0        0        0           0       0     0
##   black-metal              0        0        0           2       0     0
##   bluegrass                0        0        0           0       0     0
##   breakbeat                0        0        0           0       0     0
##   cantopop                 0        0        0           0       1     0
##   chicago-house            0        9        2           3       0     0
##   children                 2        0        0           0       0     0
##   chill                    9        0        2           1       0     5
##   classical                4        1        0           0       4     5
##   comedy                   1        0        0           0       0     0
##   dance                    0        0        0           0       0     0
##   death-metal              0        0        0           0       0     1
##   deep-house               0        0        0           0       0     1
##   detroit-techno           0        5        0           4       0     0
##   disney                   1        1        0           0       0     0
##   drum-and-bass            0        0        2           1       0     0
##   electronic               0        0        0           0       0     0
##   emo                      0        0        0           0       0     1
##   forro                    2        1        7           1       1     2
##   gospel                   0        0        0           0       0     0
##   grindcore                0        0        1           2       0     0
##   grunge                   0        0        1           1       0     0
##   happy                    1        2        2           5       0     0
##   hard-rock                0        0        0           0       0     0
##   hardcore                 0        0        0           0       0     0
##   heavy-metal              0        0        2           0       0     0
##   hip-hop                  0        0        0           0       0     0
##   honky-tonk               1        2        0           1       0     0
##   house                    0        1        0           0       0     0
##   idm                      0        0        0           1       0     0
##   indian                   3        0        1           0       5     1
##   industrial               0        0        0           0       0     1
##   iranian                  0        0        2           1       0     0
##   j-idol                   0        0        0           0       0     0
##   jazz                     0        0        0           0       0     0
##   kids                     0        0        0           0       0     0
##   latin                    0        0        0           0       0     0
##   latino                   0        1        0           0       0     0
##   mandopop                 0        0        0           0       0     0
##   metalcore                0        0        1           1       0     8
##   mpb                      0        0        0           0       0     0
##   new-age                  1        0        0           0       0     0
##   opera                    0        0        0           0       1     0
##   pagode                   0        0        2           2       0     1
##   party                    1       11        7           5       0     0
##   pop-film                 0        0        0           0       0     0
##   power-pop                0        0        0           1       0     0
##   progressive-house        0        2        2           2       0     3
##   reggaeton                0        1        0           0       0     0
##   rock-n-roll              1        0        0           0       0     0
##   romance                  2        1        3           1       1     0
##   sad                      0        0        0           0       0     0
##   samba                    0        0        0           0       0     0
##   show-tunes               1        0        0           0       0     0
##   ska                      0        0        0           0       0     0
##   sleep                    0        0        1           0       6     0
##   study                    0        0        0           0       0     0
##   tango                    2        2        0           1       1     0
##   trance                   2        0        2           3       0     9
##   trip-hop                 0        0        0           0       0     0
##   world-music              0        0        0           0       0     0
##                    Aktual
## Prediksi            black-metal bluegrass blues brazil breakbeat british
##   ambient                     0         1     1      5         0       7
##   anime                       0         0     0      0         0       0
##   black-metal                 4         0     0      0         0       0
##   bluegrass                   0         1     0      0         0       0
##   breakbeat                   0         0     0      0         0       0
##   cantopop                    0         0     0      0         0       0
##   chicago-house               0         1     4      1         3       1
##   children                    0         0     0      0         0       2
##   chill                       0         3     1      2         0       5
##   classical                   0         0     4      2         0       3
##   comedy                      0         0     0      0         1       1
##   dance                       0         0     0      0         0       0
##   death-metal                 0         0     0      0         0       0
##   deep-house                  0         0     0      0         0       0
##   detroit-techno              0         2     2      0         7       0
##   disney                      0         1     0      0         0       0
##   drum-and-bass               4         0     1      0         1       0
##   electronic                  0         0     0      0         0       0
##   emo                         0         0     0      0         0       0
##   forro                       0         0     4      5         0       1
##   gospel                      0         0     0      1         0       0
##   grindcore                  17         0     0      0         0       0
##   grunge                      0         0     0      1         0       0
##   happy                       0         3     0      0         7       0
##   hard-rock                   0         0     0      0         0       0
##   hardcore                    0         0     0      0         0       0
##   heavy-metal                 3         0     0      0         0       0
##   hip-hop                     0         0     0      0         0       0
##   honky-tonk                  0         5     0      0         0       0
##   house                       0         0     0      0         0       0
##   idm                         0         0     0      0         0       0
##   indian                      0         0     1      3         0       1
##   industrial                  0         0     0      0         0       1
##   iranian                     3         0     0      0         0       1
##   j-idol                      0         0     0      0         0       0
##   jazz                        0         0     0      0         0       0
##   kids                        0         0     0      0         0       0
##   latin                       0         0     0      0         0       0
##   latino                      0         0     1      3         0       0
##   mandopop                    0         0     0      0         0       0
##   metalcore                   6         0     4      4         0       0
##   mpb                         0         0     0      0         0       0
##   new-age                     0         1     0      0         0       0
##   opera                       2         2     0      0         0       0
##   pagode                      0         0     3      6         1       3
##   party                       0         3     3      2        16       2
##   pop-film                    0         0     0      0         0       0
##   power-pop                   0         0     0      0         0       0
##   progressive-house           0         0     1      0         1       3
##   reggaeton                   0         0     1      0         0       0
##   rock-n-roll                 0         0     0      0         0       0
##   romance                     0         9     1      1         1       4
##   sad                         0         0     0      0         1       1
##   samba                       0         0     0      0         0       0
##   show-tunes                  0         0     0      0         0       0
##   ska                         0         0     0      0         0       0
##   sleep                       1         0     2      1         0       2
##   study                       0         0     0      0         0       0
##   tango                       0         8     4      0         0       0
##   trance                      0         0     2      3         1       2
##   trip-hop                    0         0     0      0         0       0
##   world-music                 0         0     0      0         0       0
##                    Aktual
## Prediksi            cantopop chicago-house children chill classical club comedy
##   ambient                  1             0        1     2         9    1      0
##   anime                    0             0        0     0         0    0      0
##   black-metal              0             0        0     0         0    0      0
##   bluegrass                0             0        0     0         0    0      0
##   breakbeat                0             0        0     0         0    0      0
##   cantopop                 0             0        0     0         2    0      0
##   chicago-house            1            19        3     0         0    1      0
##   children                 0             0        5     1         0    0      1
##   chill                    0             0        4     9         1    3      0
##   classical                6             0        0     5         5    0      0
##   comedy                   0             0        1     0         0    0      0
##   dance                    0             0        0     0         0    0      0
##   death-metal              0             0        0     0         0    1      3
##   deep-house               1             0        0     0         0    0      0
##   detroit-techno           0             7        1     0         0    2      1
##   disney                   0             0        1     0         1    0      1
##   drum-and-bass            0             0        0     0         0    0      8
##   electronic               0             0        0     0         0    0      0
##   emo                      0             0        0     0         0    0      0
##   forro                    2             1        3     5         0    8      2
##   gospel                   0             0        0     0         0    0      0
##   grindcore                0             0        0     0         0    0      0
##   grunge                   0             0        0     0         0    0      0
##   happy                    2             2        0     0         0    0      8
##   hard-rock                0             0        0     0         0    0      0
##   hardcore                 0             0        0     0         0    0      0
##   heavy-metal              0             0        0     0         0    0      1
##   hip-hop                  0             0        0     0         0    0      0
##   honky-tonk               1             1        3     0         1    0      1
##   house                    1             1        1     0         0    0      0
##   idm                      1             0        0     0         0    0      2
##   indian                   7             0        1     5         1    0      0
##   industrial               0             0        0     0         1    0      0
##   iranian                  0             0        0     0         1    1      0
##   j-idol                   0             0        0     0         0    0      0
##   jazz                     0             0        0     0         0    0      0
##   kids                     0             1        3     0         0    0      0
##   latin                    0             0        0     0         0    0      0
##   latino                   0             1        8     2         0    0      0
##   mandopop                 0             0        0     0         0    0      0
##   metalcore                2             0        0     1         0    4      0
##   mpb                      0             0        0     0         0    0      0
##   new-age                  2             0        0     0         2    0      0
##   opera                    0             0        0     0         0    0      0
##   pagode                   2             0        0     3         0    3      0
##   party                    1             5        0     0         0    0      5
##   pop-film                 0             0        0     0         0    0      0
##   power-pop                0             0        0     0         0    0      1
##   progressive-house        1             0        1     2         0    4      0
##   reggaeton                0             0        2     0         0    1      0
##   rock-n-roll              0             0        1     0         4    0      0
##   romance                  5             0        0     0         5    2      2
##   sad                      0             0        0     1         0    0      0
##   samba                    0             0        0     0         0    0      0
##   show-tunes               0             0        1     0         1    0      0
##   ska                      0             0        0     0         0    0      0
##   sleep                    0             0        0     0         1    1      0
##   study                    0             0        0     0         0    0      0
##   tango                    3             2        0     3         0    0      4
##   trance                   1             0        0     1         1    8      0
##   trip-hop                 0             0        0     0         0    0      0
##   world-music              0             0        0     0         0    0      0
##                    Aktual
## Prediksi            country dance dancehall death-metal deep-house
##   ambient                 3     1         0           1          0
##   anime                   0     0         0           0          0
##   black-metal             0     0         0          11          0
##   bluegrass               0     0         0           0          0
##   breakbeat               0     0         1           0          0
##   cantopop                0     0         0           0          0
##   chicago-house           1    14         9           0          3
##   children                0     0         1           0          1
##   chill                   2     2         0           0          2
##   classical               1     0         0           0          0
##   comedy                  0     0         0           0          0
##   dance                   0     0         0           0          0
##   death-metal             0     0         0           5          0
##   deep-house              0     0         1           0          0
##   detroit-techno          1     0         1           0          1
##   disney                  0     0         0           0          1
##   drum-and-bass           0     0         1           2          0
##   electronic              0     0         0           0          0
##   emo                     0     0         0           0          0
##   forro                   3     6         8           0          9
##   gospel                  0     0         0           0          0
##   grindcore               0     0         0           5          0
##   grunge                  0     0         0           0          0
##   happy                   4     2         1           1          0
##   hard-rock               0     0         0           0          0
##   hardcore                0     0         0           0          0
##   heavy-metal             0     0         0           3          0
##   hip-hop                 0     0         0           0          0
##   honky-tonk              1     0         2           0          0
##   house                   0     0         0           0          0
##   idm                     0     0         0           0          0
##   indian                  1     2         1           0          0
##   industrial              0     0         0           0          0
##   iranian                 0     0         0           0          0
##   j-idol                  0     0         0           0          0
##   jazz                    0     0         0           0          0
##   kids                    0     0         0           0          0
##   latin                   0     0         1           0          0
##   latino                  0     0         4           0          0
##   mandopop                0     0         0           0          0
##   metalcore               1     2         0          11          1
##   mpb                     0     0         0           0          0
##   new-age                 0     0         0           0          0
##   opera                   0     0         0           0          0
##   pagode                  1     2         1           0          5
##   party                   4     4         4           0          3
##   pop-film                0     0         0           0          0
##   power-pop               0     0         0           0          0
##   progressive-house       2     2         1           0          5
##   reggaeton               0     0         2           0          0
##   rock-n-roll             0     0         0           0          0
##   romance                 7     1         1           0          0
##   sad                     0     0         0           0          1
##   samba                   0     0         0           0          0
##   show-tunes              0     0         0           0          0
##   ska                     1     0         0           0          0
##   sleep                   0     0         0           1          0
##   study                   0     0         0           0          0
##   tango                   5     1         0           0          0
##   trance                  2     1         0           0          8
##   trip-hop                0     0         0           0          0
##   world-music             0     0         0           0          0
##                    Aktual
## Prediksi            detroit-techno disco disney drum-and-bass dub dubstep edm
##   ambient                        0     1      3             0   2       0   0
##   anime                          0     0      0             0   0       0   0
##   black-metal                    0     0      0             2   0       0   0
##   bluegrass                      0     0      1             0   0       0   0
##   breakbeat                      0     0      0             0   0       0   0
##   cantopop                       0     0      0             0   0       0   0
##   chicago-house                 16     5      0             0   7       0   3
##   children                       0     3      0             0   1       0   0
##   chill                          0     0      1             0   0       1   2
##   classical                      0     1      0             0   1       2   0
##   comedy                         0     0      0             0   0       0   0
##   dance                          0     0      0             0   0       0   0
##   death-metal                    0     0      0             0   0       1   0
##   deep-house                     0     2      0             0   1       0   0
##   detroit-techno                 5     1      0             0   0       0   5
##   disney                         0     0      0             0   0       0   0
##   drum-and-bass                  0     0      0             5   1       0   1
##   electronic                     0     0      0             0   0       0   0
##   emo                            0     0      0             0   0       0   0
##   forro                          2     4      0             0   3       2   3
##   gospel                         0     0      0             0   0       0   0
##   grindcore                      0     0      0             4   0       1   0
##   grunge                         0     0      0             0   0       1   0
##   happy                          3     0      0            10   0       0   3
##   hard-rock                      0     0      0             0   0       0   0
##   hardcore                       0     1      0             0   0       0   0
##   heavy-metal                    0     0      0             3   0       0   0
##   hip-hop                        0     1      0             0   0       0   0
##   honky-tonk                     0     0      1             0   2       0   0
##   house                          0     1      0             0   0       0   0
##   idm                            0     0      0             0   0       0   0
##   indian                         0     0      1             0   1       1   0
##   industrial                     0     1      0             0   0       0   0
##   iranian                        0     1      3             0   0       0   0
##   j-idol                         0     1      0             0   0       0   0
##   jazz                           0     0      0             0   0       0   0
##   kids                           0     0      0             0   2       0   0
##   latin                          0     1      0             0   1       0   0
##   latino                         0     2      0             0   3       0   0
##   mandopop                       0     0      0             0   0       0   0
##   metalcore                      0     0      0             7   5      11   1
##   mpb                            0     0      0             0   0       0   0
##   new-age                        0     0      0             0   0       0   0
##   opera                          0     0      2             0   0       0   0
##   pagode                         0     0      0             0   3       4   4
##   party                         11     4      1             8   2       1   8
##   pop-film                       0     0      0             0   0       0   0
##   power-pop                      0     0      0             0   0       0   0
##   progressive-house              0     1      0             1   1       5   8
##   reggaeton                      0     5      0             0   0       0   0
##   rock-n-roll                    0     1      0             0   0       0   0
##   romance                        1     1     16             0   0       0   0
##   sad                            0     0      0             0   0       0   0
##   samba                          0     0      0             0   0       0   0
##   show-tunes                     0     0      0             0   0       0   0
##   ska                            0     0      0             0   0       0   0
##   sleep                          0     0      2             0   0       4   0
##   study                          0     0      0             0   0       0   0
##   tango                          1     1      9             0   2       0   0
##   trance                         1     1      0             0   2       6   2
##   trip-hop                       0     0      0             0   0       0   0
##   world-music                    0     0      0             0   0       0   0
##                    Aktual
## Prediksi            electro electronic emo folk forro french funk garage german
##   ambient                 1          2   1    7     0      1    0      3      1
##   anime                   0          0   0    0     0      0    0      0      0
##   black-metal             0          0   0    0     0      0    1      1      1
##   bluegrass               0          0   0    0     0      0    0      0      0
##   breakbeat               0          0   0    0     0      0    0      0      0
##   cantopop                0          0   0    0     0      0    0      0      0
##   chicago-house           3          1   2    1     0      0    5      1      1
##   children                1          0   0    0     1      2    0      1      0
##   chill                   4          1   3    2     1      2    2      5      3
##   classical               0          0   2    6     0      1    1      3      0
##   comedy                  1          0   0    0     0      0    0      0      0
##   dance                   0          0   0    0     0      0    0      0      0
##   death-metal             0          0   0    0     0      0    0      3      0
##   deep-house              0          1   2    1     0      1    0      0      0
##   detroit-techno          0          2   0    2     0      1    0      0      1
##   disney                  0          0   0    0     0      0    0      0      0
##   drum-and-bass           2          0   0    0     0      0    1      4      1
##   electronic              0          0   0    0     0      0    0      0      0
##   emo                     1          0   0    0     0      0    0      1      0
##   forro                   4         12   5    2    15      3   10      2      2
##   gospel                  0          0   0    0     0      0    0      0      0
##   grindcore               0          0   1    0     0      0    0      0      0
##   grunge                  0          1   0    0     0      0    0      0      0
##   happy                   0          1   3    0     0      1    0      0      0
##   hard-rock               0          0   0    0     0      0    0      0      0
##   hardcore                0          0   0    0     0      0    0      1      0
##   heavy-metal             0          0   0    0     0      0    0      0      0
##   hip-hop                 0          0   0    1     0      1    0      0      0
##   honky-tonk              1          0   0    0     0      0    0      0      0
##   house                   0          0   0    0     0      0    0      0      0
##   idm                     0          0   0    0     0      0    0      0      0
##   indian                  0          0   0    1     0      0    1      1      1
##   industrial              0          0   0    0     0      0    0      0      0
##   iranian                 0          0   0    0     0      1    0      0      0
##   j-idol                  0          0   0    0     0      0    0      0      0
##   jazz                    0          0   0    0     0      0    0      0      0
##   kids                    0          0   0    0     0      0    1      0      0
##   latin                   0          0   0    0     0      0    0      0      0
##   latino                  0          2   2    1     8      1    6      0      2
##   mandopop                0          0   0    0     0      0    0      0      0
##   metalcore               0          0   4    1     1      0    2      4      4
##   mpb                     0          0   0    0     0      0    0      0      0
##   new-age                 0          0   0    0     0      0    0      0      0
##   opera                   0          0   0    0     0      0    0      1      1
##   pagode                  3          5   1    1     4      4    0      0      6
##   party                   9          0   2    2     0      0    1      2      7
##   pop-film                0          0   0    0     0      1    0      0      0
##   power-pop               0          0   0    0     0      0    0      0      0
##   progressive-house       1          7   5    2     7      5    0      1      5
##   reggaeton               0          1   0    0     0      9    0      0      0
##   rock-n-roll             0          0   0    1     0      3    0      0      0
##   romance                 2          0   0    3     0      1    5      1      0
##   sad                     0          1   0    0     1      0    0      0      1
##   samba                   0          0   0    0     0      0    0      0      0
##   show-tunes              0          0   0    0     0      0    0      0      0
##   ska                     0          1   0    0     0      0    0      0      0
##   sleep                   0          0   0    1     0      1    0      2      2
##   study                   0          0   0    0     0      1    0      0      0
##   tango                   5          0   0    4     0      0    4      0      0
##   trance                  2          2   7    1     2      0    0      3      1
##   trip-hop                0          0   0    0     0      0    0      0      0
##   world-music             0          0   0    0     0      0    0      0      0
##                    Aktual
## Prediksi            gospel goth grindcore groove grunge guitar happy hard-rock
##   ambient               12    3         0      1      5      0     0         1
##   anime                  0    0         0      0      0      0     0         0
##   black-metal            0    4         2      0      2      0     2         1
##   bluegrass              0    0         0      0      0      0     0         0
##   breakbeat              0    0         0      0      0      0     0         0
##   cantopop               0    0         0      0      0      0     0         0
##   chicago-house          0    0         0      0      0      1     0         0
##   children               0    0         0      1      0      1     0         1
##   chill                  2    0         0      0      0      6     0         1
##   classical              6    2         0      2      1      2     0         1
##   comedy                 0    0         0      0      0      0     0         1
##   dance                  0    0         0      0      0      0     0         0
##   death-metal            0    2         0      2      2      0     4         2
##   deep-house             0    0         0      0      0      0     0         1
##   detroit-techno         0    1         0      2      0      2     1         0
##   disney                 0    0         0      2      0      1     0         0
##   drum-and-bass          0    1         2      3      2      1    11         0
##   electronic             0    0         0      0      0      0     0         0
##   emo                    1    0         0      0      0      0     0         0
##   forro                  0    0         0      5      0      0     0         3
##   gospel                 1    0         0      0      0      0     0         0
##   grindcore              0    2        33      1      0      0     0         0
##   grunge                 1    2         0      0      1      0     0         1
##   happy                  0    4         0      0      1      1     6         1
##   hard-rock              0    0         0      0      0      0     0         0
##   hardcore               0    0         0      0      0      0     0         0
##   heavy-metal            0    2         2      0      0      0     2         0
##   hip-hop                0    0         0      0      0      0     0         0
##   honky-tonk             0    0         0      0      0      1     0         0
##   house                  0    0         0      0      0      1     0         0
##   idm                    0    0         0      0      0      0     0         0
##   indian                 3    0         0      0      0      3     0         0
##   industrial             0    0         0      1      0      0     0         0
##   iranian                0    1         0      0      0      0     0         0
##   j-idol                 0    0         0      0      0      0     0         0
##   jazz                   0    0         0      0      0      0     0         0
##   kids                   0    0         0      0      0      1     0         0
##   latin                  0    0         0      0      0      0     0         0
##   latino                 0    0         0      0      0      0     0         0
##   mandopop               0    0         0      0      0      0     0         0
##   metalcore              4    3         0      6     16      1     0         6
##   mpb                    0    0         0      0      0      0     0         0
##   new-age                0    0         0      2      0      0     0         0
##   opera                  0    2         1      0      0      3     1         0
##   pagode                 2    0         0      2      0      0     0         0
##   party                  0    3         0      4      0      3     9         5
##   pop-film               0    0         0      0      0      0     0         0
##   power-pop              0    0         0      0      0      0     0         0
##   progressive-house      3    1         0      2      3      0     1         6
##   reggaeton              0    0         0      0      0      0     0         0
##   rock-n-roll            0    1         0      0      0      0     1         0
##   romance                0    0         0      1      0      2     0         0
##   sad                    0    1         0      0      0      0     0         0
##   samba                  0    0         0      0      0      0     0         0
##   show-tunes             0    0         0      1      0      0     0         0
##   ska                    0    0         0      0      0      0     0         0
##   sleep                  1    0         0      1      2      1     0         3
##   study                  0    0         0      0      0      0     0         0
##   tango                  0    2         0      0      0      9     0         1
##   trance                 3    3         0      1      5      0     2         5
##   trip-hop               0    0         0      0      0      0     0         0
##   world-music            1    0         0      0      0      0     0         0
##                    Aktual
## Prediksi            hardcore hardstyle heavy-metal hip-hop honky-tonk house idm
##   ambient                  1         0           0       2          0     0   0
##   anime                    0         0           0       0          0     0   0
##   black-metal              0         3           6       0          0     0   0
##   bluegrass                0         0           0       0          0     0   0
##   breakbeat                1         0           0       0          0     0   0
##   cantopop                 0         0           0       0          0     0   0
##   chicago-house            3         0           0      17          3     9   5
##   children                 1         0           0       0          0     0   0
##   chill                    0         0           0       1          1     0   0
##   classical                2         0           0       0          0     0   3
##   comedy                   0         0           0       0          0     0   0
##   dance                    1         0           0       0          0     0   0
##   death-metal              6         1           3       0          0     0   0
##   deep-house               0         0           0       0          0     0   0
##   detroit-techno           0         0           0       0          3     4   0
##   disney                   0         0           0       0          0     0   0
##   drum-and-bass            2         7           9       0          0     1   1
##   electronic               0         0           0       0          0     0   0
##   emo                      0         0           0       0          0     0   0
##   forro                    7         0           0      10          0    10   1
##   gospel                   0         0           0       0          0     0   0
##   grindcore                1         0           3       0          0     0   0
##   grunge                   0         1           0       0          0     0   0
##   happy                    0        11           4       0          0     4   3
##   hard-rock                0         0           0       0          0     0   0
##   hardcore                 0         0           0       0          0     0   0
##   heavy-metal              0         3           3       0          0     0   0
##   hip-hop                  0         0           0       0          0     0   0
##   honky-tonk               0         0           0       0          2     0   1
##   house                    1         0           1       0          0     0   0
##   idm                      0         0           0       0          0     0   0
##   indian                   0         0           0       1          0     0   0
##   industrial               0         0           0       0          0     0   0
##   iranian                  0         0           0       0          0     0   5
##   j-idol                   0         0           0       0          0     0   0
##   jazz                     0         0           0       0          0     0   0
##   kids                     0         0           0       1          0     0   0
##   latin                    0         1           0       0          0     0   0
##   latino                   0         0           0       0          0     0   1
##   mandopop                 0         0           0       0          0     0   0
##   metalcore                4         3           4       0          0     2   1
##   mpb                      0         0           0       0          0     0   0
##   new-age                  0         0           0       0          0     0   0
##   opera                    0         0           1       0          0     0   0
##   pagode                   0         0           0       3          0     3   1
##   party                    1         9           2       0          3     2   4
##   pop-film                 0         0           0       0          0     0   0
##   power-pop                0         0           0       0          0     0   0
##   progressive-house        1         0           0       0          0     1   1
##   reggaeton                0         0           0       0          0     0   0
##   rock-n-roll              0         0           0       0          0     0   0
##   romance                  0         1           1       1          6     0   9
##   sad                      0         0           0       1          0     0   0
##   samba                    0         0           0       0          0     0   0
##   show-tunes               0         0           0       0          0     0   0
##   ska                      1         0           0       0          0     0   0
##   sleep                    0         0           1       0          0     0   0
##   study                    0         0           0       0          0     0   0
##   tango                    1         0           0       2         22     0   3
##   trance                   6         0           2       1          0     4   1
##   trip-hop                 0         0           0       0          0     0   0
##   world-music              0         0           0       0          0     0   0
##                    Aktual
## Prediksi            indian indie indie-pop industrial iranian j-dance j-idol
##   ambient                7     3         1          0       0       0      0
##   anime                  0     0         0          0       0       0      0
##   black-metal            0     0         0          3       3       2      2
##   bluegrass              0     0         0          0       0       1      0
##   breakbeat              0     0         0          0       0       0      0
##   cantopop               0     0         0          0       0       0      0
##   chicago-house          0     1         2          0       0       8      1
##   children               2     3         0          0       0       0      0
##   chill                 10     3         5          0       0       0      0
##   classical              2     1         2          0       0       0      0
##   comedy                 0     0         0          0       0       0      0
##   dance                  0     0         0          0       0       0      0
##   death-metal            0     0         0          1       0       0      1
##   deep-house             0     0         0          0       0       0      0
##   detroit-techno         0     1         2          1       0       5      1
##   disney                 0     0         0          0       0       0      0
##   drum-and-bass          0     0         0          1       1       1      3
##   electronic             0     0         0          0       0       0      0
##   emo                    0     0         0          0       0       0      0
##   forro                  4     4         4          0       0       5      1
##   gospel                 0     1         0          0       0       0      0
##   grindcore              0     1         0          1       4       0      1
##   grunge                 0     0         2          1       0       0      0
##   happy                  0     0         2          7       7       1     12
##   hard-rock              0     0         0          0       0       0      0
##   hardcore               0     0         0          2       0       0      0
##   heavy-metal            0     0         0          2       1       0      2
##   hip-hop                0     0         0          0       0       0      0
##   honky-tonk             0     0         1          1       0       0      0
##   house                  0     0         0          0       0       0      0
##   idm                    0     0         0          0       0       0      0
##   indian                 5     1         2          0       0       0      0
##   industrial             0     0         0          0       0       0      0
##   iranian                0     0         0          0      14       0      0
##   j-idol                 0     0         0          0       0       0      0
##   jazz                   0     0         0          0       0       0      0
##   kids                   0     0         0          0       0       0      0
##   latin                  0     0         0          0       0       0      0
##   latino                 0     1         1          0       0       1      0
##   mandopop               0     0         0          0       0       0      0
##   metalcore              1     2         0          3       0       0      0
##   mpb                    0     0         0          0       0       0      0
##   new-age                0     0         0          0       0       0      0
##   opera                  0     0         0          2       1       0      0
##   pagode                 4     0         5          2       0       2      0
##   party                  1     4         0          9       3       7     14
##   pop-film               0     0         1          0       0       0      0
##   power-pop              0     0         0          0       0       0      0
##   progressive-house      3     1         2          0       0       0      1
##   reggaeton              0     0         0          0       0       1      0
##   rock-n-roll            0     0         0          0       0       0      0
##   romance                0     7         3          0       5       0      1
##   sad                    1     0         0          0       0       0      0
##   samba                  0     1         0          0       0       0      0
##   show-tunes             0     0         0          0       0       0      0
##   ska                    0     0         0          0       0       0      0
##   sleep                  0     0         2          0       1       0      0
##   study                  0     0         0          0       0       0      0
##   tango                  0     4         3          0       0       4      0
##   trance                 0     1         0          4       0       2      0
##   trip-hop               0     0         0          0       0       0      0
##   world-music            0     0         0          0       0       0      0
##                    Aktual
## Prediksi            j-pop j-rock jazz k-pop kids latin latino malay mandopop
##   ambient               1      1    3     3    0     0      0     1        3
##   anime                 0      0    0     0    0     0      0     0        0
##   black-metal           0      0    0     0    0     0      0     0        0
##   bluegrass             0      0    0     0    0     0      0     1        0
##   breakbeat             0      0    0     0    0     0      0     0        0
##   cantopop              0      0    0     0    0     0      0     1        0
##   chicago-house         2      0    1     1   22    17     20     5        0
##   children              1      0    2     0    1     0      1     0        0
##   chill                 2      0    2     6    1     0      0     2        1
##   classical             0      3    0     0    0     0      0     1        7
##   comedy                0      0    0     0    0     0      0     0        0
##   dance                 0      0    0     0    0     0      0     0        0
##   death-metal           0      0    0     0    0     0      0     0        0
##   deep-house            1      2    0     0    0     0      0     2        0
##   detroit-techno        0      0    0     0    2     1      1     2        0
##   disney                0      0    0     0    0     0      0     1        0
##   drum-and-bass         2      0    0     0    0     0      0     0        0
##   electronic            0      0    0     0    0     0      0     0        0
##   emo                   0      0    0     0    0     0      0     0        0
##   forro                 3      2    1    13    0     2      7     0        4
##   gospel                0      0    0     0    0     0      0     0        1
##   grindcore             0      0    0     0    0     0      0     0        0
##   grunge                1      2    0     1    0     0      0     0        0
##   happy                 0      1    0     0    0     4      0     0        1
##   hard-rock             0      0    0     0    0     0      0     0        0
##   hardcore              0      0    0     0    0     0      0     0        0
##   heavy-metal           0      0    0     0    0     0      0     1        0
##   hip-hop               0      0    0     0    0     0      0     0        0
##   honky-tonk            0      0    0     0    1     0      0     0        1
##   house                 0      0    0     0    0     0      0     0        0
##   idm                   0      0    0     0    0     0      0     0        1
##   indian                0      0    2     3    0     0      0     1        8
##   industrial            0      0    0     0    0     0      0     0        0
##   iranian               0      0    0     0    0     0      0     0        0
##   j-idol                0      0    0     0    0     0      0     0        0
##   jazz                  0      0    0     0    0     0      0     0        0
##   kids                  0      0    0     0    2     1      1     0        0
##   latin                 0      0    0     0    0     0      0     3        0
##   latino                1      0    0     0    3     0      2     1        0
##   mandopop              0      0    0     0    0     0      0     0        0
##   metalcore             0      9    0     0    0     0      0     0        1
##   mpb                   0      0    0     1    0     0      0     0        0
##   new-age               0      0    0     0    0     0      0     1        0
##   opera                 0      0    0     0    0     0      0     0        0
##   pagode                6      3    1     4    0     0      4     1        2
##   party                 0      0    2     1    1    10      3     3        1
##   pop-film              0      0    0     0    0     0      0     0        0
##   power-pop             0      0    0     0    0     0      0     0        0
##   progressive-house     4      9    0     5    0     0      0     0        2
##   reggaeton             0      1    0     0    1     0      0     2        0
##   rock-n-roll           0      0    0     0    0     0      0     0        1
##   romance               5      0   11     0    3     3      0     4        3
##   sad                   0      0    0     0    0     0      1     0        1
##   samba                 0      0    0     0    0     0      0     0        0
##   show-tunes            0      0    0     0    0     0      0     0        0
##   ska                   0      1    0     0    0     0      0     0        0
##   sleep                 1      0    0     0    0     0      0     0        0
##   study                 0      0    0     0    0     0      0     0        0
##   tango                 0      0   15     0    3     1      0     7        1
##   trance               10      6    0     2    0     1      0     0        1
##   trip-hop              0      0    0     0    0     0      0     0        0
##   world-music           0      0    0     0    0     0      0     0        0
##                    Aktual
## Prediksi            metal metalcore minimal-techno mpb new-age opera pagode
##   ambient               4         0              1   4       6     4      5
##   anime                 0         0              0   0       0     0      0
##   black-metal           1         3              0   0       0     3      0
##   bluegrass             0         0              0   0       0     0      0
##   breakbeat             0         0              0   0       0     0      0
##   cantopop              0         0              0   0       0     0      0
##   chicago-house         0         0              4   0       1     0      0
##   children              0         0              1   2       0     0      1
##   chill                 0         0              1   2       0     1      4
##   classical             0         0              0   7       1     1      2
##   comedy                0         0              0   0       0     0      0
##   dance                 0         0              0   0       0     0      0
##   death-metal           1         5              0   0       0     1      0
##   deep-house            0         0              0   0       0     0      0
##   detroit-techno        0         0              1   0       0     0      0
##   disney                0         0              0   0       1     0      0
##   drum-and-bass         4         0              1   0       0     1      0
##   electronic            0         0              0   0       0     0      0
##   emo                   0         0              0   0       0     0      1
##   forro                 0         0              8   7       1     0     12
##   gospel                0         0              0   0       0     0      0
##   grindcore             2         1              0   0       0     1      0
##   grunge                1         1              0   0       0     0      0
##   happy                 1         0              1   0       0     0      0
##   hard-rock             0         0              0   0       0     0      0
##   hardcore              0         0              0   0       0     0      0
##   heavy-metal           0         3              0   0       0     1      0
##   hip-hop               0         0              0   0       0     0      0
##   honky-tonk            0         0              2   0       0     0      0
##   house                 0         0              0   0       0     0      0
##   idm                   0         0              0   0       0     0      0
##   indian                0         0              1   3       1     0      5
##   industrial            0         0              0   0       0     0      0
##   iranian               1         0              1   0       1     6      0
##   j-idol                0         0              0   0       0     0      0
##   jazz                  0         0              0   0       0     0      0
##   kids                  0         0              0   0       0     0      0
##   latin                 0         0              0   0       0     0      0
##   latino                0         0              1   0       0     0      0
##   mandopop              0         0              0   0       0     0      0
##   metalcore            14        20              0   1       1     1      0
##   mpb                   0         0              0   0       0     0      0
##   new-age               0         0              0   0       0     0      0
##   opera                 0         0              0   0       8     5      0
##   pagode                0         0              3   4       1     0      1
##   party                 3         0              7   2       0     1      0
##   pop-film              0         0              0   0       0     0      0
##   power-pop             0         0              0   0       0     0      0
##   progressive-house     4         2              5   4       0     0      5
##   reggaeton             0         0              0   0       0     0      0
##   rock-n-roll           0         0              0   0       0     0      0
##   romance               0         0              0   1      13    10      0
##   sad                   0         0              1   1       0     0      2
##   samba                 0         0              0   0       0     0      0
##   show-tunes            0         0              0   0       0     0      0
##   ska                   0         0              0   0       0     0      0
##   sleep                 0         2              0   0       4     3      0
##   study                 0         0              0   0       0     0      0
##   tango                 0         0              0   0       0     0      0
##   trance                4         3              1   2       1     1      2
##   trip-hop              0         0              0   0       0     0      0
##   world-music           0         0              0   0       0     0      0
##                    Aktual
## Prediksi            party piano pop pop-film power-pop progressive-house
##   ambient               0    10   2        4         1                 1
##   anime                 0     0   0        0         0                 0
##   black-metal           0     0   0        0         1                 0
##   bluegrass             0     0   0        0         0                 0
##   breakbeat             0     0   0        0         0                 0
##   cantopop              0     0   0        0         0                 0
##   chicago-house         7     2   4        1         1                 0
##   children              0     0   0        0         0                 0
##   chill                 1     2   1        8         0                 0
##   classical             0     7   1        3         0                 0
##   comedy                0     0   0        0         0                 0
##   dance                 0     0   0        0         0                 0
##   death-metal           0     0   0        0         1                 1
##   deep-house            1     0   0        0         0                 0
##   detroit-techno        8     0   7        0         1                 0
##   disney                0     0   0        0         0                 0
##   drum-and-bass         1     0   0        1         2                 1
##   electronic            0     0   0        0         0                 0
##   emo                   0     0   0        1         0                 1
##   forro                 2     0   5        6         0                 5
##   gospel                0     0   0        1         0                 0
##   grindcore             0     0   0        0         2                 1
##   grunge                0     0   0        0         1                 1
##   happy                 0     0   0        0         9                 0
##   hard-rock             0     0   0        0         0                 0
##   hardcore              2     0   0        0         0                 0
##   heavy-metal           0     0   0        0         0                 0
##   hip-hop               0     0   0        0         0                 0
##   honky-tonk            0     1   0        0         0                 0
##   house                 1     0   0        0         0                 0
##   idm                   0     0   0        0         0                 0
##   indian                0     6   1        2         0                 0
##   industrial            0     0   0        0         0                 0
##   iranian               0     2   0        0         0                 0
##   j-idol                0     0   0        0         0                 0
##   jazz                  0     0   0        0         0                 0
##   kids                  0     0   0        0         0                 0
##   latin                 1     0   0        0         1                 0
##   latino                1     0   0        0         0                 0
##   mandopop              0     0   0        0         0                 0
##   metalcore             0     2   1        0         3                 5
##   mpb                   0     0   0        0         0                 0
##   new-age               0     1   0        0         0                 0
##   opera                 0     0   0        0         4                 0
##   pagode                0     3   1        3         0                 6
##   party                12     1   1        0         6                 1
##   pop-film              0     0   0        0         0                 0
##   power-pop             0     0   0        0         0                 0
##   progressive-house     0     0   4        4         0                 6
##   reggaeton             1     0   0        0         0                 0
##   rock-n-roll           0     0   0        0         0                 0
##   romance               0     3   6        2         1                 0
##   sad                   0     0   0        1         0                 1
##   samba                 0     0   0        0         0                 0
##   show-tunes            0     0   0        0         0                 0
##   ska                   0     0   0        0         0                 0
##   sleep                 0     0   0        2         0                 0
##   study                 0     0   0        0         0                 0
##   tango                 0     0   2        0         3                 0
##   trance                2     0   4        1         3                10
##   trip-hop              0     0   0        0         0                 0
##   world-music           0     0   0        0         0                 0
##                    Aktual
## Prediksi            psych-rock punk punk-rock r-n-b reggae reggaeton rock
##   ambient                    7    1         0     0      1         0    0
##   anime                      0    0         0     1      1         0    0
##   black-metal                0    0         1     0      0         0    1
##   bluegrass                  0    0         0     0      0         0    0
##   breakbeat                  0    0         0     0      0         0    0
##   cantopop                   0    0         0     0      0         0    0
##   chicago-house              1    0         1     1     14        19    3
##   children                   2    0         0     2      1         0    0
##   chill                      7    0         0     3      1         0    1
##   classical                  3    1         2     2      0         0    0
##   comedy                     0    0         0     0      0         0    0
##   dance                      0    0         0     0      0         0    0
##   death-metal                0    0         0     0      0         0    0
##   deep-house                 0    0         2     0      0         0    0
##   detroit-techno             0    2         0     2      1         3    1
##   disney                     0    0         0     1      0         0    0
##   drum-and-bass              1    0         0     0      0         0    1
##   electronic                 0    0         0     0      0         0    0
##   emo                        0    0         0     0      0         0    0
##   forro                      1    5         3     6     12        13    1
##   gospel                     0    1         0     0      0         0    1
##   grindcore                  0    1         1     0      0         0    0
##   grunge                     0    3         1     0      0         0    0
##   happy                      0    6         2     0      0         0    6
##   hard-rock                  0    0         0     0      0         0    0
##   hardcore                   0    0         0     0      0         0    0
##   heavy-metal                1    0         0     0      0         0    1
##   hip-hop                    0    0         0     0      0         0    0
##   honky-tonk                 1    0         0     0      0         0    0
##   house                      0    0         0     0      0         0    0
##   idm                        0    0         0     0      0         0    0
##   indian                     4    2         0     1      0         0    0
##   industrial                 0    0         0     0      0         0    0
##   iranian                    0    0         0     0      0         0    3
##   j-idol                     0    0         0     0      0         0    0
##   jazz                       0    0         0     0      0         0    0
##   kids                       1    0         0     0      0         0    0
##   latin                      0    0         0     0      0         0    0
##   latino                     1    0         2     3      1         1    0
##   mandopop                   0    0         0     0      0         0    0
##   metalcore                  0    3        10     1      0         0    3
##   mpb                        0    0         0     0      0         0    0
##   new-age                    1    0         0     0      0         0    0
##   opera                      1    0         0     0      0         0    0
##   pagode                     1    1         1     5      0         3    3
##   party                      0    3         3     1      6         0    5
##   pop-film                   0    0         0     0      0         0    0
##   power-pop                  0    0         0     0      0         0    1
##   progressive-house          2    4         5     0      1         1    1
##   reggaeton                  0    0         0     0      0         0    0
##   rock-n-roll                1    0         0     0      0         0    0
##   romance                    0    0         0     4      0         0    5
##   sad                        0    0         0     1      0         0    0
##   samba                      0    0         0     0      0         0    0
##   show-tunes                 1    0         0     0      0         0    0
##   ska                        0    0         0     0      0         0    0
##   sleep                      0    1         0     0      0         0    0
##   study                      0    0         0     0      0         0    0
##   tango                      3    0         0     3      1         0    2
##   trance                     0    6         6     3      0         0    1
##   trip-hop                   0    0         0     0      0         0    0
##   world-music                0    0         0     0      0         0    0
##                    Aktual
## Prediksi            rock-n-roll rockabilly romance sad salsa samba sertanejo
##   ambient                     3          1       1   4     0     3         2
##   anime                       0          0       0   0     0     0         0
##   black-metal                 0          1       0   0     0     0         0
##   bluegrass                   0          0       0   0     0     0         0
##   breakbeat                   0          0       0   0     0     0         0
##   cantopop                    0          0       0   0     1     0         0
##   chicago-house               1          5       0   0    11     0         0
##   children                    2          1       0   4     0     6         0
##   chill                       7          4       0   8     1     4         2
##   classical                   1          2       0   0     0     3         2
##   comedy                      0          0       0   0     0     0         0
##   dance                       0          0       0   1     0     0         0
##   death-metal                 0          0       0   0     0     0         0
##   deep-house                  1          0       0   0     1     3         0
##   detroit-techno              2          6       0   0     3     0         0
##   disney                      4          1       0   0     1     0         0
##   drum-and-bass               0          1       1   0     0     0         0
##   electronic                  0          0       0   0     0     0         0
##   emo                         0          0       0   0     0     2         0
##   forro                       1          2       0  11     1     7        16
##   gospel                      0          0       0   0     0     0         0
##   grindcore                   0          0       0   0     0     0         0
##   grunge                      0          0       0   0     0     1         0
##   happy                       0          0       0   0     0     1         0
##   hard-rock                   0          0       0   0     0     0         0
##   hardcore                    1          0       0   0     1     0         0
##   heavy-metal                 0          0       0   0     0     0         0
##   hip-hop                     0          0       0   0     1     0         0
##   honky-tonk                  9          1       0   1     2     0         0
##   house                       0          0       0   0     1     0         0
##   idm                         0          0       0   0     0     0         0
##   indian                      2          0       0   2     0     1         1
##   industrial                  0          0       0   0     0     0         0
##   iranian                     0          0       0   0     0     0         0
##   j-idol                      0          0       0   0     0     0         0
##   jazz                        0          0       0   0     0     0         0
##   kids                        0          0       1   0     0     0         0
##   latin                       1          0       0   0     2     0         0
##   latino                      0          0       0   1     0     1         0
##   mandopop                    0          0       0   0     0     0         0
##   metalcore                   0          1       0   1     0     0         2
##   mpb                         0          0       0   0     0     0         0
##   new-age                     0          0       0   0     0     0         0
##   opera                       0          1       1   0     0     0         0
##   pagode                      2          1       0   1     0     0         7
##   party                       0          6       1   0     6     0         0
##   pop-film                    0          0       0   1     0     0         0
##   power-pop                   0          0       0   0     0     0         0
##   progressive-house           0          1       0   3     0     5         5
##   reggaeton                   0          1       0   0     7     0         0
##   rock-n-roll                 2          0       0   0     0     0         0
##   romance                     0          0      24   1     0     0         0
##   sad                         0          0       0   0     0     0         0
##   samba                       0          0       0   0     0     0         0
##   show-tunes                  0          0       0   0     0     0         0
##   ska                         0          0       0   0     0     0         0
##   sleep                       0          0       0   0     0     0         0
##   study                       0          0       0   0     0     0         0
##   tango                       1          4      11   0     1     0         0
##   trance                      0          0       0   1     0     3         3
##   trip-hop                    0          0       0   0     0     0         0
##   world-music                 0          0       0   0     0     0         0
##                    Aktual
## Prediksi            show-tunes singer-songwriter ska sleep songwriter soul
##   ambient                    5                 4   1     5          3    0
##   anime                      0                 0   0     0          0    0
##   black-metal                0                 0   0     1          0    0
##   bluegrass                  0                 0   0     0          1    0
##   breakbeat                  0                 0   0     0          0    0
##   cantopop                   0                 0   0     0          0    0
##   chicago-house              0                 1   2     0          2    7
##   children                   1                 3   3     0          1    0
##   chill                      1                10   2     0          4    0
##   classical                  2                 3   0     0          6    1
##   comedy                     0                 0   0     0          0    0
##   dance                      0                 0   0     0          0    0
##   death-metal                0                 0   0     0          0    0
##   deep-house                 0                 0   7     0          1    0
##   detroit-techno             0                 0   0     0          1    0
##   disney                     1                 0   0     0          0    0
##   drum-and-bass              1                 0   0     0          0    0
##   electronic                 0                 0   0     0          0    0
##   emo                        0                 0   0     0          0    0
##   forro                      0                 2   3     0          1    4
##   gospel                     0                 0   0     0          0    0
##   grindcore                  0                 0   0     0          0    0
##   grunge                     0                 0   0     0          0    0
##   happy                      1                 1   1     0          1    0
##   hard-rock                  0                 0   0     0          0    0
##   hardcore                   0                 0   0     0          0    0
##   heavy-metal                0                 0   0     0          0    0
##   hip-hop                    0                 0   1     0          0    0
##   honky-tonk                 1                 1   1     0          2    0
##   house                      0                 0   0     0          0    0
##   idm                        0                 0   0     0          0    0
##   indian                     1                 2   0     0          6    1
##   industrial                 0                 0   0     0          0    0
##   iranian                    1                 2   0     3          1    1
##   j-idol                     0                 0   0     0          0    0
##   jazz                       0                 0   0     0          0    0
##   kids                       0                 0   0     0          1    0
##   latin                      0                 0   0     0          0    0
##   latino                     0                 1   4     0          0    0
##   mandopop                   0                 0   1     0          0    0
##   metalcore                  0                 0   2     0          0    0
##   mpb                        0                 0   0     0          0    0
##   new-age                    1                 0   0     0          0    0
##   opera                      7                 0   0     0          0    0
##   pagode                     0                 0   3     0          1    0
##   party                      2                 0   1     0          1    7
##   pop-film                   0                 0   0     0          0    0
##   power-pop                  0                 0   0     0          0    0
##   progressive-house          0                 1   2     0          1    1
##   reggaeton                  0                 0   2     0          0    0
##   rock-n-roll                0                 0   0     0          0    0
##   romance                    9                 5   0     0          3   10
##   sad                        0                 0   0     0          0    0
##   samba                      0                 0   0     0          0    0
##   show-tunes                 0                 0   0     0          0    0
##   ska                        0                 0   1     0          0    0
##   sleep                      2                 1   1    31          0    0
##   study                      0                 0   0     0          0    0
##   tango                      4                 3   0     0          2    6
##   trance                     0                 0   2     0          1    2
##   trip-hop                   0                 0   0     0          0    0
##   world-music                0                 0   0     0          0    0
##                    Aktual
## Prediksi            spanish study swedish synth-pop tango techno trance
##   ambient                 1     0       3         0     1      0      2
##   anime                   0     0       0         0     0      0      0
##   black-metal             0     0       0         1     0      0      0
##   bluegrass               0     1       0         0     0      0      0
##   breakbeat               0     0       0         0     0      0      0
##   cantopop                2     0       0         0     1      0      0
##   chicago-house           3     4       0         1     1      3      0
##   children                0     7       3         1     0      0      1
##   chill                   3     7       4         2     0      1      0
##   classical               3     1       4         0     0      0      0
##   comedy                  0     0       0         0     0      0      0
##   dance                   0     0       0         0     0      0      0
##   death-metal             1     0       0         2     0      0      2
##   deep-house              0     0       4         0     0      1      1
##   detroit-techno          2     0       0         2     2      1      1
##   disney                  2     0       1         0     2      0      0
##   drum-and-bass           0     0       0         0     0      0      1
##   electronic              0     1       0         0     0      0      0
##   emo                     0     0       0         0     0      0      0
##   forro                   2     1       6         6     0     12      3
##   gospel                  0     0       0         0     0      0      0
##   grindcore               0     0       0         0     0      0      0
##   grunge                  0     0       0         0     0      0      0
##   happy                   0     0       1         2     1      2      1
##   hard-rock               1     0       0         0     0      0      0
##   hardcore                2     0       0         0     0      0      0
##   heavy-metal             0     0       0         0     0      0      0
##   hip-hop                 0     0       0         0     0      0      0
##   honky-tonk              1     4       0         0     1      0      0
##   house                   0     0       0         0     0      0      0
##   idm                     0     0       0         0     0      0      0
##   indian                  0     0       1         0     0      2      0
##   industrial              0     0       0         0     0      0      0
##   iranian                 0     0       0         1     0      0      0
##   j-idol                  0     0       0         0     0      0      0
##   jazz                    0     0       0         1     0      0      0
##   kids                    0     1       0         1     0      0      0
##   latin                   1     0       0         0     0      1      0
##   latino                  0     0       2         0     0      1      1
##   mandopop                0     0       0         0     0      0      0
##   metalcore               2     0       1         0     0      2      7
##   mpb                     0     0       0         0     0      0      0
##   new-age                 0     0       0         1     1      0      0
##   opera                   1     0       0         1     1      0      0
##   pagode                  2     0       2         3     0      5      4
##   party                   4     3       0         6     0      0      1
##   pop-film                0     0       0         0     0      0      0
##   power-pop               0     0       0         0     0      0      0
##   progressive-house       0     0       4         3     0      3      9
##   reggaeton               1     0       0         0     0      1      0
##   rock-n-roll             2     3       0         0     0      0      0
##   romance                 1     0       2         2    15      0      0
##   sad                     0     0       0         0     0      0      0
##   samba                   0     0       0         0     0      0      0
##   show-tunes              0     0       0         0     0      0      0
##   ska                     0     0       0         1     0      0      0
##   sleep                   1     0       0         0     0      0      0
##   study                   0     0       0         0     0      0      0
##   tango                   0     7       1         1    14      0      0
##   trance                  1     0       1         2     0      5      6
##   trip-hop                1     0       0         0     0      0      0
##   world-music             0     0       0         0     0      0      0
##                    Aktual
## Prediksi            trip-hop turkish world-music
##   ambient                  0       5          10
##   anime                    0       0           0
##   black-metal              0       0           1
##   bluegrass                0       0           0
##   breakbeat                0       0           0
##   cantopop                 0       0           0
##   chicago-house            8       1           0
##   children                 0       0           0
##   chill                    1       4           0
##   classical                0       2           2
##   comedy                   0       0           0
##   dance                    0       0           0
##   death-metal              0       0           0
##   deep-house               0       0           0
##   detroit-techno           5       1           0
##   disney                   1       0           0
##   drum-and-bass            1       0           0
##   electronic               0       0           0
##   emo                      0       0           0
##   forro                    5       9           0
##   gospel                   0       1           1
##   grindcore                0       0           0
##   grunge                   0       1           0
##   happy                    1       0           0
##   hard-rock                0       0           0
##   hardcore                 0       0           0
##   heavy-metal              0       0           0
##   hip-hop                  0       0           0
##   honky-tonk               0       0           0
##   house                    0       0           0
##   idm                      0       0           0
##   indian                   1       2           1
##   industrial               0       0           0
##   iranian                  0       0           2
##   j-idol                   0       0           0
##   jazz                     0       0           0
##   kids                     0       0           0
##   latin                    0       0           0
##   latino                   0       2           0
##   mandopop                 0       0           0
##   metalcore                1       2           7
##   mpb                      1       0           0
##   new-age                  0       0           1
##   opera                    1       0           1
##   pagode                   2       4           0
##   party                    4       0           0
##   pop-film                 0       0           0
##   power-pop                0       0           0
##   progressive-house        2       2           3
##   reggaeton                0       0           0
##   rock-n-roll              0       0           0
##   romance                  4       0           2
##   sad                      0       0           0
##   samba                    0       0           0
##   show-tunes               0       0           0
##   ska                      0       0           0
##   sleep                    0       0           4
##   study                    0       0           0
##   tango                    2       0           2
##   trance                   0       4           3
##   trip-hop                 0       0           0
##   world-music              0       0           0
# Akurasi
ac.tmp <- sum(diag(mc.tmp))/sum(mc.tmp)

message(
  '==> Akurasi model final: ',
  round(ac.tmp,4)
)
## ==> Akurasi model final: 0.0057
message(
  '==> Akurasi model final: ',
  round(ac.tmp*100,2),
  '%'
)
## ==> Akurasi model final: 0.57%