Dataset missing values imputation

From OnnoWiki
Jump to navigation Jump to search

Menangani missing values dalam dataset adalah langkah penting dalam proses analisis data untuk memastikan kualitas dan akurasi hasil. Berikut adalah contoh kode Python yang menunjukkan cara mengidentifikasi dan mengatasi missing values menggunakan pustaka pandas dan scikit-learn.

1. Mengidentifikasi Missing Values

Langkah pertama adalah mendeteksi keberadaan missing values dalam dataset. Fungsi `isnull()` atau `isna()` dari pandas dapat digunakan untuk tujuan ini.

import pandas as pd

# Contoh: Membuat DataFrame dengan missing values
data = {
    'Nama': ['Andi', 'Budi', 'Citra', 'Dewi'],
    'Usia': [25, 30, None, 22],
    'Kota': ['Jakarta', None, 'Bandung', 'Surabaya']
}
df = pd.DataFrame(data)

# Menampilkan jumlah missing values di setiap kolom
print("Jumlah missing values per kolom:")
print(df.isnull().sum())

Output:

Jumlah missing values per kolom:
Nama    0
Usia    1
Kota    1
dtype: int64

2. Mengatasi Missing Values

Terdapat beberapa pendekatan untuk menangani missing values:

  • Menghapus Data yang Mengandung Missing Values:

Jika jumlah missing values relatif kecil, Anda dapat menghapus baris atau kolom yang mengandung missing values menggunakan `dropna()`.

 # Menghapus baris yang memiliki missing values
 df_cleaned = df.dropna()
 print(df_cleaned)

- Imputasi Missing Values:

Mengganti missing values dengan nilai tertentu seperti mean, median, atau modus.

  • Mengisi dengan Mean (Rata-rata):

Cocok untuk data numerik tanpa outlier signifikan.

# Mengisi missing values pada kolom 'Usia' dengan mean
df['Usia'].fillna(df['Usia'].mean(), inplace=True)
  • Mengisi dengan Median:

Sesuai untuk data numerik dengan distribusi miring atau memiliki outlier.

# Mengisi missing values pada kolom 'Usia' dengan median
df['Usia'].fillna(df['Usia'].median(), inplace=True)
  • Mengisi dengan Modus (Nilai yang Paling Sering Muncul):

Berguna untuk data kategorikal.

# Mengisi missing values pada kolom 'Kota' dengan modus
df['Kota'].fillna(df['Kota'].mode()[0], inplace=True)
  • Menggunakan `SimpleImputer` dari scikit-learn:

Pendekatan ini memungkinkan imputasi yang lebih terstruktur dan dapat digunakan dalam pipeline machine learning.

from sklearn.impute import SimpleImputer
import numpy as np

# Inisialisasi imputer untuk mengisi missing values dengan mean
imputer = SimpleImputer(missing_values=np.nan, strategy='mean')

# Mengimputasi kolom 'Usia'
df'Usia' = imputer.fit_transform(df'Usia')

SimpleImputer juga mendukung strategi lain seperti `median`, `most_frequent` (modus), dan `constant`. citeturn0search8

Catatan:

  • Pemilihan metode imputasi harus disesuaikan dengan karakteristik data dan tujuan analisis.
  • Setelah melakukan imputasi, penting untuk mengevaluasi kembali dataset untuk memastikan bahwa metode yang digunakan tidak memperkenalkan bias atau distorsi pada data.
  • Untuk kasus yang lebih kompleks, seperti data dengan pola missing yang tidak acak, metode imputasi multivariat seperti `IterativeImputer` dari scikit-learn dapat dipertimbangkan.

Dengan memahami dan menerapkan teknik-teknik di atas, Anda dapat menangani missing values dalam dataset secara efektif, sehingga meningkatkan kualitas dan keandalan analisis data Anda.


Pranala Menarik