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

create image slider using phyton in web

Tahukah kamu Algoritma Genetika dan Penerapannya dalam Industri

create animated futuristic profile card using html+css+js

CRUD SPRING REACTIVE WEBFLUX +Mongo DB

Top 7 Digital Transformation Companies

100 perusahaan perangkat lunak (software) populer dari Eropa dan Amerika yang memiliki kehadiran atau operasional di Indonesia.

TOP 8 Framework Populer menggunakan bahasa .NET

Python Date and Time Manipulation

TOP 5 Trends Programming 2024

Daftar Kata Kunci (Keyword) dalam Bahasa Pemrograman Python