GNU/Linux >> Belajar Linux >  >> Linux

Menangani Data yang Hilang dengan Python:Penyebab dan Solusi

Pendahuluan

Data yang hilang adalah masalah umum saat bekerja dengan kumpulan data yang realistis. Mengetahui dan menganalisis penyebab nilai yang hilang membantu memberikan gambaran yang lebih jelas tentang langkah-langkah untuk mengatasi masalah tersebut. Python menyediakan banyak metode untuk menganalisis dan menyelesaikan masalah data yang tidak terhitung.

Tutorial ini menjelaskan penyebab dan solusi data yang hilang melalui contoh praktis dengan Python.

Prasyarat

  • Python 3 diinstal dan dikonfigurasi
  • Modul Pandas dan NumPy terinstal
  • Set data dengan nilai yang hilang

Bagaimana Data yang Hilang Mempengaruhi Algoritma Anda?

Ada tiga cara data yang hilang memengaruhi algoritme dan penelitian Anda:

  • Nilai yang hilang memberikan gambaran yang salah tentang data itu sendiri, menyebabkan ambiguitas . Misalnya, menghitung rata-rata untuk kolom dengan separuh informasi tidak tersedia atau disetel ke nol memberikan metrik yang salah.
  • Saat data tidak tersedia, beberapa algoritme tidak berfungsi. Beberapa algoritme pembelajaran mesin dengan set data yang berisi NaN (Bukan Angka) nilai menimbulkan kesalahan.
  • Pola data yang hilang merupakan faktor penting. Jika data dari kumpulan data hilang secara acak, maka informasi tersebut masih berguna dalam banyak kasus. Namun, jika ada informasi yang hilang secara sistematis, semua analisis menjadi bias.

Apa yang Dapat Menyebabkan Data Hilang?

Penyebab hilangnya data tergantung pada metode pengumpulan data. Mengidentifikasi penyebabnya membantu menentukan jalur mana yang harus diambil saat menganalisis kumpulan data.

Berikut adalah beberapa contoh mengapa kumpulan data memiliki nilai yang hilang:

Survei . Data yang dikumpulkan melalui survei seringkali memiliki informasi yang hilang. Baik karena alasan privasi atau hanya karena tidak mengetahui jawaban atas pertanyaan tertentu, kuesioner sering kali memiliki data yang hilang.

IoT . Banyak masalah muncul saat bekerja dengan perangkat IoT dan mengumpulkan data dari sistem sensor ke server komputasi tepi. Hilangnya komunikasi sementara atau sensor yang tidak berfungsi sering kali menyebabkan sebagian data hilang.

Akses terbatas . Beberapa data memiliki akses terbatas, terutama data yang dilindungi oleh HIPAA, GDPR, dan peraturan lainnya.

Kesalahan manual . Data yang dimasukkan secara manual biasanya memiliki inkonsistensi karena sifat pekerjaan atau banyaknya informasi.

Bagaimana Cara Menangani Data yang Hilang?

Untuk menganalisis dan menjelaskan proses bagaimana menangani data yang hilang dengan Python, kita akan menggunakan:

  • Set data Izin Mendirikan Bangunan San Francisco
  • Lingkungan Notebook Jupyter

Ide-ide tersebut berlaku untuk kumpulan data yang berbeda serta IDE dan editor Python lainnya.

Impor dan Lihat Data

Unduh kumpulan data dan salin jalurnya dari file. Menggunakan perpustakaan Pandas, impor dan simpan Building_Permits.csv data menjadi variabel:

import pandas as pd
data = pd.read_csv('<path to Building_Permits.csv>')

Untuk mengonfirmasi data yang diimpor dengan benar, jalankan:

data.head()

Perintah menunjukkan beberapa baris pertama data dalam format tabel:

Kehadiran NaN nilai menunjukkan ada data yang hilang dalam kumpulan data ini.

Temukan Nilai yang Hilang

Temukan berapa banyak nilai yang hilang per kolom dengan menjalankan:

data.isnull().sum()

Angka-angka memberikan lebih banyak arti ketika ditampilkan sebagai persentase. Untuk menampilkan jumlah sebagai persen, bagi angka dengan total panjang kumpulan data:

data.isnull().sum()/len(data)

Untuk menampilkan kolom dengan persentase tertinggi dari data yang hilang terlebih dahulu, tambahkan .sort_values(ascending=False) ke baris kode sebelumnya:

data.isnull().sum().sort_values(ascending = False)/len(data)

Sebelum menghapus atau mengubah nilai apa pun, periksa dokumentasi untuk alasan apa pun mengapa data hilang. Misalnya, kolom Kepatuhan TIDF memiliki hampir semua data yang hilang. Namun, dokumentasi menyatakan ini adalah persyaratan hukum baru, jadi masuk akal jika sebagian besar nilai hilang.

Tandai Nilai yang Hilang

Tampilkan data statistik umum untuk kumpulan data dengan menjalankan:

data.describe()

Bergantung pada tipe data dan pengetahuan domain, beberapa nilai tidak cocok secara logis. Misalnya, nomor jalan tidak boleh nol. Namun, nilai minimum menunjukkan nol, yang menunjukkan kemungkinan nilai yang hilang di kolom nomor jalan.

Untuk melihat berapa banyak Nomor Jalan nilainya adalah 0, jalankan:

(data['Street Number'] == 0).sum()

Dengan menggunakan pustaka NumPy, tukarkan nilai dengan NaN untuk menunjukkan informasi yang hilang:

import numpy as np
data['Street Number'] = data['Street Number'].replace(0, np.nan)

Memeriksa data statistik yang diperbarui sekarang menunjukkan nomor jalan minimum adalah 1.

Demikian juga, jumlah nilai NaN sekarang menunjukkan ada data yang hilang di kolom nomor jalan.

Nilai lain di kolom Nomor Jalan juga berubah, seperti hitungan dan rata-rata. Perbedaannya tidak terlalu besar karena hanya sedikit nilai yang bernilai 0. Namun, dengan jumlah data yang salah diberi label yang lebih signifikan, perbedaan metrik juga lebih terlihat.

Hilangkan Nilai yang Hilang

Cara termudah untuk menangani nilai yang hilang di Python adalah dengan menyingkirkan baris atau kolom yang informasinya hilang.

Meskipun pendekatan ini adalah yang tercepat, kehilangan data bukanlah pilihan yang paling layak. Jika memungkinkan, metode lain lebih disukai.

Lepaskan Baris dengan Nilai yang Hilang

Untuk menghapus baris dengan nilai yang hilang, gunakan dropna fungsi:

data.dropna()

Saat diterapkan ke kumpulan data contoh, fungsi tersebut menghapus semua baris data karena setiap baris data berisi setidaknya satu Nilai NaN.

Lepaskan Kolom dengan Nilai yang Hilang

Untuk menghapus kolom dengan nilai yang hilang, gunakan dropna fungsi dan berikan sumbu:

data.dropna(axis = 1)

Dataset sekarang berisi 11 kolom dibandingkan dengan 43 yang awalnya tersedia.

Imputasi Nilai yang Hilang

Imputasi adalah metode mengisi nilai yang hilang dengan angka menggunakan strategi tertentu. Beberapa opsi yang perlu dipertimbangkan untuk imputasi adalah:

  • Nilai rata-rata, median, atau modus dari kolom tersebut.
  • Nilai yang berbeda, seperti 0 atau -1.
  • Nilai yang dipilih secara acak dari set yang ada.
  • Nilai yang diperkirakan menggunakan model prediktif.

Modul Pandas DataFrame menyediakan metode untuk mengisi nilai NaN menggunakan berbagai strategi. Misalnya, untuk mengganti semua nilai NaN dengan 0:

data.fillna(0)

fillna function menyediakan metode yang berbeda untuk mengganti nilai yang hilang. Pengisian ulang adalah metode umum yang mengisi bagian informasi yang hilang dengan nilai apa pun yang muncul setelahnya:

data.fillna(method = 'bfill')

Jika nilai terakhir tidak ada, isi semua sisa NaN dengan nilai yang diinginkan. Misalnya, untuk mengisi ulang semua nilai yang mungkin dan mengisi sisanya dengan 0, gunakan:

data.fillna(method = 'bfill', axis = 0).fillna(0)

Demikian pula, gunakan isi untuk mengisi nilai ke depan. Metode pengisian maju dan pengisian mundur berfungsi saat data memiliki urutan logis.

Algoritme yang Mendukung Nilai yang Hilang

Ada algoritma pembelajaran mesin yang kuat dengan data yang hilang. Beberapa contoh termasuk:

  • kNN (k-Tetangga Terdekat)
  • Nave Bayes

Algoritme lain, seperti pohon klasifikasi atau regresi, menggunakan informasi yang tidak tersedia sebagai pengenal unik.


Linux
  1. Tantangan dan Janji Big Data

  2. Tutorial Honeypot – Mode dan Cara Kerja Honeypot

  3. Campuran skrip shell dan python mungkin?

  1. OpenCV dan python/virtualenv?

  2. Ekspor variabel dari bash dan gunakan dengan Python

  3. Kapan menggunakan Bash dan kapan menggunakan Perl/Python/Ruby?

  1. Mengekstrak dan menampilkan data dengan awk

  2. Tata graha Linux:Menangani arsip dan pencadangan

  3. Bagaimana Cara Mendiagnosis Dan Memperbaiki Ruang Drive yang Hilang?