top of page
Gambar penulisCornellius Yudha Wijaya

Cara Menangani Missing Data dengan Modul Imputer dari Scikit-learn

Dalam artikel ini, Anda akan mempelajari cara menggunakan modul Imputer dari Scikit-Learn untuk menangani missing data untuk mempercepat proyek data science.


Cara Menangani Missing Data dengan Modul Imputer dari Scikit-learn

Mari kita belajar cara menggunakan imputer Scikit-learn untuk menangani missing data.

Persiapan

Pastikan Anda telah menginstal Numpy, Pandas, dan Scikit-Learn di lingkungan (Environment) Anda. Jika belum, Anda dapat menginstalnya melalui pip menggunakan kode berikut:

pip install numpy pandas scikit-learn

Kemudian, kita bisa mengimpor paket-paket ini ke lingkungan Anda:

import numpy as np
import pandas as pd
import sklearn
from sklearn.experimental import enable_iterative_imputer

Menangani Missing Data dengan Imputer

Imputer dari Scikit-Learn adalah sebuah kelas yang digunakan untuk mengganti data yang hilang dengan nilai tertentu. Ini dapat mempercepat proses data preprocessing Anda. Kita akan mengeksplorasi beberapa strategi untuk menangani missing data.

Mari kita buat sampel data untuk contoh kita:

sample_data = {'First': [1, 2, 3, 4, 5, 6, 7, np.nan,9], 'Second': [np.nan, 2, 3, 4, 5, 6, np.nan, 8,9]}
df = pd.DataFrame(sample_data)
print(df)

First  Second
0    1.0     NaN
1    2.0     2.0
2    3.0     3.0
3    4.0     4.0
4    5.0     5.0
5    6.0     6.0
6    7.0     NaN
7    NaN     8.0
8    9.0     9.0

Anda dapat mengisi missing value di kolom dengan Simple Imputer dari Scikit-Learn menggunakan mean dari kolom tersebut.

First  Second
0   1.00    5.29
1   2.00    2.00
2   3.00    3.00
3   4.00    4.00
4   5.00    5.00
5   6.00    6.00
6   7.00    5.29
7   4.62    8.00
8   9.00    9.00

Sebagai catatan, kita membulatkan hasilnya menjadi 2 angka desimal.

Anda juga bisa mengimput data yang hilang dengan median menggunakan Simple Imputer.

imputer = sklearn.SimpleImputer(strategy='median')
df_imputed = round(pd.DataFrame(imputer.fit_transform(df), columns=df.columns),2)

print(df_imputed)

   First  Second
0    1.0     5.0
1    2.0     2.0
2    3.0     3.0
3    4.0     4.0
4    5.0     5.0
5    6.0     6.0
6    7.0     5.0
7    4.5     8.0
8    9.0     9.0

Pendekatan mean dan median imputer sederhana, tetapi dapat mengubah distribusi data dan menciptakan bias dalam hubungan data.

Ada juga kemungkinan menggunakan K-NN Imputer untuk mengisi missing data menggunakan pendekatan nearest neighbour.

knn_imputer = sklearn.KNNImputer(n_neighbors=2)
knn_imputed_data = knn_imputer.fit_transform(df)
knn_imputed_df = pd.DataFrame(knn_imputed_data, columns=df.columns)

print(knn_imputed_df)

   First  Second
0    1.0     2.5
1    2.0     2.0
2    3.0     3.0
3    4.0     4.0
4    5.0     5.0
5    6.0     6.0
6    7.0     5.5
7    7.5     8.0
8    9.0     9.0

KNN Imputer akan menggunakan mean atau median dari nilai tetangga dari k nearest neighbours.

Terakhir, ada metodologi Iterative Impute, yang didasarkan pada pemodelan setiap fitur dengan missing value sebagai fungsi dari fitur lainnya. Seperti yang disebutkan dalam artikel ini, ini adalah fitur eksperimental, jadi kita perlu mengaktifkannya terlebih dahulu.

iterative_imputer = IterativeImputer(max_iter=10, random_state=0)
iterative_imputed_data = iterative_imputer.fit_transform(df)
iterative_imputed_df = round(pd.DataFrame(iterative_imputed_data, columns=df.columns),2)

print(iterative_imputed_df)

    First  Second
0    1.0     1.0
1    2.0     2.0
2    3.0     3.0
3    4.0     4.0
4    5.0     5.0
5    6.0     6.0
6    7.0     7.0
7    8.0     8.0
8    9.0     9.0

Jika Anda dapat menggunakan imputer dengan benar, itu dapat membantu membuat proyek data science Anda menjadi lebih baik.


25 tampilan0 komentar

Comments


bottom of page