196 lines
5.5 KiB
Markdown
196 lines
5.5 KiB
Markdown
# Penjelasan Contoh Input Harga, Tahun, dan Mesin CC pada Rekomendasi K-Means
|
|
|
|
## 1. Gambaran Umum
|
|
|
|
Fitur rekomendasi mobil menggunakan metode K-Means untuk mengelompokkan data mobil berdasarkan kemiripan atribut numerik. Atribut utama yang digunakan sebagai fitur perhitungan adalah:
|
|
|
|
```text
|
|
harga, tahun, mesin_cc
|
|
```
|
|
|
|
Ketiga atribut tersebut dipakai karena dapat mewakili karakteristik utama mobil bekas:
|
|
|
|
- Harga menunjukkan kisaran budget atau kemampuan beli pengguna.
|
|
- Tahun menunjukkan usia atau kebaruan mobil.
|
|
- Mesin CC menunjukkan kapasitas mesin mobil.
|
|
|
|
Ketika pengguna memasukkan harga, tahun, dan mesin cc, sistem akan mencari mobil yang sesuai dengan input tersebut. Data mobil yang tersedia akan diproses dalam model K-Means untuk menentukan kelompok atau cluster yang paling sesuai.
|
|
|
|
## 2. Contoh Input Pengguna
|
|
|
|
Misalnya pengguna memasukkan data berikut:
|
|
|
|
```text
|
|
Harga/Budget : Rp 200.000.000
|
|
Tahun Minimal : 2018
|
|
Mesin CC : 1500
|
|
```
|
|
|
|
Artinya pengguna ingin mencari mobil dengan harga maksimal Rp 200.000.000, tahun minimal 2018, dan kapasitas mesin yang mendekati 1500 cc.
|
|
|
|
## 3. Contoh Data Mobil
|
|
|
|
Misalnya terdapat lima data mobil yang memenuhi batas budget dan tahun:
|
|
|
|
| Kode Mobil | Harga | Tahun | Mesin CC |
|
|
|---|---:|---:|---:|
|
|
| A | Rp 130.000.000 | 2018 | 1200 |
|
|
| B | Rp 150.000.000 | 2019 | 1500 |
|
|
| C | Rp 170.000.000 | 2020 | 1500 |
|
|
| D | Rp 190.000.000 | 2021 | 1800 |
|
|
| E | Rp 200.000.000 | 2022 | 2000 |
|
|
|
|
Setiap mobil kemudian direpresentasikan ke dalam bentuk fitur numerik:
|
|
|
|
```text
|
|
A = [130000000, 2018, 1200]
|
|
B = [150000000, 2019, 1500]
|
|
C = [170000000, 2020, 1500]
|
|
D = [190000000, 2021, 1800]
|
|
E = [200000000, 2022, 2000]
|
|
```
|
|
|
|
## 4. Penentuan Centroid Awal
|
|
|
|
Dalam K-Means, centroid adalah titik pusat dari sebuah cluster. Pada awal proses, sistem menentukan centroid awal. Misalnya jumlah cluster yang digunakan adalah 2, maka contoh centroid awal dapat berupa:
|
|
|
|
```text
|
|
Centroid 0 = [130000000, 2018, 1200]
|
|
Centroid 1 = [200000000, 2022, 2000]
|
|
```
|
|
|
|
Centroid awal ini menjadi acuan sementara untuk menentukan mobil mana yang paling dekat dengan masing-masing cluster.
|
|
|
|
## 5. Proses Pemilihan Cluster
|
|
|
|
Setiap mobil dihitung jaraknya terhadap centroid. Mobil akan masuk ke cluster dengan jarak paling dekat.
|
|
|
|
Contoh hasil pengelompokan awal:
|
|
|
|
```text
|
|
Cluster 0:
|
|
A = [130000000, 2018, 1200]
|
|
B = [150000000, 2019, 1500]
|
|
C = [170000000, 2020, 1500]
|
|
|
|
Cluster 1:
|
|
D = [190000000, 2021, 1800]
|
|
E = [200000000, 2022, 2000]
|
|
```
|
|
|
|
Mobil A, B, dan C lebih dekat dengan Centroid 0, sedangkan mobil D dan E lebih dekat dengan Centroid 1.
|
|
|
|
## 6. Pergeseran Centroid
|
|
|
|
Setelah anggota cluster terbentuk, centroid baru dihitung berdasarkan rata-rata nilai setiap fitur dari anggota cluster tersebut.
|
|
|
|
### Centroid Baru Cluster 0
|
|
|
|
Anggota Cluster 0:
|
|
|
|
```text
|
|
A = [130000000, 2018, 1200]
|
|
B = [150000000, 2019, 1500]
|
|
C = [170000000, 2020, 1500]
|
|
```
|
|
|
|
Perhitungan centroid baru:
|
|
|
|
```text
|
|
Harga = (130000000 + 150000000 + 170000000) / 3
|
|
= 150000000
|
|
|
|
Tahun = (2018 + 2019 + 2020) / 3
|
|
= 2019
|
|
|
|
Mesin CC = (1200 + 1500 + 1500) / 3
|
|
= 1400
|
|
```
|
|
|
|
Maka centroid baru untuk Cluster 0 adalah:
|
|
|
|
```text
|
|
Centroid 0 baru = [150000000, 2019, 1400]
|
|
```
|
|
|
|
### Centroid Baru Cluster 1
|
|
|
|
Anggota Cluster 1:
|
|
|
|
```text
|
|
D = [190000000, 2021, 1800]
|
|
E = [200000000, 2022, 2000]
|
|
```
|
|
|
|
Perhitungan centroid baru:
|
|
|
|
```text
|
|
Harga = (190000000 + 200000000) / 2
|
|
= 195000000
|
|
|
|
Tahun = (2021 + 2022) / 2
|
|
= 2021.5
|
|
|
|
Mesin CC = (1800 + 2000) / 2
|
|
= 1900
|
|
```
|
|
|
|
Maka centroid baru untuk Cluster 1 adalah:
|
|
|
|
```text
|
|
Centroid 1 baru = [195000000, 2021.5, 1900]
|
|
```
|
|
|
|
Pergeseran centroid terjadi karena titik pusat cluster diperbarui mengikuti rata-rata anggota cluster. Proses ini akan diulang sampai posisi cluster stabil atau anggota cluster tidak berubah lagi.
|
|
|
|
## 7. Pemilihan Hasil Rekomendasi
|
|
|
|
Setelah cluster terbentuk, sistem memilih mobil yang paling sesuai dengan input pengguna. Dalam contoh ini, input pengguna adalah:
|
|
|
|
```text
|
|
[200000000, 2018, 1500]
|
|
```
|
|
|
|
Mobil yang memiliki harga di bawah atau mendekati budget, tahun sesuai, dan mesin cc mendekati 1500 akan mendapat skor rekomendasi yang lebih baik.
|
|
|
|
Contoh mobil yang cocok:
|
|
|
|
```text
|
|
C = [170000000, 2020, 1500]
|
|
```
|
|
|
|
Mobil C dapat menjadi rekomendasi yang baik karena:
|
|
|
|
- Harga masih di bawah budget Rp 200.000.000.
|
|
- Tahun 2020 lebih baru dari batas minimal 2018.
|
|
- Mesin 1500 cc sesuai dengan input pengguna.
|
|
|
|
## 8. Hubungan dengan Kode Program
|
|
|
|
Pada kode API Flask, fitur yang digunakan untuk K-Means terdapat pada fungsi berikut:
|
|
|
|
```python
|
|
def car_features(car):
|
|
return [car["harga"], car["tahun"], car["mesin_cc"]]
|
|
```
|
|
|
|
Fungsi tersebut menunjukkan bahwa proses clustering menggunakan tiga atribut utama, yaitu harga, tahun, dan mesin cc.
|
|
|
|
Proses pergeseran centroid terdapat pada bagian berikut:
|
|
|
|
```python
|
|
new_centroids.append(
|
|
[sum(member[column] for member in members) / len(members) for column in range(len(vectors[0]))]
|
|
)
|
|
|
|
centroids = new_centroids
|
|
```
|
|
|
|
Kode tersebut menghitung rata-rata anggota cluster untuk membentuk centroid baru.
|
|
|
|
## 9. Kesimpulan
|
|
|
|
Berdasarkan contoh di atas, input harga, tahun, dan mesin cc dapat digunakan sebagai acuan dalam proses rekomendasi mobil. K-Means akan mengelompokkan data mobil berdasarkan kemiripan harga, tahun, dan kapasitas mesin. Setelah cluster terbentuk, centroid akan bergeser mengikuti rata-rata anggota cluster sampai hasil pengelompokan stabil.
|
|
|
|
Dengan demikian, fitur rekomendasi dapat memberikan hasil yang lebih sesuai karena mempertimbangkan budget pengguna, batas tahun kendaraan, dan kapasitas mesin yang diinginkan.
|