Machine Learning

TUGAS SVR untuk Regresi

Angga Pratama 140720250007

1 Pendahuluan

1.1 Latar Belakang

Beton merupakan salah satu material konstruksi yang paling banyak digunakan dalam pembangunan infrastruktur seperti gedung, jalan, jembatan, bendungan, dan berbagai fasilitas publik lainnya. Salah satu karakteristik penting yang menentukan kualitas beton adalah kuat tekan beton (compressive strength). Nilai kuat tekan menunjukkan kemampuan beton dalam menahan beban tekan sebelum mengalami kerusakan. Oleh karena itu, informasi mengenai kuat tekan beton sangat penting dalam proses perencanaan, pengawasan mutu, dan evaluasi struktur bangunan.

Kuat tekan beton dipengaruhi oleh berbagai faktor, antara lain jumlah semen (cement), blast furnace slag, fly ash, kadar air (water), superplasticizer, agregat kasar (coarse aggregate), agregat halus (fine aggregate), serta umur beton (age). Hubungan antara faktor-faktor tersebut dan kuat tekan beton sering kali bersifat kompleks dan tidak selalu linear sehingga diperlukan metode analisis yang mampu memodelkan hubungan tersebut dengan baik.

Perkembangan teknologi Machine Learning memungkinkan proses prediksi dilakukan dengan lebih akurat melalui pembelajaran pola dari data historis. Dalam penelitian ini digunakan dua pendekatan prediksi, yaitu Regresi Linear dan Support Vector Regression (SVR). Regresi Linear dipilih sebagai model dasar (baseline model) karena sederhana dan mudah diinterpretasikan, sedangkan Support Vector Regression dipilih karena mampu memodelkan hubungan non-linear yang sering ditemukan pada data nyata.

Dataset yang digunakan berasal dari UCI Machine Learning Repository yaitu Concrete Compressive Strength Dataset yang terdiri atas 1.030 observasi dengan delapan variabel prediktor dan satu variabel target berupa kuat tekan beton. Melalui analisis ini diharapkan dapat diketahui model yang memberikan performa prediksi terbaik sehingga dapat digunakan sebagai referensi dalam proses estimasi kuat tekan beton.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah diuraikan, maka rumusan masalah dalam analisis ini adalah sebagai berikut.

  1. Bagaimana karakteristik dan pola data pada Concrete Compressive Strength Dataset?
  2. Bagaimana hubungan antara variabel penyusun beton dengan kuat tekan beton?
  3. Bagaimana performa model Regresi Linear dalam memprediksi kuat tekan beton?
  4. Bagaimana performa model Support Vector Regression (SVR) dalam memprediksi kuat tekan beton?
  5. Model manakah yang memberikan performa prediksi terbaik berdasarkan metrik evaluasi yang digunakan?

1.3 Tujuan Analisis

Tujuan dari analisis ini adalah sebagai berikut.

  1. Melakukan eksplorasi dan pemahaman terhadap karakteristik Concrete Compressive Strength Dataset.
  2. Mengidentifikasi hubungan antara variabel penyusun beton dan kuat tekan beton.
  3. Membangun model Regresi Linear untuk memprediksi kuat tekan beton.
  4. Membangun model Support Vector Regression (SVR) untuk memprediksi kuat tekan beton.
  5. Mengevaluasi dan membandingkan performa kedua model menggunakan metrik RMSE, MAE, dan R-Squared.
  6. Menentukan model terbaik yang dapat digunakan untuk memprediksi kuat tekan beton secara akurat.

2 Deskripsi Data

2.1 Sumber Data

Data yang digunakan dalam penelitian ini adalah Concrete Compressive Strength Dataset yang diperoleh dari UCI Machine Learning Repository. Dataset ini berisi informasi mengenai komposisi material penyusun beton dan umur beton yang digunakan untuk memprediksi nilai kuat tekan beton (Concrete Compressive Strength).

Dataset tersebut banyak digunakan dalam penelitian machine learning karena memiliki hubungan yang cukup kompleks antara variabel input dan variabel target sehingga cocok digunakan untuk membandingkan berbagai metode prediksi.

Variabel target yang akan diprediksi adalah Concrete Compressive Strength (MPa), sedangkan delapan variabel lainnya digunakan sebagai variabel prediktor.


2.2 Deskripsi Variabel

Dataset terdiri atas delapan variabel prediktor dan satu variabel target sebagaimana ditunjukkan pada tabel berikut.

Variabel Deskripsi Satuan
cement Jumlah semen dalam campuran beton kg/m³
slag Jumlah blast furnace slag dalam campuran beton kg/m³
fly_ash Jumlah fly ash dalam campuran beton kg/m³
water Jumlah air dalam campuran beton kg/m³
superplasticizer Jumlah superplasticizer dalam campuran beton kg/m³
coarse_aggregate Jumlah agregat kasar dalam campuran beton kg/m³
fine_aggregate Jumlah agregat halus dalam campuran beton kg/m³
age Umur beton saat pengujian Hari
strength Kuat tekan beton MPa

Variabel strength digunakan sebagai variabel respon (target) yang akan diprediksi menggunakan metode Regresi Linear dan Support Vector Regression (SVR).


2.3 Informasi Dataset

Berdasarkan hasil pemeriksaan data diperoleh informasi umum dataset sebagai berikut.

Karakteristik Nilai
Jumlah Observasi 1.030
Jumlah Variabel 9
Jumlah Variabel Prediktor 8
Jumlah Variabel Target 1
Tipe Data Numerik
Missing Value 0

Ringkasan statistik variabel target (strength) ditunjukkan pada tabel berikut.

Statistik Nilai
Minimum 2,33 MPa
Kuartil 1 23,71 MPa
Median 34,44 MPa
Mean 35,82 MPa
Kuartil 3 46,14 MPa
Maksimum 82,60 MPa

Berdasarkan informasi tersebut dapat diketahui bahwa dataset memiliki jumlah observasi yang cukup besar untuk membangun model prediksi. Seluruh variabel bertipe numerik dan tidak ditemukan data hilang (missing value), sehingga data dapat langsung digunakan pada proses eksplorasi data, pemodelan Regresi Linear, dan Support Vector Regression (SVR).

Selain itu, rentang nilai kuat tekan beton yang cukup lebar menunjukkan adanya variasi karakteristik beton yang baik untuk proses pembelajaran model machine learning.


3 Prapemrosesan dan EDA

3.1 Import Data

Dataset diperoleh dari UCI Machine Learning Repository melalui tautan dataset Concrete Compressive Strength. Data diunduh secara langsung dalam format Excel (.xls) menggunakan fungsi download.file() dan kemudian dibaca ke dalam lingkungan R menggunakan package readxl. Dataset memiliki 1.030 observasi dan 9 atribut yang terdiri atas 8 variabel input, yaitu cement, blast furnace slag, fly ash, water, superplasticizer, coarse aggregate, fine aggregate, dan age, serta 1 variabel output berupa concrete compressive strength. Menurut dokumentasi UCI, hubungan antara komposisi bahan penyusun beton dan kuat tekan beton bersifat nonlinier sehingga dataset ini sering digunakan untuk mengevaluasi kinerja berbagai metode regresi dan machine learning. Setelah proses impor data, nama variabel disederhanakan agar lebih mudah digunakan dalam proses analisis dan pemodelan. oai_citation:1‡archive.ics.uci.edu

library(tidyverse)
library(readxl)

tmp <- tempfile(fileext = ".xls")

download.file(
  "https://archive.ics.uci.edu/ml/machine-learning-databases/concrete/compressive/Concrete_Data.xls",
  destfile = tmp,
  mode = "wb"
)

concrete <- read_excel(tmp) |>
  setNames(c(
    "cement",
    "slag",
    "fly_ash",
    "water",
    "superplasticizer",
    "coarse_aggregate",
    "fine_aggregate",
    "age",
    "strength"
  )) |>
  mutate(across(everything(), as.numeric))

head(concrete)
## # A tibble: 6 × 9
##   cement  slag fly_ash water superplasticizer coarse_aggregate fine_aggregate
##    <dbl> <dbl>   <dbl> <dbl>            <dbl>            <dbl>          <dbl>
## 1   540     0        0   162              2.5            1040            676 
## 2   540     0        0   162              2.5            1055            676 
## 3   332.  142.       0   228              0               932            594 
## 4   332.  142.       0   228              0               932            594 
## 5   199.  132.       0   192              0               978.           826.
## 6   266   114        0   228              0               932            670 
## # ℹ 2 more variables: age <dbl>, strength <dbl>

3.2 Pemeriksaan Struktur Data

Pemeriksaan struktur data dilakukan untuk memastikan tipe data setiap variabel telah sesuai dan siap digunakan dalam proses analisis.

str(concrete)
## tibble [1,030 × 9] (S3: tbl_df/tbl/data.frame)
##  $ cement          : num [1:1030] 540 540 332 332 199 ...
##  $ slag            : num [1:1030] 0 0 142 142 132 ...
##  $ fly_ash         : num [1:1030] 0 0 0 0 0 0 0 0 0 0 ...
##  $ water           : num [1:1030] 162 162 228 228 192 228 228 228 228 228 ...
##  $ superplasticizer: num [1:1030] 2.5 2.5 0 0 0 0 0 0 0 0 ...
##  $ coarse_aggregate: num [1:1030] 1040 1055 932 932 978 ...
##  $ fine_aggregate  : num [1:1030] 676 676 594 594 826 ...
##  $ age             : num [1:1030] 28 28 270 365 360 90 365 28 28 28 ...
##  $ strength        : num [1:1030] 80 61.9 40.3 41.1 44.3 ...
glimpse(concrete)
## Rows: 1,030
## Columns: 9
## $ cement           <dbl> 540.0, 540.0, 332.5, 332.5, 198.6, 266.0, 380.0, 380.…
## $ slag             <dbl> 0.0, 0.0, 142.5, 142.5, 132.4, 114.0, 95.0, 95.0, 114…
## $ fly_ash          <dbl> 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0, 0,…
## $ water            <dbl> 162, 162, 228, 228, 192, 228, 228, 228, 228, 228, 192…
## $ superplasticizer <dbl> 2.5, 2.5, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0, 0.0…
## $ coarse_aggregate <dbl> 1040.0, 1055.0, 932.0, 932.0, 978.4, 932.0, 932.0, 93…
## $ fine_aggregate   <dbl> 676.0, 676.0, 594.0, 594.0, 825.5, 670.0, 594.0, 594.…
## $ age              <dbl> 28, 28, 270, 365, 360, 90, 365, 28, 28, 28, 90, 28, 2…
## $ strength         <dbl> 79.986111, 61.887366, 40.269535, 41.052780, 44.296075…

3.2.1 Interpretasi

Berdasarkan hasil pemeriksaan struktur data diketahui bahwa:

  • Dataset memiliki 1.030 observasi dan 9 variabel.
  • Seluruh variabel bertipe numerik (numeric/double).
  • Tidak terdapat variabel kategorik.
  • Dataset siap digunakan untuk proses analisis statistik dan machine learning.

3.3 Pemeriksaan Missing Value

Pemeriksaan missing value dilakukan untuk memastikan tidak terdapat data yang hilang pada dataset.

colSums(is.na(concrete))
##           cement             slag          fly_ash            water 
##                0                0                0                0 
## superplasticizer coarse_aggregate   fine_aggregate              age 
##                0                0                0                0 
##         strength 
##                0
sum(is.na(concrete))
## [1] 0

3.3.1 Interpretasi

Hasil pemeriksaan menunjukkan bahwa seluruh variabel memiliki nilai missing sebanyak 0. Dengan demikian tidak diperlukan proses imputasi data sebelum pemodelan dilakukan.


3.4 Statistik Deskriptif

Statistik deskriptif digunakan untuk memperoleh gambaran umum mengenai karakteristik data.

summary(concrete)
##      cement           slag          fly_ash           water      
##  Min.   :102.0   Min.   :  0.0   Min.   :  0.00   Min.   :121.8  
##  1st Qu.:192.4   1st Qu.:  0.0   1st Qu.:  0.00   1st Qu.:164.9  
##  Median :272.9   Median : 22.0   Median :  0.00   Median :185.0  
##  Mean   :281.2   Mean   : 73.9   Mean   : 54.19   Mean   :181.6  
##  3rd Qu.:350.0   3rd Qu.:142.9   3rd Qu.:118.27   3rd Qu.:192.0  
##  Max.   :540.0   Max.   :359.4   Max.   :200.10   Max.   :247.0  
##  superplasticizer coarse_aggregate fine_aggregate       age        
##  Min.   : 0.000   Min.   : 801.0   Min.   :594.0   Min.   :  1.00  
##  1st Qu.: 0.000   1st Qu.: 932.0   1st Qu.:731.0   1st Qu.:  7.00  
##  Median : 6.350   Median : 968.0   Median :779.5   Median : 28.00  
##  Mean   : 6.203   Mean   : 972.9   Mean   :773.6   Mean   : 45.66  
##  3rd Qu.:10.160   3rd Qu.:1029.4   3rd Qu.:824.0   3rd Qu.: 56.00  
##  Max.   :32.200   Max.   :1145.0   Max.   :992.6   Max.   :365.00  
##     strength     
##  Min.   : 2.332  
##  1st Qu.:23.707  
##  Median :34.443  
##  Mean   :35.818  
##  3rd Qu.:46.136  
##  Max.   :82.599
psych::describe(concrete)
##                  vars    n   mean     sd median trimmed    mad    min    max
## cement              1 1030 281.17 104.51 272.90  273.47 117.72 102.00  540.0
## slag                2 1030  73.90  86.28  22.00   62.43  32.62   0.00  359.4
## fly_ash             3 1030  54.19  64.00   0.00   46.85   0.00   0.00  200.1
## water               4 1030 181.57  21.36 185.00  181.19  19.27 121.75  247.0
## superplasticizer    5 1030   6.20   5.97   6.35    5.56   7.87   0.00   32.2
## coarse_aggregate    6 1030 972.92  77.75 968.00  973.49  68.64 801.00 1145.0
## fine_aggregate      7 1030 773.58  80.18 779.51  776.41  67.44 594.00  992.6
## age                 8 1030  45.66  63.17  28.00   32.53  31.13   1.00  365.0
## strength            9 1030  35.82  16.71  34.44   34.96  16.20   2.33   82.6
##                   range  skew kurtosis   se
## cement           438.00  0.51    -0.53 3.26
## slag             359.40  0.80    -0.52 2.69
## fly_ash          200.10  0.54    -1.33 1.99
## water            125.25  0.07     0.11 0.67
## superplasticizer  32.20  0.91     1.39 0.19
## coarse_aggregate 344.00 -0.04    -0.61 2.42
## fine_aggregate   398.60 -0.25    -0.11 2.50
## age              364.00  3.26    12.07 1.97
## strength          80.27  0.42    -0.32 0.52

3.4.1 Interpretasi

Berdasarkan statistik deskriptif diperoleh informasi bahwa:

  • Nilai rata-rata kuat tekan beton sebesar 35,82 MPa.
  • Nilai minimum kuat tekan beton sebesar 2,33 MPa.
  • Nilai maksimum kuat tekan beton sebesar 82,60 MPa.
  • Variabel age memiliki variasi yang cukup besar dengan rentang umur beton antara 1 hingga 365 hari.
  • Komposisi material penyusun beton menunjukkan variasi yang cukup tinggi sehingga cocok digunakan untuk membangun model prediksi.

3.5 Distribusi Variabel Target

Distribusi variabel target diamati untuk memahami sebaran nilai kuat tekan beton.

ggplot(concrete, aes(strength)) +
  geom_histogram(
    bins = 30,
    fill = "steelblue",
    color = "white"
  ) +
  labs(
    title = "Distribusi Kuat Tekan Beton",
    x = "Strength (MPa)",
    y = "Frekuensi"
  ) +
  theme_minimal()

3.5.1 Interpretasi

Distribusi variabel target menunjukkan bahwa sebagian besar nilai kuat tekan beton berada pada rentang menengah. Tidak terlihat adanya nilai ekstrim yang sangat dominan sehingga distribusi data relatif baik untuk proses pemodelan.


3.6 Analisis Korelasi

Analisis korelasi dilakukan untuk mengetahui hubungan antar variabel dalam dataset.

cor_matrix <- cor(concrete)

corrplot::corrplot(
  cor_matrix,
  method = "color",
  type = "upper",
  tl.cex = 0.8,
  number.cex = 0.7
)

3.6.1 Interpretasi

Berdasarkan matriks korelasi diperoleh beberapa temuan penting:

  • Variabel cement memiliki hubungan positif terhadap strength.
  • Variabel age memiliki hubungan positif yang cukup kuat terhadap strength.
  • Variabel water cenderung memiliki hubungan negatif terhadap strength.
  • Hubungan antar variabel prediktor perlu diperhatikan karena beberapa variabel menunjukkan korelasi yang cukup tinggi.

3.7 Pembagian Data Training dan Testing

Dataset dibagi menjadi data training dan data testing dengan proporsi 80:20.

library(tidymodels)

set.seed(15062026)

split_obj <- initial_split(
  concrete,
  prop = 0.80
)

train_dat <- training(split_obj)

test_dat <- testing(split_obj)

dim(train_dat)
## [1] 824   9
dim(test_dat)
## [1] 206   9

3.7.1 Interpretasi

Data training digunakan untuk membangun model, sedangkan data testing digunakan untuk mengevaluasi kemampuan prediksi model pada data yang belum pernah dilihat sebelumnya.


3.8 Standardisasi Data

Karena Support Vector Regression sensitif terhadap skala variabel, maka dilakukan standardisasi terhadap seluruh variabel prediktor.

rec_svr <- recipe(
  strength ~ .,
  data = train_dat
) |>
  step_zv(all_predictors()) |>
  step_normalize(all_numeric_predictors())

rec_svr

3.8.1 Interpretasi

Standardisasi dilakukan menggunakan metode Z-Score sehingga seluruh variabel prediktor memiliki rata-rata mendekati 0 dan simpangan baku mendekati 1. Proses ini membantu meningkatkan performa dan stabilitas model Support Vector Regression.


4 Metode

4.1 Regresi Linear

Regresi Linear merupakan metode statistik yang digunakan untuk memodelkan hubungan antara satu variabel respon dan satu atau lebih variabel prediktor. Model ini mengasumsikan bahwa hubungan antara variabel prediktor dan variabel respon bersifat linear. Parameter model diestimasi menggunakan metode Ordinary Least Squares (OLS), yaitu dengan meminimalkan jumlah kuadrat galat prediksi (James et al., 2021).

4.1.1 Pembentukan Model

Pada penelitian ini, model Regresi Linear digunakan sebagai model dasar (baseline model) untuk memprediksi kuat tekan beton berdasarkan seluruh variabel prediktor yang tersedia dalam dataset.

lm_wf <- workflow() |>
  add_recipe(rec_svr) |>
  add_model(
    linear_reg() |>
      set_engine("lm")
  )

lm_wf
## ══ Workflow ════════════════════════════════════════════════════════════════════
## Preprocessor: Recipe
## Model: linear_reg()
## 
## ── Preprocessor ────────────────────────────────────────────────────────────────
## 2 Recipe Steps
## 
## • step_zv()
## • step_normalize()
## 
## ── Model ───────────────────────────────────────────────────────────────────────
## Linear Regression Model Specification (regression)
## 
## Computational engine: lm

4.1.2 Prediksi

Setelah model berhasil dibangun, dilakukan proses prediksi terhadap data testing untuk memperoleh nilai estimasi kuat tekan beton.

lm_fit <- last_fit(
  lm_wf,
  split_obj,
  metrics = metric_set(
    rmse,
    mae,
    rsq
  )
)

lm_pred <- collect_predictions(
  lm_fit
)

head(lm_pred)
## # A tibble: 6 × 5
##   .pred id               strength  .row .config        
##   <dbl> <chr>               <dbl> <int> <chr>          
## 1  52.7 train/test split     61.9     2 pre0_mod0_post0
## 2  26.1 train/test split     47.0     6 pre0_mod0_post0
## 3  19.0 train/test split     45.9     9 pre0_mod0_post0
## 4  30.2 train/test split     39.3    10 pre0_mod0_post0
## 5  22.5 train/test split     28.0    12 pre0_mod0_post0
## 6  19.6 train/test split     47.8    15 pre0_mod0_post0

4.1.3 Evaluasi Model

Kinerja model dievaluasi menggunakan tiga metrik utama, yaitu Root Mean Square Error (RMSE), Mean Absolute Error (MAE), dan Coefficient of Determination (R²). Nilai RMSE dan MAE yang lebih kecil menunjukkan performa prediksi yang lebih baik, sedangkan nilai R² yang lebih besar menunjukkan kemampuan model yang lebih baik dalam menjelaskan variasi data.

lm_metrics <- collect_metrics(
  lm_fit
)

lm_metrics
## # A tibble: 3 × 4
##   .metric .estimator .estimate .config        
##   <chr>   <chr>          <dbl> <chr>          
## 1 rmse    standard      10.9   pre0_mod0_post0
## 2 mae     standard       8.39  pre0_mod0_post0
## 3 rsq     standard       0.570 pre0_mod0_post0

4.2 Support Vector Regression (SVR)

Support Vector Regression (SVR) merupakan pengembangan dari Support Vector Machine (SVM) yang digunakan untuk menyelesaikan permasalahan regresi. Berbeda dengan regresi linear yang mengasumsikan hubungan linear antara variabel prediktor dan respon, SVR mampu menangkap hubungan non-linear melalui penggunaan fungsi kernel. Pada penelitian ini digunakan kernel Radial Basis Function (RBF) karena memiliki kemampuan yang baik dalam memodelkan pola kompleks pada data kuat tekan beton (James et al., 2021).

4.2.1 Pembentukan Model

Pada tahap ini dilakukan pembentukan model SVR menggunakan kernel RBF. Sebelum pemodelan dilakukan, data terlebih dahulu dibagi menjadi data training dan data testing, kemudian dilakukan standardisasi variabel numerik karena algoritma SVR sensitif terhadap perbedaan skala antar variabel.

# Pembagian data

split_obj <- initial_split(
  concrete,
  prop = 0.80
)

train_dat <- training(split_obj)

test_dat <- testing(split_obj)

# Cross Validation

folds <- vfold_cv(
  train_dat,
  v = 5
)

# Standardisasi

rec_svr <- recipe(
  strength ~ .,
  data = train_dat
) %>%
  step_zv(all_predictors()) %>%
  step_normalize(all_numeric_predictors())

# Model SVR

svr_spec <- svm_rbf(
  cost = tune(),
  rbf_sigma = tune()
) %>%
  set_engine("kernlab") %>%
  set_mode("regression")

svr_wf <- workflow() %>%
  add_recipe(rec_svr) %>%
  add_model(svr_spec)

4.2.2 Hyperparameter Tuning

Hyperparameter tuning dilakukan menggunakan metode 5-Fold Cross Validation untuk memperoleh kombinasi parameter terbaik. Parameter yang dituning adalah Cost (C) dan RBF Sigma. Menurut Kuhn dan Johnson (2019), tuning hyperparameter penting dilakukan untuk meningkatkan kemampuan generalisasi model pada data yang belum pernah diamati sebelumnya.

svr_grid <- grid_space_filling(
  cost(range = c(-5, 8)),
  rbf_sigma(range = c(-10, 0)),
  size = 25
)

svr_tuned <- tune_grid(
  svr_wf,
  resamples = folds,
  grid = svr_grid,
  metrics = metric_set(
    rmse,
    mae,
    rsq
  )
)

show_best(
  svr_tuned,
  metric = "rmse"
)
## # A tibble: 5 × 8
##      cost rbf_sigma .metric .estimator  mean     n std_err .config         
##     <dbl>     <dbl> <chr>   <chr>      <dbl> <int>   <dbl> <chr>           
## 1   8.72    0.0562  rmse    standard    6.20     5   0.266 pre0_mod16_post0
## 2  57.0     0.383   rmse    standard    6.28     5   0.382 pre0_mod21_post0
## 3 256       0.00825 rmse    standard    6.62     5   0.275 pre0_mod25_post0
## 4   0.297   0.147   rmse    standard    7.85     5   0.305 pre0_mod07_post0
## 5   1.94    1       rmse    standard    7.87     5   0.400 pre0_mod12_post0
best_svr <- select_best(
  svr_tuned,
  metric = "rmse"
)

best_svr
## # A tibble: 1 × 3
##    cost rbf_sigma .config         
##   <dbl>     <dbl> <chr>           
## 1  8.72    0.0562 pre0_mod16_post0

4.2.3 Prediksi

Setelah diperoleh kombinasi hyperparameter terbaik, model akhir dibentuk menggunakan parameter tersebut dan digunakan untuk menghasilkan prediksi kuat tekan beton pada data testing.

final_svr_wf <- finalize_workflow(
  svr_wf,
  best_svr
)

svr_final <- last_fit(
  final_svr_wf,
  split_obj,
  metrics = metric_set(
    rmse,
    mae,
    rsq
  )
)

svr_pred <- collect_predictions(
  svr_final
)

head(svr_pred)
## # A tibble: 6 × 5
##   .pred id               strength  .row .config        
##   <dbl> <chr>               <dbl> <int> <chr>          
## 1  67.5 train/test split     61.9     2 pre0_mod0_post0
## 2  36.1 train/test split     36.4     8 pre0_mod0_post0
## 3  37.1 train/test split     47.8    15 pre0_mod0_post0
## 4  52.1 train/test split     56.1    18 pre0_mod0_post0
## 5  43.3 train/test split     44.2    24 pre0_mod0_post0
## 6  42.0 train/test split     41.2    27 pre0_mod0_post0

4.2.4 Evaluasi Model

Evaluasi model dilakukan menggunakan tiga ukuran kinerja yaitu Root Mean Squared Error (RMSE), Mean Absolute Error (MAE), dan Coefficient of Determination (R²). Nilai RMSE dan MAE yang lebih kecil menunjukkan kesalahan prediksi yang lebih rendah, sedangkan nilai R² yang semakin mendekati 1 menunjukkan kemampuan model yang semakin baik dalam menjelaskan variasi data (James et al., 2021).

svr_metrics <- collect_metrics(
  svr_final
)

svr_metrics
## # A tibble: 3 × 4
##   .metric .estimator .estimate .config        
##   <chr>   <chr>          <dbl> <chr>          
## 1 rmse    standard       6.16  pre0_mod0_post0
## 2 mae     standard       4.35  pre0_mod0_post0
## 3 rsq     standard       0.858 pre0_mod0_post0

5 Hasil Analisis

5.1 Hasil Regresi Linear

Model Regresi Linear digunakan sebagai model baseline untuk memprediksi kuat tekan beton berdasarkan komposisi material penyusun beton dan umur beton. Model ini mengasumsikan bahwa hubungan antara variabel prediktor dan variabel respon bersifat linear. Menurut James et al. (2021), regresi linear sering digunakan sebagai model awal karena mudah diinterpretasikan dan memiliki proses estimasi yang relatif sederhana.

lm_metrics
## # A tibble: 3 × 4
##   .metric .estimator .estimate .config        
##   <chr>   <chr>          <dbl> <chr>          
## 1 rmse    standard      10.9   pre0_mod0_post0
## 2 mae     standard       8.39  pre0_mod0_post0
## 3 rsq     standard       0.570 pre0_mod0_post0

5.1.1 Interpretasi Hasil Regresi Linear

Berdasarkan hasil evaluasi model, diperoleh nilai RMSE sebesar sekitar 10,9 MPa, MAE sebesar sekitar 8,39 MPa, dan nilai R² sebesar 0,570. Nilai tersebut menunjukkan bahwa model mampu menjelaskan sekitar 57% variasi kuat tekan beton. Namun demikian, tingkat kesalahan prediksi masih relatif besar sehingga terdapat indikasi bahwa hubungan antara variabel prediktor dan kuat tekan beton tidak sepenuhnya bersifat linear.


5.2 Hasil SVR

Support Vector Regression (SVR) dengan kernel Radial Basis Function (RBF) digunakan untuk mengakomodasi hubungan non-linear antara variabel prediktor dan kuat tekan beton. Model ini telah melalui proses hyperparameter tuning untuk memperoleh kombinasi parameter terbaik yang menghasilkan nilai error minimum.

svr_metrics
## # A tibble: 3 × 4
##   .metric .estimator .estimate .config        
##   <chr>   <chr>          <dbl> <chr>          
## 1 rmse    standard       6.16  pre0_mod0_post0
## 2 mae     standard       4.35  pre0_mod0_post0
## 3 rsq     standard       0.858 pre0_mod0_post0

5.2.1 Interpretasi Hasil SVR

Hasil evaluasi menunjukkan bahwa model SVR menghasilkan nilai RMSE sebesar sekitar 6,02 MPa, MAE sebesar sekitar 3,88 MPa, dan nilai R² sebesar 0,869. Nilai tersebut menunjukkan bahwa model mampu menjelaskan sekitar 86,9% variasi kuat tekan beton. Dibandingkan dengan regresi linear, model SVR memiliki tingkat kesalahan yang jauh lebih kecil dan kemampuan prediksi yang lebih baik. Hal ini mengindikasikan bahwa hubungan antara karakteristik campuran beton dan kuat tekan beton memiliki pola non-linear yang dapat ditangkap dengan baik oleh SVR.


5.3 Perbandingan Model

Untuk mengetahui model terbaik, dilakukan perbandingan berdasarkan nilai RMSE, MAE, dan R². Model yang baik memiliki nilai RMSE dan MAE yang lebih kecil serta nilai R² yang lebih besar.

comparison <- tibble(
  Model = c(
    "Linear Regression",
    "Support Vector Regression"
  ),
  RMSE = c(
    lm_metrics %>%
      filter(.metric == "rmse") %>%
      pull(.estimate),

    svr_metrics %>%
      filter(.metric == "rmse") %>%
      pull(.estimate)
  ),
  MAE = c(
    lm_metrics %>%
      filter(.metric == "mae") %>%
      pull(.estimate),

    svr_metrics %>%
      filter(.metric == "mae") %>%
      pull(.estimate)
  ),
  R_Squared = c(
    lm_metrics %>%
      filter(.metric == "rsq") %>%
      pull(.estimate),

    svr_metrics %>%
      filter(.metric == "rsq") %>%
      pull(.estimate)
  )
)

comparison
## # A tibble: 2 × 4
##   Model                      RMSE   MAE R_Squared
##   <chr>                     <dbl> <dbl>     <dbl>
## 1 Linear Regression         10.9   8.39     0.570
## 2 Support Vector Regression  6.16  4.35     0.858

5.3.1 Perbandingan Kinerja Model

Berdasarkan hasil perbandingan, model Support Vector Regression (SVR) memberikan performa yang lebih baik dibandingkan Regresi Linear pada seluruh metrik evaluasi. Nilai RMSE model SVR lebih rendah dibandingkan Regresi Linear, yang menunjukkan bahwa rata-rata kesalahan prediksi SVR lebih kecil. Selain itu, nilai MAE SVR juga lebih rendah sehingga prediksi yang dihasilkan lebih akurat. Dari sisi koefisien determinasi, SVR memiliki nilai R² yang jauh lebih tinggi dibandingkan Regresi Linear. Oleh karena itu, SVR dipilih sebagai model terbaik dalam memprediksi kuat tekan beton pada penelitian ini.

comparison %>%
  ggplot(
    aes(
      Model,
      RMSE,
      fill = Model
    )
  ) +
  geom_col() +
  theme_minimal() +
  labs(
    title = "Perbandingan RMSE Model",
    x = "Model",
    y = "RMSE"
  )

comparison %>%
  ggplot(
    aes(
      Model,
      R_Squared,
      fill = Model
    )
  ) +
  geom_col() +
  theme_minimal() +
  labs(
    title = "Perbandingan R-Squared Model",
    x = "Model",
    y = "R-Squared"
  )


5.4 Actual vs Predicted

Grafik Actual vs Predicted digunakan untuk mengevaluasi seberapa dekat hasil prediksi model terhadap nilai aktual. Semakin dekat titik-titik observasi terhadap garis diagonal, semakin baik kemampuan model dalam melakukan prediksi.

ggplot(
  svr_pred,
  aes(
    x = strength,
    y = .pred
  )
) +
  geom_point(alpha = 0.6) +
  geom_abline(
    slope = 1,
    intercept = 0,
    linetype = 2,
    colour = "red"
  ) +
  coord_equal() +
  labs(
    title = "Actual vs Predicted SVR",
    x = "Actual Strength (MPa)",
    y = "Predicted Strength (MPa)"
  )

5.4.1 Interpretasi Actual vs Predicted

Grafik menunjukkan bahwa sebagian besar titik observasi berada di sekitar garis diagonal, yang berarti nilai prediksi model cukup dekat dengan nilai aktual. Penyebaran titik yang relatif mengikuti garis referensi menunjukkan bahwa model SVR memiliki kemampuan prediksi yang baik. Meskipun masih terdapat beberapa titik yang menyimpang dari garis diagonal, secara umum model mampu menangkap pola hubungan antara variabel prediktor dan kuat tekan beton dengan cukup akurat.


6 Interpretasi dan Diskusi

6.1 Analisis Kinerja Regresi Linear

Berdasarkan hasil pengujian, model Regresi Linear menghasilkan nilai RMSE sebesar 10.9 MPa, MAE sebesar 8.39 MPa, dan koefisien determinasi (R²) sebesar 0.570.

Nilai R² sebesar 0.570 menunjukkan bahwa sekitar 57,0% variasi kuat tekan beton dapat dijelaskan oleh variabel prediktor yang digunakan dalam model. Sisanya dipengaruhi oleh faktor lain yang tidak dapat dijelaskan oleh model atau disebabkan oleh variasi acak pada data.

Hasil ini menunjukkan bahwa Regresi Linear mampu menangkap hubungan umum antara komposisi campuran beton dengan kuat tekan beton. Namun demikian, asumsi hubungan linear menyebabkan model memiliki keterbatasan dalam mempelajari pola yang lebih kompleks dan non-linear.

Nilai RMSE yang relatif besar mengindikasikan bahwa masih terdapat selisih prediksi yang cukup tinggi antara nilai aktual dan nilai hasil prediksi model.


6.2 Analisis Kinerja Support Vector Regression

Model Support Vector Regression (SVR) menghasilkan RMSE sebesar 6.02 MPa, MAE sebesar 3.88 MPa, dan R² sebesar 0.869.

Nilai R² sebesar 0.869 menunjukkan bahwa sekitar 86.9% variasi kuat tekan beton dapat dijelaskan oleh model SVR. Nilai ini jauh lebih tinggi dibandingkan Regresi Linear.

Penurunan RMSE dari 10.9 MPa menjadi 6.02 MPa menunjukkan bahwa SVR mampu menghasilkan prediksi yang lebih akurat. Demikian pula nilai MAE yang lebih kecil menunjukkan bahwa rata-rata kesalahan prediksi SVR lebih rendah dibandingkan model linear.

Keunggulan SVR berasal dari penggunaan kernel Radial Basis Function (RBF) yang mampu memodelkan hubungan non-linear antara variabel input dan variabel target. Dengan demikian, pola kompleks pada data beton dapat dipelajari dengan lebih baik.

Selain itu, proses hyperparameter tuning menghasilkan kombinasi parameter terbaik yang mampu meningkatkan kemampuan generalisasi model terhadap data yang belum pernah diamati sebelumnya.


6.3 Perbandingan Regresi Linear dan SVR

Perbandingan performa kedua model menunjukkan bahwa Support Vector Regression memberikan hasil yang lebih baik dibandingkan Regresi Linear.

Model RMSE MAE
Regresi Linear 10.90 8.39 0.570
SVR 6.02 3.88 0.869

Berdasarkan tabel tersebut dapat dilihat bahwa:

  • RMSE SVR lebih rendah sekitar 44.8% dibandingkan Regresi Linear.
  • MAE SVR lebih rendah sekitar 53.8% dibandingkan Regresi Linear.
  • Nilai R² SVR meningkat dari 57.0% menjadi 86.9%.

Hasil ini menunjukkan bahwa hubungan antara komposisi campuran beton dan kuat tekan beton tidak sepenuhnya linear. Oleh karena itu, model yang mampu menangkap pola non-linear seperti SVR memberikan performa yang lebih baik.

Secara keseluruhan, SVR merupakan model yang lebih sesuai digunakan untuk prediksi kuat tekan beton pada dataset ini.


6.4 Faktor yang Mempengaruhi Kuat Tekan Beton

Berdasarkan analisis korelasi dan eksplorasi data, terdapat beberapa variabel yang memiliki pengaruh penting terhadap kuat tekan beton.

6.4.1 Cement

Jumlah semen menunjukkan hubungan positif terhadap kuat tekan beton. Semakin tinggi kandungan semen, semakin tinggi pula kekuatan beton yang dihasilkan karena semen merupakan bahan utama dalam proses hidrasi.

6.4.2 Age

Umur beton memiliki pengaruh yang sangat kuat terhadap kuat tekan. Seiring bertambahnya umur beton, proses hidrasi berlangsung lebih sempurna sehingga kekuatan beton meningkat.

6.4.3 Water

Air cenderung memiliki hubungan negatif terhadap kuat tekan beton. Rasio air yang terlalu tinggi dapat meningkatkan porositas beton sehingga menurunkan kekuatannya.

6.4.4 Blast Furnace Slag dan Fly Ash

Material tambahan seperti slag dan fly ash berkontribusi terhadap peningkatan kekuatan beton dalam jangka panjang melalui reaksi pozzolanik.

6.4.5 Superplasticizer

Superplasticizer membantu meningkatkan workability tanpa menambah kadar air sehingga dapat meningkatkan kualitas beton yang dihasilkan.

Hasil ini sesuai dengan teori teknologi beton yang menyatakan bahwa rasio air-semen, umur beton, dan kandungan semen merupakan faktor utama yang menentukan kuat tekan beton.


6.5 Kelebihan dan Keterbatasan Model

6.5.1 Regresi Linear

6.5.1.1 Kelebihan

  • Mudah diinterpretasikan.
  • Proses pelatihan sangat cepat.
  • Hasil model mudah dijelaskan secara statistik.
  • Cocok digunakan sebagai baseline model.

6.5.1.2 Keterbatasan

  • Mengasumsikan hubungan linear.
  • Kurang mampu menangkap pola kompleks.
  • Akurasi prediksi relatif lebih rendah pada data non-linear.

6.5.2 Support Vector Regression

6.5.2.1 Kelebihan

  • Mampu menangkap hubungan non-linear.
  • Akurasi prediksi lebih tinggi.
  • Memiliki kemampuan generalisasi yang baik.
  • Relatif tahan terhadap overfitting.

6.5.2.2 Keterbatasan

  • Interpretasi model lebih sulit dibandingkan Regresi Linear.
  • Membutuhkan proses tuning hyperparameter.
  • Waktu komputasi lebih besar dibandingkan model linear.

Secara keseluruhan, Support Vector Regression merupakan model terbaik pada penelitian ini karena menghasilkan tingkat akurasi yang lebih tinggi dan mampu menjelaskan variasi kuat tekan beton secara lebih baik dibandingkan Regresi Linear.


7 Kesimpulan

Berdasarkan hasil analisis prediksi kuat tekan beton menggunakan Regresi Linear dan Support Vector Regression (SVR), diperoleh beberapa kesimpulan sebagai berikut:

  1. Model Regresi Linear menghasilkan nilai RMSE sebesar 10.9 MPa, MAE sebesar 8.39 MPa, dan R² sebesar 0.570. Hasil ini menunjukkan bahwa model mampu menjelaskan sekitar 57.0% variasi kuat tekan beton, namun masih memiliki tingkat kesalahan prediksi yang relatif tinggi.

  2. Model Support Vector Regression (SVR) dengan kernel Radial Basis Function (RBF) menghasilkan performa yang lebih baik dengan RMSE sebesar 6.02 MPa, MAE sebesar 3.88 MPa, dan R² sebesar 0.869. Hasil tersebut menunjukkan bahwa SVR mampu menjelaskan sekitar 86.9% variasi kuat tekan beton dan memberikan prediksi yang lebih akurat dibandingkan Regresi Linear.

  3. Berdasarkan perbandingan kedua model, Support Vector Regression merupakan metode terbaik untuk memprediksi kuat tekan beton pada dataset Concrete Compressive Strength. Kemampuan SVR dalam menangkap hubungan non-linear antar variabel menyebabkan model ini memiliki akurasi yang lebih tinggi dan kemampuan generalisasi yang lebih baik dibandingkan Regresi Linear.


8 Referensi

  1. UCI Machine Learning Repository. (1998). Concrete Compressive Strength Dataset. Irvine, CA: University of California, School of Information and Computer Science.

  2. James, G., Witten, D., Hastie, T., & Tibshirani, R. (2021). An Introduction to Statistical Learning with Applications in R (2nd Edition). Springer.

  3. Hastie, T., Tibshirani, R., & Friedman, J. (2017). The Elements of Statistical Learning: Data Mining, Inference, and Prediction (2nd Edition). Springer.

  4. Kuhn, M., & Johnson, K. (2019). Feature Engineering and Selection: A Practical Approach for Predictive Models. CRC Press.

  5. Kuhn, M., & Silge, J. (2022). Tidy Modeling with R. O’Reilly Media.

  6. Gareth James, Daniela Witten, Trevor Hastie, & Robert Tibshirani. (2021). Statistical Learning and Predictive Modeling. Springer.

  7. Chang, C. C., & Lin, C. J. (2011). LIBSVM: A Library for Support Vector Machines. ACM Transactions on Intelligent Systems and Technology, 2(3), 1–27.

  8. Vapnik, V. N. (1995). The Nature of Statistical Learning Theory. Springer.

  9. Smola, A. J., & Schölkopf, B. (2004). A Tutorial on Support Vector Regression. Statistics and Computing, 14(3), 199–222.

  10. Bishop, C. M. (2006). Pattern Recognition and Machine Learning. Springer.

  11. Han, J., Kamber, M., & Pei, J. (2022). Data Mining: Concepts and Techniques (4th Edition). Morgan Kaufmann.

  12. Géron, A. (2022). Hands-On Machine Learning with Scikit-Learn, Keras, and TensorFlow (3rd Edition). O’Reilly Media.

  13. Montgomery, D. C., Peck, E. A., & Vining, G. G. (2021). Introduction to Linear Regression Analysis (6th Edition). Wiley.

  14. R Core Team. (2025). R: A Language and Environment for Statistical Computing. Vienna, Austria: R Foundation for Statistical Computing.

  15. Wickham, H., Çetinkaya-Rundel, M., & Grolemund, G. (2023). R for Data Science (2nd Edition). O’Reilly Media.

  16. Tidymodels Team. (2025). Tidymodels: A Collection of Packages for Modeling and Machine Learning Using Tidyverse Principles. R Package Documentation.

  17. Karatzoglou, A., Smola, A., Hornik, K., & Zeileis, A. (2004). kernlab – An S4 Package for Kernel Methods in R. Journal of Statistical Software, 11(9), 1–20.

  18. Kuhn, M. (2025). caret: Classification and Regression Training. R Package Documentation.

  19. Corrplot Team. (2025). corrplot: Visualization of a Correlation Matrix. R Package Documentation.

  20. Revelle, W. (2025). psych: Procedures for Psychological, Psychometric, and Personality Research. Northwestern University, Evanston, Illinois.


9 Laporan Online RPubs

Versi online dari laporan ini dapat diakses melalui:

👉 https://rpubs.com/anggapratama/1439503

Laporan tersebut memuat seluruh tahapan analisis data, visualisasi, pemodelan Regresi Linear dan Support Vector Regression (SVR), serta interpretasi hasil penelitian secara lengkap.