MODUL PERKULIAHAN
W542100001 –
Analisis Data
Pembersihan Data
Abstrak Sub-CPMK
12.1. Pendahuluan
Ketika kita berbicara tentang dunia nyata, sebagian besar data yang kita
temukan untuk analisis adalah data mentah. Data mentah ini adalah kombinasi dari
baris yang berulang, hilang, dan banyak yang tidak relevan. Oleh karena itu, jika
diteruskan ke model, itu menghasilkan ketidakakuratan atau prediksi yang salah, yang
pada akhirnya membawa kita untuk memahami pentingnya Pembersihan Data.
Pembersihan Data dengan Python, juga dikenal sebagai Pembersihan Data adalah
teknik penting dalam pembuatan model yang muncul setelah Anda mengumpulkan
data. Ini dapat dilakukan secara manual di excel atau dengan menjalankan program.
Oleh karena itu, dalam artikel ini, kita akan membahas pembersihan data yang
diperlukan dan bagaimana Anda dapat membersihkan suara-suara (kotoran) langkah
demi langkah dengan menggunakan Python .
Perhatikan tabel dengan seksama. Anda akan melihat bahwa bidang tertentu
kosong atau memiliki nilai yang tidak relevan. Jika kita mengolah data seperti itu,
maka prediksi kita akan bermasalah.
Jadi, kami akan melakukan langkah-langkah di bawah ini untuk Pembersihan
Data.
1. Hapus Baris Berulang
2. Perawatan nilai yang hilang
3. Penghapusan Data yang Tidak Relevan
Amati tabel output dengan hati-hati, ini adalah tabel yang sama dengan yang kita
miliki di tempat pertama. Dua pustaka penting yang kami impor adalah Panda dan
Numpy. Ini diperlukan untuk menjalankan kode Python. Hal penting berikutnya adalah
akronim yang kami adopsi sebagai praktik yang baik. variabel karyawan yang
digunakan untuk menyimpan data yang dibaca dari file DataCleaning.csv yang
disimpan di lokasi yang disebutkan. Perintah yang digunakan untuk membaca data
adalah read_csv dan ditampilkan di layar dengan menggunakan print. Untuk kolom
yang memiliki nilai yang hilang, sistem telah mengisinya dengan NaN(Bukan angka).
Seperti yang ditunjukkan pada gambar keluaran, kolom No. Ponsel, Proyek, dan
email memiliki nilai yang hilang. Nilai yang hilang dapat diisi atau dibuang. Dalam
contoh kami, kami sedang mengerjakan data karyawan sehingga mengisinya dengan
nilai apa pun tidak akan pantas. Oleh karena itu, kami telah menghilangkan nilai-nilai
yang hilang.
Perintah dropna menjatuhkan baris/kolom yang memiliki setidaknya nilai nol dalam file
CSV.
Jika kami memeriksa data, kami akan melihat bahwa kolom berhasil dihapus.
G
ambar dari Screen Output.
Lingkaran hitam di plot sesuai dengan outlier dan lingkaran di antara tanda hubung bawah
dan atas membentuk sebagian besar nilai untuk nomor kamar. Apa pun di bawah lima
dan di atas delapan sesuai dengan outlier.
Kami melihat bahwa panjang bingkai data tidak berubah dan kolom Usia tidak lagi
memiliki nilai yang hilang. Mari kita ulangi proses ini untuk kolom lainnya:
df['CRIM'].fillna(df['CRIM'].mean(),inplace=True)
df['ZN'].fillna(df['ZN'].mean(),inplace=True)
df['INDUS'].fillna(df['INDUS'].mean(),inplace=True)
df['CHAS'].fillna(df['CHAS'].mean(),inplace=True)
df['LSTAT'].fillna(df['LSTAT'].mean(),inplace=True)
df.info()
Di sini, kita akan mendefinisikan bingkai data baru yang disebut df_bad, di mana usia di
atas rata-rata akan berupa string. Sekali lagi, ini untuk mensimulasikan bagaimana kita
menangani data yang nyata, seringkali berantakan.
df_bad['AGE'] = [str(x) if x > df_bad['AGE'].mean() else x for x in
list(df_bad['AGE']) ]
Kesalahan ini terjadi karena Anda tidak dapat menghitung rata-rata antara string dan
bilangan bulat, yang merupakan masalah kualitas data yang sering muncul saat bekerja
dengan data nyata. Kami dapat memaksa nilai buruk menjadi bilangan bulat
menggunakan metode Pandas yang disebut to_numeric:
df_bad['AGE'] = pd.to_numeric(df_bad['AGE'], errors = 'coerce')
print(df_bad['AGE'].mean())
Kami melihat bahwa kami sekarang dapat menghitung usia rata-rata.
Menangani Pencilan
Metode pembersihan data lainnya adalah menghapus outlier dalam data. Ingat plot kotak
yang kita buat sebelumnya untuk jumlah kamar:
Menghapus outlier penting untuk melakukan analisis statistik dan membangun model
prediktif karena mereka dapat mengubah statistik dan membuatnya tidak dapat
diinterpretasikan. Selanjutnya, outlier dapat mempengaruhi kinerja model prediktif secara
negatif.
Kami akan menggunakan Z-score untuk menghapus outlier dari satu kolom, di mana Z-
score adalah ukuran seberapa jauh suatu nilai dari mean. Nilai yang jauh dari rata-rata
biasanya merupakan outlier. Misalnya, nilai tiga standar deviasi dari mean dapat dianggap
sebagai outlier. Mari kita hilangkan outlier dari kolom Rm (jumlah kamar):
Kami juga dapat melakukan ini untuk kolom numerik lainnya. Mari kita definisikan fungsi
yang mengambil nama kolom sebagai input dan mengembalikan bingkai data tempat
outlier di kolom tersebut dihapus:
def remove_outliers(column_name, df_in):
print(f"Length before removing {column_name} outlier:", len(df_in))
df_in[f'{column_name}_zscore'] =
np.abs(stats.zscore(df_in[f'{column_name}']))
df_clean = df_in[df_in[f'{column_name}_zscore']< 3]
print(f"Length after removing {column_name} outlier:",
len(df_clean))
return df_clean
Mari kita terapkan fungsi ini ke kolom Dis (jarak bobot ke lima pusat pekerjaan Boston):
df1 = remove_outliers('DIS', df_bad)
Kami melihat bahwa dalam kedua kasus penghapusan outlier mengakibatkan hilangnya
data, yang diharapkan.
Kode dari posting ini tersedia di GitHub .