BAB I PENDAHULUAN

1.1 Latar Belakang Masalah

Feature enginering merupakan salah satu tahapan krusial dalam pengembangan model machine learning (Guyon et al., 2006; Kuhn & Johnson, 2013). Proses ini melibatkan transformasi data mentah menjadi fitur-fitur yang dapat merepresentasikan pola mendasar dari data dengan lebih baik, sehingga meningkatkan kinerja model prediktif (Bengio et al., 2013; Domingos, 2012). Kualitas fitur yang digunakan sangat memengaruhi kemampuan model untuk mempelajari hubungan yang kompleks dalam data dan membuat prediksi yang akurat (Hastie et al., 2009; James et al., 2013).

Dalam konteks analisis data cuaca, seperti dataset yang digunakan dalam penelitian ini, feature engineering menjadi sangat relevan (Krasnopolsky & Schmehl, 2011; McGovern et al., 2019). Data cuaca seringkali mengandung berbagai tantangan, termasuk nilai yang hilang (missing values), outlier, dan variabel kategorikal dengan kardinalitas tinggi (Junninen et al., 2004; Weerasinghe et al., 2019). Penanganan yang tepat terhadap isu-isu ini melalui teknik feature engineering dapat secara signifikan memperbaiki kualitas data input dan, pada gilirannya, meningkatkan akurasi model prediksi cuaca, seperti prediksi hujan (García et al., 2010; Lipton et al., 2016).

Penelitian ini akan mengeksplorasi berbagai teknik feature engineering yang umum digunakan, seperti imputasi nilai hilang, penanganan outlier, pengurangan kardinalitas, encoding variabel kategorikal, dan scaling fitur numerik (Ciaburro & Barrinello, 2018; Geron, 2019). Dengan menerapkan teknik-teknik ini pada dataset cuaca, diharapkan dapat ditunjukkan bagaimana feature engineering dapat berkontribusi pada peningkatan performa model machine learning dalam memprediksi kejadian hujan (Krasnopolsky & Schmehl, 2011; Roebber et al., 2004).

1.2 Rumusan Masalah

1.Bagaimana konsep dari berbagai jenis feature engineering pada R-Studio?

2.Bagaimana melakukan teknik feature engineering di program R-Studio?

1.3 Tujuan

1.Mahasiswa memahami konsep dari berbagai jenis feature engineering pada R-Studio.

2.Mahasiswa dapat melakukan teknik feature engineering di program R-Studio.

BAB II TINJAUAN PUSTAKA

2.1 Machine Leraning

Machine learning merupakan bagian dari kecerdasan buatan yang memungkinkan komputer mempelajari pola dan hubungan yang terdapat dalam data untuk menghasilkan suatu prediksi atau keputusan. Proses pembelajaran dilakukan dengan menggunakan data sebagai dasar untuk membangun model sehingga model dapat digunakan untuk melakukan prediksi terhadap data baru (Forsyth, 2019).

Secara umum, machine learning dapat dikelompokkan menjadi supervised learning dan unsupervised learning. Supervised learning menggunakan data yang telah memiliki variabel target sebagai dasar pembelajaran, sedangkan unsupervised learning digunakan untuk menemukan pola atau struktur tertentu pada data tanpa adanya variabel target (Kelleher et al., 2020). Dalam supervised learning, salah satu permasalahan yang umum digunakan adalah klasifikasi, yaitu proses menentukan suatu observasi ke dalam kelas tertentu berdasarkan karakteristik yang dimilikinya.

Penerapan machine learning memerlukan tahapan persiapan data sebelum proses pemodelan. Data yang digunakan perlu diperiksa dan diproses agar memiliki kualitas yang sesuai dengan algoritma yang akan digunakan. Tahapan persiapan tersebut dapat dilakukan melalui feature engineering, yang bertujuan mengubah data mentah menjadi fitur yang dapat digunakan dalam proses pembelajaran model (Galli, 2021)

2.2 Feature Enginaring

Feature engineering merupakan proses mengubah data mentah menjadi fitur yang dapat digunakan dalam algoritma machine learning. Proses ini bertujuan untuk mempersiapkan dan meningkatkan kualitas data sebelum dilakukan pemodelan. Beberapa tahapan dalam feature engineering meliputi handling missing value, pemeriksaan kardinalitas, data splitting, handling outlier, scaling, encoding, serta penanganan imbalanced dataset (Galli, 2021). Materi praktikum juga menjelaskan bahwa feature engineering dilakukan untuk menyederhanakan dan meningkatkan kualitas transformasi data sehingga dapat mendukung proses pemodelan machine learning.

Dalam penelitian ini, feature engineering dilakukan sebelum data digunakan dalam pemodelan klasifikasi. Tahapan tersebut meliputi pemeriksaan missing value, pengolahan variabel kategorik melalui encoding, pembagian data menjadi training dan testing, serta pemeriksaan outlier. Selain itu, dilakukan identifikasi imbalanced dataset, yaitu kondisi ketika distribusi kelas tidak seimbang antara kelas mayoritas dan kelas minoritas. Kondisi tersebut perlu diperhatikan karena dapat memengaruhi hasil klasifikasi (Kelleher dkk., 2020).

BAB III METODE PENELITIAN

3.1 Sumber Data

Data yang digunakan dalam penelitian ini merupakan data sekunder berupa data kondisi cuaca. Data terdiri dari 743 observasi dengan beberapa variabel yang berkaitan dengan kondisi cuaca, yaitu curah hujan, suhu, kelembapan, keadaan cuaca, dan kecepatan angin. Data tersebut selanjutnya dianalisis menggunakan perangkat lunak RStudio untuk memperoleh hasil penelitian sesuai dengan metode yang digunakan.

3.2 Variabel Penelitian

Variabel yang digunakan dalam penelitian ini terdiri dari beberapa variabel yang menggambarkan kondisi cuaca. Adapun definisi dari masing-masing variabel adalah sebagai berikut:

Variabel Nama Variabel Definisi
X₁ Hujan Jumlah curah hujan yang terjadi pada periode pengamatan.
X₂ Suhu Kondisi temperatur udara pada periode pengamatan.
X₃ Kelembapan Tingkat kelembapan udara pada periode pengamatan.
X₄ Keadaan_Cuaca Kondisi atau keadaan cuaca yang terjadi pada periode pengamatan.
X₅ Kecepatan_Angin Kecepatan angin yang tercatat pada periode pengamatan.

3.3 Langkah Lnagkah Analisis

Algoritma Feature Engineering pada Program RStudio

  1. Buka aplikasi RStudio.
  2. Input data curah hujan.
  3. Pemeriksaan missing value.
  4. Pemeriksaan kardinalitas.
  5. Pembagian data (splitting data).
  6. Pemeriksaan outlier.
  7. Melakukan scaling data.
  8. Melakukan transformasi/rekayasa fitur yang diperlukan.
  9. Pemeriksaan ketidakseimbangan data jika ada variabel target kategorik.
  10. Menghasilkan data yang telah melalui feature engineering.
  11. Output.
  12. Selesai.

BAB IV HASIL DAN PEMBAHASAN

4.1 Library

kolom kotak abu ini bagian tempat kalian menuliskan sintaksnya ya, sedangkan tombol pause warna hijau dikanan atas itu untuk runingnya tapi bisa jg makai ctrl+enter

## # A tibble: 6 × 5
##   Hujan  Suhu Kelembapan Keadaan_Cuaca Kecepatan_Angin
##   <dbl> <dbl>      <dbl>         <dbl>           <dbl>
## 1     1  23           95             5              NA
## 2     1  24           90             1              NA
## 3     1  26.8         77             1              NA
## 4     1  29.6         62             2               2
## 5     1  30.8         56             1               7
## 6     1  31           55             1               7
## tibble [743 × 5] (S3: tbl_df/tbl/data.frame)
##  $ Hujan          : num [1:743] 1 1 1 1 1 1 1 2 2 2 ...
##  $ Suhu           : num [1:743] 23 24 26.8 29.6 30.8 31 30.4 30.9 30.2 29.7 ...
##  $ Kelembapan     : num [1:743] 95 90 77 62 56 55 57 58 62 62 ...
##  $ Keadaan_Cuaca  : num [1:743] 5 1 1 2 1 1 3 2 2 2 ...
##  $ Kecepatan_Angin: num [1:743] NA NA NA 2 7 7 9 10 8 7 ...
##      Hujan            Suhu         Kelembapan     Keadaan_Cuaca  
##  Min.   :1.000   Min.   :22.60   Min.   : 52.00   Min.   : 1.00  
##  1st Qu.:2.000   1st Qu.:24.30   1st Qu.: 75.00   1st Qu.: 2.00  
##  Median :2.000   Median :26.00   Median : 86.00   Median : 2.00  
##  Mean   :1.779   Mean   :26.54   Mean   : 83.88   Mean   :15.11  
##  3rd Qu.:2.000   3rd Qu.:28.90   3rd Qu.: 94.00   3rd Qu.:15.00  
##  Max.   :2.000   Max.   :32.00   Max.   :100.00   Max.   :97.00  
##                                                   NAs    :9      
##  Kecepatan_Angin 
##  Min.   : 2.000  
##  1st Qu.: 4.000  
##  Median : 6.000  
##  Mean   : 6.655  
##  3rd Qu.: 9.000  
##  Max.   :21.000  
##  NAs    :314

Statistik deskriptif digunakan untuk memberikan gambaran umum mengenai karakteristik data sebelum dilakukan data preprocessing. Berdasarkan hasil statistik deskriptif, variabel Hujan memiliki nilai minimum 1, maksimum 2, dan rata-rata 1,779, yang menunjukkan bahwa sebagian besar data berada pada nilai yang sama sehingga perlu diperhatikan dari sisi variasi data. Variabel Suhu memiliki nilai minimum 22,60, maksimum 32,00, dan rata-rata 26,54, sedangkan Kelembapan memiliki nilai minimum 52, maksimum 100, dan rata-rata 83,88. Variabel Keadaan_Cuaca memiliki nilai minimum 1, maksimum 97, dan rata-rata 15,11 serta terdapat 9 nilai missing. Sementara itu, variabel Kecepatan_Angin memiliki nilai minimum 2, maksimum 21, dan rata-rata 6,655 serta terdapat 314 nilai missing. Hasil tersebut menunjukkan bahwa sebelum dilakukan analisis lebih lanjut diperlukan tahap data preprocessing, terutama pemeriksaan dan penanganan missing value, pemeriksaan variasi atau kardinalitas data, pemeriksaan outlier, serta scaling apabila diperlukan oleh metode analisis yang digunakan.

4.2 Handling Missing Value

## [1] 3
##           Hujan            Suhu      Kelembapan   Keadaan_Cuaca Kecepatan_Angin 
##               0               0               0               9               0
##           Hujan            Suhu      Kelembapan   Keadaan_Cuaca Kecepatan_Angin 
##               0               0               0               0               0

Berdasarkan hasil pemeriksaan missing value, ditemukan sebanyak 3 nilai yang hilang pada data awal. Nilai missing tersebut terdapat pada variabel Keadaan_Cuaca, sedangkan variabel Hujan, Suhu, Kelembapan, dan Kecepatan_Angin tidak memiliki nilai yang hilang. Setelah dilakukan penanganan missing value, seluruh variabel menunjukkan jumlah missing value sebesar 0. Hal ini menunjukkan bahwa seluruh nilai yang hilang pada data telah berhasil ditangani sehingga data dapat digunakan untuk tahap prapemrosesan selanjutnya.

4.3 Kardinaitas

## # A tibble: 10 × 5
##    Hujan  Suhu Kelembapan Keadaan_Cuaca Kecepatan_Angin
##    <dbl> <dbl>      <dbl>         <dbl>           <dbl>
##  1     1  23           95             5               3
##  2     1  24           90             1               3
##  3     1  26.8         77             1               3
##  4     1  29.6         62             2               2
##  5     1  30.8         56             1               7
##  6     1  31           55             1               7
##  7     1  30.4         57             3               9
##  8     2  30.9         58             2              10
##  9     2  30.2         62             2               8
## 10     2  29.7         62             2               7
##  [1]  5.0  1.0  2.0  3.0 14.0 60.0 61.0 21.0 29.0 10.0 16.0 62.0 63.0 65.0 15.0
## [16] 17.0 13.0 95.0 91.0 49.0 97.0 56.0  1.5
## --- Hasil Perbandingan ---
## # A tibble: 10 × 6
##    Hujan  Suhu Kelembapan Keadaan_Cuaca Kecepatan_Angin Keadaan_Cuaca_reduced
##    <dbl> <dbl>      <dbl>         <dbl>           <dbl> <fct>                
##  1     1  25.4         90             2               5 0                    
##  2     2  25.6         86            21               4 2                    
##  3     2  30.3         67             2               9 0                    
##  4     2  29.3         78            15               8 1                    
##  5     2  25.3         86             2               3 0                    
##  6     2  25.3         80             2               3 0                    
##  7     2  24.6         92            21               3 2                    
##  8     2  24.7         94            14               3 1                    
##  9     2  26.1         92            21               2 2                    
## 10     2  30.3         73             2               8 0
## 
## --- Pengecekan Kardinalitas ---
## Jumlah kategori di "Keadaan_Cuaca" asli    : 23
## Jumlah kategori di "Keadaan_Cuaca_reduced" : 7
## 
## Kategori unik yang baru (reduced):
## [1] 0 1 5 6 2 9 4
## Levels: 0 1 2 3 4 5 6 7 8 9

Berdasarkan hasil pemeriksaan kardinalitas, variabel Keadaan_Cuaca pada data awal memiliki 23 kategori unik. Setelah dilakukan pengelompokan kategori, variabel tersebut direduksi menjadi Keadaan_Cuaca_reduced yang memiliki 7 kategori unik. Kategori hasil reduksi yang terbentuk adalah 0, 1, 5, 6, 2, 9, dan 4, dengan level kategori yang tersedia dari 0 hingga 9.

Pengurangan jumlah kategori dari 23 menjadi 7 menunjukkan bahwa proses reduksi kardinalitas berhasil menyederhanakan variabel Keadaan_Cuaca. Dengan jumlah kategori yang lebih sedikit, representasi variabel kategorik pada tahap encoding menjadi lebih sederhana sehingga jumlah variabel hasil One-Hot Encoding dapat dikendalikan. Variabel Keadaan_Cuaca_reduced selanjutnya dapat digunakan pada tahapan encoding sebelum proses pemodelan.

4.4 Spliting Data

## [1] 594   5
## [1] 149   5

Berdasarkan hasil splitting data, data dibagi menjadi dua bagian, yaitu data training dan data testing. Data training memiliki ukuran 594 observasi dan 5 variabel, sedangkan data testing memiliki ukuran 149 observasi dan 5 variabel. Dengan demikian, pembagian data menghasilkan sekitar 80% data training dan 20% data testing. Data training digunakan untuk membangun model, sedangkan data testing digunakan untuk mengevaluasi kinerja model pada data yang belum digunakan dalam proses pelatihan.

4.5 Handling outlier

##             Kolom Jumlah_Outlier Lower_Bound Upper_Bound
## 1            Suhu              0     17.4625     35.7625
## 2      Kelembapan              0     46.5000    122.5000
## 3 Kecepatan_Angin             12     -3.0000     13.0000

Berdasarkan hasil pemeriksaan outlier menggunakan metode IQR, variabel Suhu dan Kelembapa tidak memiliki nilai pencilan, masing-masing dengan jumlah outlier sebanyak 0. Sementara itu, variabel Kecepatan_Angin memiliki 12 nilai outlier dengan batas bawah sebesar -3,00 dan batas atas sebesar 13,00. Hasil tersebut menunjukkan bahwa nilai ekstrem terutama ditemukan pada variabel Kecepatan_Angin, sehingga diperlukan penanganan lebih lanjut untuk mengurangi pengaruh nilai ekstrem tersebut terhadap proses pemodelan.

4.6 Skewnes

## kolom yang mempunyai nilai skewness sedang : Kelembapan Kecepatan_Angin
## kolom yang mempunyai nilai skewness normal : Suhu

Berdasarkan hasil pemeriksaan skewness, variabel Kelembapan dan Kecepatan_Angin termasuk ke dalam variabel yang memiliki nilai skewness sedang, sedangkan variabel Suhu memiliki nilai skewness yang berada dalam kategori normal. Hal ini menunjukkan bahwa distribusi Kelembapan dan Kecepatan_Angin memiliki kemencengan yang lebih besar dibandingkan dengan Suhu. Oleh karena itu, karakteristik distribusi tersebut perlu diperhatikan dalam tahap prapemrosesan data sebelum dilakukan pemodelan.

4.7 Capping

## Suhu - Before Capping

## 
##  Suhu - After Capping

## Kelembapan - Before Capping

## 
##  Kelembapan - After Capping

## Kecepatan_Angin - Before Capping

## 
##  Kecepatan_Angin - After Capping

Berdasarkan hasil visualisasi sebelum dan sesudah penerapan capping, terlihat bahwa proses ini dilakukan untuk membatasi nilai ekstrem pada variabel Suhu, Kelembapan, dan Kecepatan_Angin. Pada variabel Suhu, bentuk histogram dan boxplot sebelum dan sesudah capping relatif tidak mengalami perubahan yang besar. Pada variabel Kelembapan, distribusi data juga relatif tetap, sedangkan pada variabel Kecepatan_Angin terlihat perubahan yang lebih jelas, terutama pada bagian atas boxplot karena beberapa nilai ekstrem telah dibatasi.

Secara keseluruhan, penerapan capping berhasil mengurangi pengaruh nilai ekstrem tanpa menghilangkan observasi dari data. Hal ini dapat dilihat dari perubahan pada boxplot, khususnya pada variabel Kecepatan_Angin, yang menunjukkan berkurangnya nilai pencilan pada bagian atas. Dengan demikian, data hasil capping dapat digunakan pada tahap selanjutnya karena pengaruh observasi ekstrem telah dikendalikan.

4.8 Standar Scaler

##            Suhu      Kelembapan Kecepatan_Angin 
##   -7.045562e-17    5.923146e-16   -7.005936e-17
##            Suhu      Kelembapan Kecepatan_Angin 
##               1               1               1

Berdasarkan hasil penerapan Standard Scaler, nilai rata-rata pada variabel Suhu, Kelembapan, dan Kecepatan_Angin masing-masing mendekati 0, yaitu sebesar -7.045562 × 10⁻¹⁷, 5.923146 × 10⁻¹⁶, dan -7.005936 × 10⁻¹⁷. Nilai tersebut secara praktis menunjukkan bahwa proses standardisasi telah menghasilkan data dengan rata-rata yang mendekati nol. Selain itu, nilai standar deviasi untuk ketiga variabel tersebut adalah 1, yang menunjukkan bahwa data telah berhasil distandarisasi sehingga memiliki skala yang sama. Dengan demikian, variabel numerik tersebut telah siap digunakan dalam proses pemodelan selanjutnya.

4.9 Encoding

##   Keadaan_Cuaca_reduced_X0 Keadaan_Cuaca_reduced_X1 Keadaan_Cuaca_reduced_X2
## 1                        1                        0                        0
## 2                        1                        0                        0
## 3                        1                        0                        0
## 4                        1                        0                        0
## 5                        1                        0                        0
## 6                        1                        0                        0
##   Keadaan_Cuaca_reduced_X3 Keadaan_Cuaca_reduced_X4 Keadaan_Cuaca_reduced_X5
## 1                        0                        0                        0
## 2                        0                        0                        0
## 3                        0                        0                        0
## 4                        0                        0                        0
## 5                        0                        0                        0
## 6                        0                        0                        0
##   Keadaan_Cuaca_reduced_X6 Keadaan_Cuaca_reduced_X7 Keadaan_Cuaca_reduced_X8
## 1                        0                        0                        0
## 2                        0                        0                        0
## 3                        0                        0                        0
## 4                        0                        0                        0
## 5                        0                        0                        0
## 6                        0                        0                        0
##   Keadaan_Cuaca_reduced_X9
## 1                        0
## 2                        0
## 3                        0
## 4                        0
## 5                        0
## 6                        0

Berdasarkan hasil encoding, variabel kategorik Keadaan_Cuaca_reduced berhasil diubah menjadi beberapa variabel biner menggunakan metode One-Hot Encoding, yaitu Keadaan_Cuaca_reduced_X0 hingga Keadaan_Cuaca_reduced_X9. Setiap variabel menunjukkan keanggotaan suatu observasi terhadap kategori tertentu dengan nilai 1 atau 0. Proses encoding pada data training dan testing menggunakan level kategori yang sama sehingga struktur variabel tetap konsisten. Selanjutnya, variabel hasil encoding digabungkan dengan variabel numerik yang telah melalui proses scaling untuk membentuk data akhir yang siap digunakan dalam pemodelan klasifikasi.

4.10 Balancing Data dan Smote

## y_train
##   1   2 
## 131 463
## 
##   1   2 
## 131 463
## 
##   1   2 
## 463 463

Berdasarkan hasil balancing data menggunakan metode SMOTE, distribusi kelas pada data training sebelum penyeimbangan menunjukkan bahwa kelas 1 berjumlah 131 observasi, sedangkan kelas 2 berjumlah 463 observasi. Setelah diterapkan SMOTE dengan parameter over_ratio = 1 dan neighbors = 5, jumlah kelas 1 meningkat menjadi 463 observasi, sedangkan kelas 2 tetap berjumlah 463 observasi. Dengan demikian, data training setelah proses SMOTE telah memiliki distribusi kelas yang seimbang, yaitu masing-masing sebanyak 463 observasi. Hasil ini menunjukkan bahwa SMOTE berhasil mengatasi ketidakseimbangan kelas dengan menghasilkan observasi sintetis pada kelas minoritas, sehingga data dapat digunakan untuk proses pemodelan klasifikasi.

BAB V KESIMPULAN

5.1 Kesimpulan

Berdasarkan seluruh tahapan prapemrosesan data yang telah dilakukan, data awal berhasil dipersiapkan untuk pemodelan klasifikasi. Pada tahap handling missing value, ditemukan 3 nilai hilang pada variabel Keadaan_Cuaca dan seluruhnya berhasil ditangani. Pemeriksaan kardinalitas menunjukkan bahwa Keadaan_Cuaca memiliki 23 kategori yang kemudian direduksi menjadi 7 kategori. Selanjutnya, data dibagi menjadi 594 observasi training dan 149 observasi testing dengan proporsi sekitar 80:20. Pemeriksaan outlier menunjukkan bahwa Suhu dan Kelembapan tidak memiliki outlier, sedangkan Kecepatan_Angin memiliki 12 outlier yang kemudian ditangani menggunakan metode capping.

Pemeriksaan skewness menunjukkan bahwa Kelembapan dan Kecepatan_Angin memiliki kemencengan sedang, sedangkan Suhu berada pada kategori normal. Selanjutnya, proses Standard Scaler menghasilkan rata-rata yang mendekati 0 dan standar deviasi 1 pada variabel numerik, sedangkan variabel kategorik diubah menjadi bentuk numerik menggunakan One-Hot Encoding. Pada data training juga ditemukan ketidakseimbangan kelas, yaitu 131 observasi pada kelas 1 dan 463 observasi pada kelas 2. Setelah menerapkan SMOTE, kedua kelas menjadi seimbang dengan masing-masing 463 observasi. Dengan demikian, seluruh tahapan prapemrosesan telah menghasilkan data yang siap digunakan untuk tahap pemodelan klasifikasi.

DAFTAR PUSTAKA

Bengio, Y., Courville, A., & Vincent, P. (2013). Representation learning: A review and new perspectives. IEEE Transactions on Pattern Analysis and Machine Intelligence, 35(8), 1798–1828. https://doi.org/10.1109/TPAMI.2013.50

Chawla, N. V., Bowyer, K. W., Hall, L. O., & Kegelmeyer, W. P. (2002). SMOTE: Synthetic minority over-sampling technique. Journal of Artificial Intelligence Research, 16, 321–357. https://doi.org/10.1613/jair.953

Ciaburro, G., & Barrinello, R. (2018). Mastering machine learning algorithms (2nd ed.). Packt Publishing.

Domingos, P. (2012). A few useful things to know about machine learning. Communications of the ACM, 55(10), 78–87. https://doi.org/10.1145/2347736.2347755

Galli, S. (2021). Feature-engine: A Python package for feature engineering for machine learning. Journal of Open Source Software, 6(65), 3642. https://doi.org/10.21105/joss.03642

García, D. L., Paredes, F., Díez-González, J., & López-Nozal, R. (2010). Feature extraction and selection techniques for weather prediction. In Proceedings of the International Conference on Computational Intelligence (pp. 45–52).

Geron, A. (2019). Hands-on machine learning with Scikit-Learn, Keras, and TensorFlow (2nd ed.). O’Reilly Media.

Guyon, I., Gunn, S., Husband, M., & Nikravesh, M. (Eds.). (2006). Feature extraction: Foundations and applications. Springer.

Hastie, T., Tibshirani, R., & Friedman, J. (2009). The elements of statistical learning: Data mining, inference, and prediction (2nd ed.). Springer.

He, H., Bai, Y., Garcia, E. A., & Li, S. (2008). ADASYN: Adaptive synthetic sampling approach for imbalanced learning. In 2008 IEEE International Joint Conference on Neural Networks (pp. 1322–1328). IEEE.

He, H., & Garcia, E. A. (2009). Learning from imbalanced data. IEEE Transactions on Knowledge and Data Engineering, 21(9), 1263–1284. https://doi.org/10.1109/TKDE.2008.239

James, G., Witten, D., Hastie, T., & Tibshirani, R. (2013). An introduction to statistical learning. Springer.

Junninen, H., Niska, H., Tuppurainen, K., Ruuskanen, J., & Kolehmainen, M. (2004). Methods for imputation of missing values in air quality data sets. Atmospheric Environment, 38(18), 2895–2907. https://doi.org/10.1016/j.atmosenv.2004.02.026

Kelleher, J. D., Mac Namee, B., & D’Arcy, A. (2020). Fundamentals of machine learning for predictive data analytics: Algorithms, worked examples, and case studies (2nd ed.). MIT Press.

Krasnopolsky, V. M., & Schmehl, R. (2011). A neural network as a nonlinear averaging operator: Application to weather prediction. In International Joint Conference on Neural Networks (pp. 2313–2320). IEEE.

Kuhn, M., & Johnson, K. (2013). Applied predictive modeling. Springer.

Lipton, Z. C., Elkan, C., & Naryanaswamy, B. (2016). Optimal thresholding of classifiers to maximize F1 score. In European Conference on Machine Learning (pp. 225–239). Springer.

McGovern, A., Lagerquist, R., John Gagne, D., Jergensen, G. E., Elmore, K. L., Homeyer, C. R., & Smith, T. (2019). Making the black box more transparent: Understanding DNN decisions for image classification of severe weather. Bulletin of the American Meteorological Society, 100(11), 2175–2193. https://doi.org/10.1175/BAMS-D-19-0074.1

Roebber, P. J., Bruening, S. L., Schultz, D. M., & Cortinas Jr, J. V. (2004). Synoptic and mesoscale meteorology of moderate and heavy frozen precipitation. Part II: Freezing rain. Weather and Forecasting, 18(3), 368–384. https://doi.org/10.1175/1520-0434(2003)018<0368:SAMMOM>2.0.CO;2

Weerasinghe, J., Ju, L., Ge, Z., & Kaynak, O. (2019). A new framework for handling missing data in prediction systems. Information Sciences, 478, 317–328. https://doi.org/10.1016/j.ins.2018.11.031