Preprocessing Data (iris)#
Pendahuluan#
Preprocessing data merupakan salah satu tahapan penting dalam Business Understanding, yang berfungsi untuk menyiapkan dataset agar model analisis maupun pemodelan machine learning dapat menghasilkan akurasi yang maksimal.
Beberapa proses utama dalam preprocessing antara lain:
Penghapusan Outlier → mengurangi data pencilan agar tidak mengganggu pola utama.
Penanganan Missing Value → mengisi atau memperlakukan nilai yang kosong supaya data tetap konsisten.
Deteksi Outlier Menggunakan Data Iris di Power BI#
Pada Power BI, kita dapat melakukan deteksi outlier dengan memanfaatkan integrasi Python.
Langkahnya:
Pergi ke menu Transform Data.
Pilih tab Transform.
Klik Run Python Script.
Model Deteksi Outlier ABOD#
Metode Angle-Based Outlier Detection (ABOD) didasarkan pada analisis sudut yang dibentuk oleh tiga titik data dalam ruang fitur multivariat.
Konsep ini bekerja dengan baik pada dataset berdimensi tinggi.
Outlier terdeteksi ketika sudut yang terbentuk berbeda secara signifikan dibandingkan dengan mayoritas data lain.
Contoh Implementasi ABOD pada Data Iris#
import pandas as pd
from pycaret.anomaly import *
# Salin dataset
data = dataset.copy()
# Setup PyCaret
abod_data = setup(data, session_id=123)
# Buat model ABOD
abod = create_model('abod')
# Prediksi outlier
abod_predictions = assign_model(abod)
# Seleksi data yang terdeteksi sebagai outlier
data_anomaly = abod_predictions[abod_predictions['Anomaly'] == 1]
data_anomaly
Penjelasan Kode
Impor library → menggunakan pandas dan modul pycaret.anomaly.
Salin dataset dengan dataset.copy().
Setup lingkungan PyCaret dengan setup().
Buat model ABOD dengan create_model(‘abod’).
Prediksi data outlier menggunakan assign_model().
Seleksi data outlier → memilih baris dengan nilai Anomaly = 1.
Tampilkan hasil → menampilkan baris data yang dianggap pencilan.
Hasil Pendeteksian Outlier Pada Power BI menggunakan Metode ABOD#
Berdasarkan tabel pada gambar tersebut, ditemukan data yang terdeksi outlier sebanyak 8 data dengan representasi nilai yakni 1.
Model Deteksi Outlier KNN#
Algoritma K-Nearest Neighbours (KNN) pada dasarnya digunakan untuk klasifikasi dengan menghitung kedekatan data berdasarkan nilai k tetangga terdekat.
Selain untuk klasifikasi, KNN juga dapat dimanfaatkan dalam deteksi outlier, yaitu dengan mencari rata-rata jarak terbesar antar data. Data dengan jarak yang jauh dari mayoritas akan dikategorikan sebagai outlier.
Contoh Implementasi KNN pada Data Iris#
import pandas as pd
from pycaret.anomaly import *
# Salin dataset
data = dataset.copy()
# Setup PyCaret
setup_data = setup(data, session_id=123)
# Buat model KNN
knn = create_model('knn')
# Prediksi outlier
knn_predictions = assign_model(knn)
# Seleksi data yang terdeteksi sebagai outlier
data_anomaly = knn_predictions[knn_predictions['Anomaly'] == 1]
data_anomaly
Penjelasan Kode
Import library → pandas dan pycaret.anomaly.
Load dataset dengan dataset.copy().
Persiapkan model menggunakan setup() dengan parameter data dan session_id.
Buat model KNN dengan create_model(‘knn’).
Terapkan model menggunakan assign_model().
Seleksi outlier → data dengan nilai Anomaly = 1 dianggap pencilan.
Tampilkan hasil → simpan dalam variabel data_anomaly untuk menampilkan data yang terdeteksi sebagai outlier.
###Hasil Pendeteksian Outlier KNN di Power BI
Berdasarkan hasil yang divisualisasikan di Power BI (lihat tabel hasil deteksi), ditemukan 8 data yang terdeteksi sebagai outlier. Data tersebut ditandai dengan nilai 1 pada kolom Anomaly.
Model Deteksi Outlier LOF#
Local Outlier Factor (LOF) adalah metode yang digunakan untuk mendeteksi pencilan dengan cara membandingkan kepadatan lokal suatu data dengan kepadatan tetangganya.
Jika sebuah data berada di area yang lebih jarang atau kurang padat dibandingkan tetangga terdekatnya, maka data tersebut dianggap outlier.
Nilai LOF ≈ 1 → data normal.
Nilai LOF >> 1 → berpotensi sebagai outlier.
Contoh Implementasi LOF pada Data Iris#
import pandas as pd
from pycaret.anomaly import *
# Salin dataset
data = dataset.copy()
# Setup PyCaret
setup_data = setup(data, session_id=123)
# Buat model LOF
lof = create_model('lof')
# Prediksi outlier
lof_predictions = assign_model(lof)
# Seleksi data yang terdeteksi sebagai outlier
data_anomaly = lof_predictions[lof_predictions['Anomaly'] == 1]
data_anomaly
Penjelasan Kode
Import library → pandas dan pycaret.anomaly.
Load dataset menggunakan dataset.copy().
Siapkan PyCaret dengan fungsi setup() yang menerima parameter data dan session_id.
Buat model LOF menggunakan create_model(‘lof’).
Terapkan model dengan assign_model().
Seleksi data outlier → data dengan nilai Anomaly = 1 dianggap pencilan.
Tampilkan hasil → simpan dalam variabel data_anomaly.
Hasil Pendeteksian Outlier LOF di Power BI
###Hasil Pendeteksian Outlier Pada Power BI menggunakan Metode LOF
Berdasarkan hasil yang ditampilkan di Power BI: Ditemukan 8 data yang terdeteksi sebagai outlier.Data outlier tersebut ditandai dengan nilai 1 pada kolom Anomaly.
Menghapus Data Outlier pada Iris di Power BI#
Setelah data pencilan terdeteksi, langkah selanjutnya adalah menghapus data outlier agar analisis menjadi lebih akurat.
Di Power BI, langkahnya sebagai berikut:
Pergi ke menu Transform Data → Transform → Run Python Script.
Pilih salah satu model deteksi outlier yang sudah digunakan.
Karena hasil dari ketiga model (ABOD, KNN, LOF) sama, kita bisa menggunakan salah satunya.
Misalnya, kita gunakan model ABOD.
Pilih tabel yang menampilkan data lengkap beserta kolom Anomaly.
Contoh Implementasi Menghapus Outlier dengan ABOD#
import pandas as pd
from pycaret.anomaly import *
# Salin dataset
data = dataset.copy()
# Setup PyCaret
abod_data = setup(data, session_id=123)
# Buat model ABOD
abod = create_model('abod')
# Prediksi outlier
abod_predictions = assign_model(abod)
# Mencari index data outlier
data_anomaly = abod_predictions[abod_predictions['Anomaly'] == 1].index
# Menghapus data outlier
clean_data_outlier = abod_predictions.drop(index=data_anomaly)
clean_data_outlier
Pertama import library yang akan digunakan seperti pandas dan pycaret.
Load dataset menggunakan method copy().
Persiapkan model pycaret menggunakan fungsi setup() yang di dalamnya berisi parameter berupa data dan session_id.
Gunakan model ‘abod’ menggunakan fungsi create_model().
Setelah itu, terapkan model menggunakan fungsi assign_model().
Seleksi indeks data oulier melalui pengaksesan indeks nilai kolom yang memiliki nilai = 1, sebab outlier direpresentasikan dengan nilai 1.
Hapus data menggunakan fungsi drop() berdasarkan data yang memiliki nilai = 1.
Muat data outlier pada Power BI dengan menuliskan kembali variabel yang menyimpan proses seperti ‘clean_data_outlier’.
Hasil Pembersihan Data#
Setelah proses penghapusan, jumlah data yang tersisa adalah 142 baris.
Data pencilan berhasil dihapus, sehingga dataset kini lebih bersih dan siap digunakan untuk analisis lebih lanjut.