Explainable AI: Prediksi Harga Mobil yang Dijual di Situs Carmudi
Pada saat menikah dulu, tidak pernah terbersit di kepala saya bahwa memiliki mobil adalah suatu kebutuhan primer hingga anak saya yang sulung lahir. Beberapa kali ada kondisi yang mengharuskan saya harus memiliki mobil sebagai sarana transportasi keluarga. Pada saat itu, uang saya tidak cukup untuk membeli mobil baru secara tunai. Akhirnya saya dan istri mencari-cari mobil bekas di salah satu dealer mobil bekas milik Astra.
Waktu itu, kami dijodohkan dengan mobil sedan Honda City warna hitam tahun 2003 yang body-nya masih gres. Kilometernya juga baru 100 ribuan (mengingat sudah 10 tahunan mobil itu berada di jalanan). Akhirnya dengan harga tak sampai 100 juta, kami pinang mobil tersebut.
Jika ditanyakan kepada saya:
Apakah harga tersebut kemahalan atau tidak?
Saya akan langsung menjawab: “tidak tahu”.
Saya sendiri tidak terlalu mengerti apa yang menjadi patokan harga mobil bekas. Beberapa faktor yang saya duga berpengaruh penting adalah:
- Brand, dan
- Kilometer tempuh.
Sabtu lalu, saya sempat membuat polling kecil-kecilan di instagram mengenai hal ini.
Beberapa teman saya telah menjawabnya.
Untuk menjawab rasa penasaran saya, saya akan mencoba membuat model yang bisa memprediksi harga mobil bekas dari beberapa predictors.
Saya mengambil data mobil bekas dengan cara web scraping 500 data mobil bekas yang listed di situs Carmudi pada Sabtu, 26 Juni 2021. Cara scrape-nya sudah pernah saya tulis di sini.
Saya mengambil data sebagai berikut:
- Harga mobil.
- Saya melakukan transformasi pada data ini dengan cara melakukan operasi log natural (ln()).
- Tujuannya adalah agar data lebih compact dan tidak lebar range-nya.
- Tipe data ini adalah numerik.
- Brand.
- Tipe data ini berupa kategorik.
- Status: new car dan used car.
- Ternyata ada sebagian kecil dari listed car di Carmudi yang merupakan new car.
- Tipe data ini berupa kategorik.
- Tahun.
- Tipe data ini adalah numerik.
- Seat.
- Tipe data ini adalah numerik.
- Mileage.
- Tipe data ini adalah numerik.
- Kapasitas cc mesin.
- Tipe data ini adalah numerik.
Tujuan saya adalah membuat model sebagai berikut:
harga ∼ brand + status + tahun + seat + mileage + cc
Oleh karena brand
dan status
memiliki tipe kategorik, saya akan
lakukan preprocessing berupa one hot encoding agar menjadi numerik
binary.
Model Regresi Linear
Untuk membuat model regresi linearnya, saya menggunakan deep learning via Tensorflow dan Keras.
Langkah kerjanya adalahh sebagai berikut:
Berikut ini adalah performa modelnya yang saya hitung dengan test dataset:
Berikut adalah summary dari performa modelnya:
## Measures for: regression
## mse : 0.008530676
## rmse : 0.09236166
## r2 : 0.7348903
## mad : 0.04116692
##
## Residuals:
## 0% 10% 20% 30% 40% 50%
## -0.178693546 -0.053080665 -0.031336341 -0.009975249 0.013205092 0.024046387
## 60% 70% 80% 90% 100%
## 0.037722285 0.048109418 0.079803492 0.189394098 0.285663537
Dari performa model di atas, saya cukup puas dengan model regresinya karena angka MSE → 0 dan R2 > 0.7.
Sekarang tinggal mendeskripsikan modelnya saja. Karena saya menggunakan
deep learning (ANN) untuk membuat modelnya, maka saya
membutuhkan DALEX
untuk membantu saya mendeskripsikan modelnya.
Feature Importance
Dari data yang terbatas ini saya dapatkan bahwa cc mesin
dan
brand Toyota
merupakan variabel terpenting dan paling berpengaruh
terhadap harga mobil yang listed di Carmudi.
Beberapa variabel lain seperti tahun
dan mileage
juga cukup
berpengaruh.
Bagaimana bentuk pengaruhnya?
Mari kita lihat model profile berikut ini.
Model Profile
Ada hal yang menarik dari grafik di atas. Saya bisa kategorikan beberapa variabel menjadi dua:
- Variabel yang membuat harga semakin mahal.
cc mesin
: semakin besar kapasitas dari mesin akan membuat harga mobil menjadi lebih mahal.tahun
: semakin muda tahunnya, mobil akan semakin mahal.- Jika dibandingkan antara
cc mesin
dantahun
, variabel yang paling ngefek memberikan peningkata harga terbesar adalahcc mesin
.
- Variabel yang membuat harga semakin murah.
mileage
: semakin besar jarak tempuh, mobil akan semakin murah.brand
: Di antara brand berikut: Toyota, Daihatsu, Honda, Mitsubishi, dan Suzuki kita bisa simpulkan:Toyota
memiliki penurunan yang relatif lebih landai dibandingkan mobil merek lainnya.- Brand mobil yang memiliki penurunan harga terbesar jika saya urutkan adalah:
Daihatsu
,Suzuki
,Mitsubishi
,Honda
, danToyota
.
Notes
Analisa ini berdasarkan data terbatas yang saya kumpulkan dari situs Carmudi. Jika ada data lebih banyak, misalkan:
- Service history per listed mobil.
- Kualitas after service masing-masing brand yang bisa dikuantifikasi.
- Estetik interior dan exterior yang bisa dikuantifikasi.
- dan lainnya.
Bisa jadi model ini akan lebih akurat.
if you find this article helpful, support this blog by clicking the ads.