Dataset Precision, Recall, dan F1-Score
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.