Aplikasi Praktis Gini Impurity dalam Machine Learning

Aplikasi Praktis Gini Impurity dalam Machine Learning

Tujuan Penggunaan Gini Impurity

Gini Impurity adalah metrik yang digunakan untuk mengukur tingkat ketidakmerataan atau ketidaksetaraan dalam suatu distribusi data. Dalam konteks decision trees, Gini Impurity digunakan untuk menentukan seberapa baik sebuah fitur dapat memisahkan data ke dalam kelas-kelas yang berbeda. Semakin rendah nilai Gini Impurity, semakin homogen data dalam subset tersebut.


Rumus Gini Impurity

Rumus untuk menghitung Gini Impurity adalah:



Di mana:



 Implementasi dalam Python

Berikut adalah contoh kode yang mendemonstrasikan perhitungan Gini Impurity pada dataset sederhana.


 Dataset: Contoh Sederhana

Dataset ini terdiri dari fitur "Warna" dan label "Buah". Ada tiga kelas: "Apel", "Jeruk", dan "Lemon".


 Kode untuk Menghitung Gini Impurity

gini_impurity.py

-------------------------------------------------------------------------------------------------------------

from collections import Counter

# Fungsi untuk menghitung Gini Impurity
def gini_impurity(labels):
    total_count = len(labels)
    if total_count == 0:
        return 0
    label_counts = Counter(labels)
    impurity = 1 - sum((count / total_count) ** 2 for count in label_counts.values())
    return impurity

# Contoh dataset
data = [
    {"Warna": "Merah", "Buah": "Apel"},
    {"Warna": "Hijau", "Buah": "Apel"},
    {"Warna": "Kuning", "Buah": "Lemon"},
    {"Warna": "Kuning", "Buah": "Lemon"},
    {"Warna": "Oranye", "Buah": "Jeruk"},
    {"Warna": "Hijau", "Buah": "Apel"},
    {"Warna": "Oranye", "Buah": "Jeruk"}
]

# Ekstrak label "Buah"
labels = [item["Buah"] for item in data]

# Hitung Gini Impurity untuk seluruh dataset
gini = gini_impurity(labels)
print(f'Gini Impurity untuk seluruh dataset: {gini:.4f}')

# Hitung Gini Impurity untuk subset berdasarkan warna
subset_hijau = [item["Buah"] for item in data if item["Warna"] == "Hijau"]
subset_kuning = [item["Buah"] for item in data if item["Warna"] == "Kuning"]
subset_oranye = [item["Buah"] for item in data if item["Warna"] == "Oranye"]

gini_hijau = gini_impurity(subset_hijau)
gini_kuning = gini_impurity(subset_kuning)
gini_oranye = gini_impurity(subset_oranye)

print(f'Gini Impurity untuk subset Hijau: {gini_hijau:.4f}')
print(f'Gini Impurity untuk subset Kuning: {gini_kuning:.4f}')
print(f'Gini Impurity untuk subset Oranye: {gini_oranye:.4f}')

------------------------------------------------------------------------------------------------

 Penjelasan Dataset dan Interpretasi Hasil

Dataset yang digunakan adalah dataset sederhana yang terdiri dari warna buah dan label jenis buah (Apel, Lemon, dan Jeruk). 


- Gini Impurity untuk seluruh dataset: Ini mengukur ketidakmerataan seluruh dataset. Semakin dekat nilai Gini ke 0, semakin homogen dataset tersebut. 

- Gini Impurity untuk subset Hijau: Dataset yang berwarna hijau hanya memiliki satu kelas yaitu "Apel", sehingga nilai Gini Impurity adalah 0 karena subset ini homogen.

- Gini Impurity untuk subset Kuning: Dataset yang berwarna kuning hanya memiliki satu kelas yaitu "Lemon", sehingga nilai Gini Impurity juga adalah 0 karena subset ini homogen.

- Gini Impurity untuk subset Oranye: Dataset yang berwarna oranye hanya memiliki satu kelas yaitu "Jeruk", sehingga nilai Gini Impurity juga adalah 0 karena subset ini homogen.


Dari hasil di atas, kita bisa melihat bagaimana Gini Impurity digunakan untuk mengukur ketidakmerataan dalam dataset. Subset dengan Gini Impurity yang lebih rendah menunjukkan bahwa data dalam subset tersebut lebih homogen.


 Interpretasi Hasil

    Hasil perhitungan Gini Impurity pada seluruh dataset adalah sekitar 0.6531. Nilai ini menunjukkan bahwa data dalam dataset cukup bervariasi. Ketika kita membagi dataset berdasarkan warna, setiap subset menjadi homogen, yang ditunjukkan oleh nilai Gini Impurity 0. Hal ini menunjukkan bahwa fitur warna dalam dataset ini sangat efektif dalam memisahkan kelas buah.


    Dengan demikian, fitur dengan nilai Gini Impurity yang lebih rendah setelah pembagian akan dipilih sebagai fitur pembagi dalam decision tree. Ini menunjukkan kekuatan Gini Impurity dalam membantu memilih fitur terbaik untuk membagi data dalam proses pembentukan decision tree.

Comments

Popular posts from this blog

materi Asking and Giving Attention (Meminta dan Memberi Perhatian) dalam bahasa Rusia

20 Fundamental Spring Boot yang wajib diketahui Pemula Programmer spesialis Java Developer

Daftar Kata Kunci (Keyword) dalam Bahasa Pemrograman Python

Tujuh daftar situs terpercaya untuk melamar kerja ke Austria bagi pelamar dari luar negeri:

percakapan KERETA JARAK JAUH dalam bahasa Rusia

Regression Testing dalam UAT Environment?

TOP 8 Framework Populer menggunakan bahasa .NET

Python Date and Time Manipulation

Program Python yang menyelesaikan sistem persamaan linear menggunakan metode eliminasi Gauss

CRUD SPRING REACTIVE WEBFLUX +Mongo DB