MEMPREDIKSI KELEMBABAN RELATIF

Pada lab ini, kita akan mencoba membuat model yang cocok untuk memprediksi kelembaban relatif pada sebuah pengukuran kualitas udara. Kita akan membuat model tersebut berdasarkan kandungan zat kimia terukur, suhu dan kelembaban mutlak.

Data yang akan kita gunakan berasal dari website https://archive.ics.uci.edu/ml/datasets/Air+Quality.

Kita akan menggunakan Python beserta paket-paketnya untuk melakukan prediksi ini.

Tujuan

Menentukan model yang cocok untuk memprediksi kelembaban relatif pada kualitas udara

Tentang Dataset

Dataset berisi 9358 contoh respons rata-rata setiap jam dari rangkaian 5 sensor kimia oksida logam yang tertanam dalam Perangkat Multisensor Kimia Kualitas Udara. Perangkat ini diletakkan di lapangan di daerah yang sangat tercemar, di permukaan jalan, di dalam kota Italia.

Data direkam dari 10 Maret 2004 hingga 4 April 2005 (satu tahun) yang mewakili rekaman terlama yang tersedia secara bebas dari respons perangkat sensor kimia kualitas udara yang diterapkan di lapangan. Konsentrasi rata-rata per jam Ground Truth untuk CO, Hidrokarbon Non Metanic, Benzene, Total Nitrogen Oksida (NOx) dan Nitrogen Dioksida (NO2) dan disediakan oleh penganalisis bersertifikat referensi yang berlokasi di lokasi yang sama.

Data mengandung 15 fitur dan 9358 sampel. Berikut keterangan setiap fitur

  • Date: Tanggal (Hari/Bulan/Tahun)
  • Time: Waktu (Jam. Menit.Detik)
  • CO(GT): Konsentrasi rata-rata CO setiap jam dalam mg / m³ (mengacu alat analisis)
  • PT08.S1(CO): PT08.S1 (timah oksida) respons sensor rata-rata per jam (target nominal)
  • NMHC(GT): rata-rata per jam keseluruhan sebenarnya konsentrasi Hidrokarbon Non Metanic dalam mikrog/m³ (mengacu alat analisis)
  • C6H6(GT): Konsentrasi Benzene rata-rata per jam dalam mikrog/m³ (mengacu alat analisis)
  • PT08.S2(NMHC: PT08.S2 (titania) respons sensor rata-rata per jam (NMHC target nominal)
  • NOx(GT): Konsentrasi NOx rata-rata setiap jam dalam ppb (mengacu alat analisis)
  • PT08.S3: (NOx)PT08.S3 (tungsten oksida) respons sensor rata-rata per jam (NOx yang ditargetkan secara nominal)
  • NO2(GT): Rata-rata konsentrasi NO2 setiap jam dalam mikrog /m³ (penganalisis referensi)
  • PT08.S4(NO2): PT08.S4 (tungsten oksida) respons sensor rata-rata per jam (target NO2 secara nominal)
  • PT08.S5(O3): PT08.S5 (indium oksida) respons sensor rata-rata per jam (target O3 nominal)
  • T: Suhu dalam °C
  • RH:Kelembaban Relatif (%)
  • AH: Kelembaban Mutlak

Impor Paket

Terlebih dahulu kita akan mengimpor paket yang nantinya akan digunakan dalam pemodelan ini

Membaca Dataset

Kita baca datasetnya menggunakan pandas

Data Cleaning

Kita periksa apakah ada bagian dari data yang bernilai kosong (null)

Terdapat 9471 baris sampel, dan jika dilihat seluruh baris memiliki 114 nilai kosong. Jika diperhatikan, 114 baris sampel terakhir memiliki nilai kosong. Bahkan ada dua fitur (kolom) yang seluruhnya bernilai kosong.

Kita hapus seluruh baris dan kolom yang bernilai kosong begitu juga pada kolom Time sebab kita hanya akan membuat model berdasarkan kandungan zat kimia, suhu, dan kelembaban mutlak.

Kita set kolom Date menjadi indeks untuk memudahkan proses data cleaning selanjutnya

Kita lihat 5 baris teratas data

Kita lihat deskripsi data

Pada setiap fitur terdapat nilai minimal -200. Hal ini merupakan kesalahan pengukuran. Mengapa?

Pada pengukuran zat kimia, jika memang benar-benar tidak terdapat zat yang diukur, maka seharusnya pengukuran menunjukkan angka 0, bukan minus.

Begitu juga, pada pengukuran suhu. Suhu diukur menggunakan derajat Celcius, sehingga jika angka menunjukkan -200 °C maka sekeliling akan menjadi benar-benar beku sebab suhu tersebut mendekati titik Nol mutlak (0 K) sehingga hasil pengukuran suhu ini menunjukkan kesalahan pengukuran.

Kita kosongkan terlebih dahulu bagian yang memiliki nilai akibat kesalahan pengukuran (-200)

Kita lihat kembali informasi data

Perhatikan fitur (kolom) NMHC(GT). Sekitar hampir 90% mengalami kesalahan pengukuran, sehingga fitur ini akan kita hapus.

Kita akan mengisi bagian yang kosong (akibat kesalahan pengukuran) dengan rata-rata tiap fitur yang dikelompokkan berdasarkan tanggal.

Kita gunakan metode ffill untuk menyempurnakannya

Kita lihat kembali informasi dan gambaran data

Dari informasi dan gambaran data, sudah tidak ditemukan bagian kosong dan tidak ada kesalahan pengukuran

Pemodelan

Selanjutnya, kita akan memperkirakan model yang cocok untuk memprediksi kelembaban relatif. Karena target bukan merupakan nilai diskrit, maka kita akan memprediksi menggunakan regresi.

Bentuk regresi yang akan kita gunakan adalah:

  1. Linear Regression
  2. K Nearest Neighbors Regression
  3. Decision Tree Regressor
  4. Random Forest Regressor
  5. Support Vector Regressor

Seluruh paramater model-model diatas ditetapkan sesuai defaultnya

Menentukan Fitur (X) dan Target (y)

Menormalisasi Fitur

Agar kisaran nilai yang ada dalam fitur relatif sama, maka kita akan menormalisasi fitur terlebih dahulu.

Membagi data menjadi set train dan test

Kita akan memisahkan data menjadi set train dan set test, yang nantinya akan kita gunakan untuk memastikan apakah model mengalami generalisasi, overfitting atau underfitting

Kita akan mulai melakukan pemilihan model

Liniear Regression

K-Nearest Neighbors Regressor

Decision Trees Regressor

Random Forest Regressor

Support Vector Machine Regressor

Dari perhitungan di atas, hanya 3 model yang mengalami generalisasi, yaitu

  • Liniear Regression
  • Random Forest Regressor
  • Support Vector Machine Regressora

Jika dilihat skornya, maka kita akan menggunakan Random Forest Regressor sebagai model untuk memperkirakan kelembaban relatif.

Menggunakan Random Forest Regressor

--

--

Data Analyst

Love podcasts or audiobooks? Learn on the go with our new app.

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store