Dataset Precision, Recall, dan F1-Score

From OnnoWiki
Jump to navigation Jump to search

Untuk menghitung Precision, Recall, dan F1-Score pada dataset menggunakan Python, Anda dapat memanfaatkan pustaka `scikit-learn`. Berikut adalah contoh kode yang menunjukkan cara melakukannya:

from sklearn.metrics import precision_score, recall_score, f1_score, classification_report
from sklearn.model_selection import train_test_split
from sklearn.ensemble import RandomForestClassifier
import numpy as np

# Contoh: Membuat dataset dummy dengan 100 sampel, 10 fitur, dan 1 target biner
np.random.seed(42)
X = np.random.rand(100, 10)  # 100 sampel, 10 fitur
y = np.random.randint(0, 2, 100)  # 100 nilai target biner (0 atau 1)

# Membagi dataset menjadi data latih dan data uji (80% latih, 20% uji)
X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)

# Inisialisasi dan pelatihan model klasifikasi (misalnya RandomForest)
model = RandomForestClassifier(random_state=42)
model.fit(X_train, y_train)

# Prediksi pada data uji
y_pred = model.predict(X_test)

# Menghitung Precision, Recall, dan F1-Score
precision = precision_score(y_test, y_pred)
recall = recall_score(y_test, y_pred)
f1 = f1_score(y_test, y_pred)

print(f'Precision: {precision:.2f}')
print(f'Recall: {recall:.2f}')
print(f'F1-Score: {f1:.2f}')

# Alternatif: Menggunakan classification_report untuk ringkasan metrik
print('\nClassification Report:')
print(classification_report(y_test, y_pred))

Penjelasan kode:

1. Import Library:

  • `precision_score`, `recall_score`, `f1_score`, dan `classification_report` dari `sklearn.metrics` untuk menghitung metrik evaluasi.
  • `train_test_split` dari `sklearn.model_selection` untuk membagi dataset menjadi data latih dan data uji.
  • `RandomForestClassifier` dari `sklearn.ensemble` sebagai model klasifikasi contoh.
  • `numpy` untuk operasi numerik dan pembuatan dataset dummy.

2. Pembuatan Dataset Dummy:

  • Menggunakan `np.random.rand` untuk membuat dataset dengan 100 sampel dan 10 fitur (`X`).
  • Menggunakan `np.random.randint` untuk membuat 100 nilai target biner (`y`), yaitu 0 atau 1.

3. Pembagian Dataset:

  • Membagi dataset menjadi data latih (80%) dan data uji (20%) menggunakan `train_test_split`.

4. Inisialisasi dan Pelatihan Model:

  • Membuat instance dari `RandomForestClassifier` dan melatihnya dengan data latih.

5. Prediksi:

  • Melakukan prediksi pada data uji.

6. Menghitung Metrik Evaluasi:

  • Menghitung Precision, Recall, dan F1-Score menggunakan fungsi yang sesuai dari `sklearn.metrics`.
  • Menampilkan hasil metrik dengan format dua desimal.

7. Alternatif: Classification Report:

  • Menggunakan `classification_report` untuk menampilkan ringkasan metrik evaluasi, termasuk precision, recall, f1-score, dan support untuk setiap kelas.

Catatan:

  • Pastikan untuk menyesuaikan kode ini sesuai dengan dataset dan model yang Anda gunakan.
  • Jika Anda bekerja dengan klasifikasi multikelas, Anda dapat menambahkan parameter `average` pada fungsi metrik (`precision_score`, `recall_score`, `f1_score`) dengan nilai seperti `'macro'`, `'micro'`, atau `'weighted'` sesuai kebutuhan.

Dengan menggunakan kode di atas, Anda dapat mengevaluasi performa model klasifikasi Anda secara efektif menggunakan metrik Precision, Recall, dan F1-Score.


Pranala Menarik