Kode preprocessing data dengan python

Inti dari Machine Learning adalah memproses data. Alat pembelajaran mesin Anda sebaik kualitas data Anda. Blog ini membahas berbagai langkah pembersihan data. Data Anda perlu melalui beberapa langkah sebelum dapat digunakan untuk membuat prediksi

Diagram proses Pembelajaran Mesin

Dataset untuk blog ini dapat diakses dari sini

Langkah-langkah yang terlibat dalam preprocessing data
  1. Mengimpor Perpustakaan yang diperlukan
  2. Mengimpor kumpulan data
  3. Menangani Data yang Hilang
  4. Mengkodekan Data Kategorikal
  5. Memisahkan kumpulan data menjadi kumpulan tes dan kumpulan pelatihan
  6. Penskalaan Fitur

Jadi mari kita lihat langkah-langkah ini satu per satu

Langkah 1. Mengimpor Perpustakaan yang diperlukan

Untuk mengikuti, Anda perlu mengunduh kumpulan data ini. Data. csv

Setiap kali kita membuat model baru, kita perlu mengimpor Numpy dan Pandas. Numpy adalah Perpustakaan yang berisi fungsi Matematika dan digunakan untuk komputasi ilmiah sementara Panda digunakan untuk mengimpor dan mengelola kumpulan data

import pandas as pd
import numpy as np

Di sini kita mengimpor perpustakaan panda dan Numpy dan masing-masing menetapkan pintasan "pd" dan "np"

Langkah 2. Mengimpor Kumpulan Data

Kumpulan data tersedia di. csv. File CSV menyimpan data tabular dalam teks biasa. Setiap baris file adalah catatan data. Kami menggunakan metode read_csv dari perpustakaan panda untuk membaca file CSV lokal sebagai kerangka data

dataset = pd.read_csv('Data.csv')
_

Setelah hati-hati memeriksa dataset kami, kami akan membuat matriks fitur dalam dataset kami (X) dan membuat vektor dependen (Y) dengan pengamatan masing-masing. Untuk membaca kolom, kami akan menggunakan iloc panda (digunakan untuk memperbaiki indeks untuk seleksi) yang membutuhkan dua parameter — [pemilihan baris, pemilihan kolom]

X = dataset.iloc[:, :-1].values
y = dataset.iloc[:, 3].values

Langkah 3. Menangani Data yang Hilang

Contoh Missing data dan Imputasi

Data yang kami dapatkan jarang homogen. Terkadang data bisa saja hilang dan perlu ditangani agar tidak menurunkan performa model machine learning kita

Untuk melakukan ini, kita perlu mengganti data yang hilang dengan Mean atau Median dari keseluruhan kolom. Untuk ini kita akan menggunakan sklearn. Library preprocessing yang berisi kelas bernama Imputer yang akan membantu kita dalam menjaga data kita yang hilang

from sklearn.preprocessing import Imputer
imputer = Imputer(missing_values = "NaN", strategy = "mean", axis = 0)

Nama objek kita adalah imputer. Kelas Imputer dapat mengambil parameter seperti

  1. nilai yang hilang. Ini adalah placeholder untuk nilai yang hilang. Semua kemunculan missing_values ​​akan diperhitungkan. Kita bisa memberinya bilangan bulat atau "NaN" untuk menemukan nilai yang hilang
  2. strategi. Ini adalah strategi imputasi - Jika "berarti", maka ganti nilai yang hilang menggunakan rata-rata sepanjang sumbu (Kolom). Strategi lain termasuk "median" dan "most_frequent"
  3. sumbu. Itu dapat diberikan 0 atau 1, 0 untuk menghubungkan sepanjang kolom dan 1 untuk menghubungkan sepanjang baris

Sekarang kami menyesuaikan objek imputer dengan data kami

imputer = imputer.fit(X[:, 1:3])
_

Sekarang ganti nilai yang hilang dengan rata-rata kolom dengan menggunakan metode transformasi

X[:, 1:3] = imputer.transform(X[:, 1:3])

Langkah 4. Mengkodekan data kategorikal

Mengubah data Kategorikal menjadi variabel dummy

Setiap variabel yang bukan kuantitatif bersifat kategoris. Contohnya meliputi warna rambut, jenis kelamin, bidang studi, kuliah, afiliasi politik, status infeksi penyakit

Tapi mengapa pengkodean?

Kita tidak dapat menggunakan nilai seperti "Pria" dan "Wanita" dalam persamaan matematika model, jadi kita perlu menyandikan variabel ini ke dalam angka

Untuk melakukan ini, kami mengimpor kelas "LabelEncoder" dari "sklearn. preprocessing” dan buat objek labelencoder_X dari kelas LabelEncoder. Setelah itu kami menggunakan metode fit_transform pada fitur kategorikal

Setelah Encoding perlu untuk membedakan antara variabel dalam kolom yang sama, untuk ini kita akan menggunakan kelas OneHotEncoder dari sklearn. perpustakaan preprocessing

Pengodean Satu-Panas

One hot encoding mengubah fitur kategorikal menjadi format yang berfungsi lebih baik dengan algoritme klasifikasi dan regresi

from sklearn.preprocessing import LabelEncoder, OneHotEncoder
labelencoder_X = LabelEncoder()
X[:, 0] = labelencoder_X.fit_transform(X[:, 0])
onehotencoder = OneHotEncoder(categorical_features = [0])
X = onehotencoder.fit_transform(X).toarray()
labelencoder_y = LabelEncoder()
y = labelencoder_y.fit_transform(y)
_

Langkah 5. Memisahkan set Data menjadi set Pelatihan dan Set Tes

Sekarang kami membagi data kami menjadi dua set, satu untuk melatih model kami disebut set pelatihan dan yang lainnya untuk menguji kinerja model kami disebut set pengujian. Perpecahan umumnya 80/20. Untuk melakukan ini, kami mengimpor metode "train_test_split" dari "sklearn. model_selection” perpustakaan

from sklearn.model_selection import train_test_split

Sekarang untuk membangun set pelatihan dan pengujian kami, kami akan membuat 4 set —

  1. X_train (melatih bagian dari matriks fitur),
  2. X_test (uji bagian dari matriks fitur),
  3. Y_train (melatih bagian dari variabel dependen yang terkait dengan set kereta X, dan karenanya juga indeks yang sama),
  4. Y_test (uji bagian dari variabel dependen yang terkait dengan set uji X, dan karenanya juga indeks yang sama)

Kami akan menetapkan kepada mereka test_train_split, yang mengambil parameter - array (X dan Y), test_size (Menentukan rasio untuk membagi kumpulan data)

X_train, X_test, Y_train, Y_test = train_test_split( X , Y , test_size = 0.2, random_state = 0)
_

Langkah 6. Penskalaan Fitur

Sebagian besar algoritma pembelajaran mesin menggunakan jarak Euclidean antara dua titik data dalam perhitungannya. Oleh karena itu, fitur dengan magnitudo tinggi akan lebih berat dalam perhitungan jarak daripada fitur dengan magnitudo rendah. Untuk menghindari hal ini digunakan standardisasi Fitur atau normalisasi Z-score. Ini dilakukan dengan menggunakan kelas "StandardScaler" dari "sklearn. prapemrosesan”

from sklearn.preprocessing import StandardScaler
sc_X = StandardScaler()
_

Selanjutnya kita akan mengubah set X_test kita sementara kita harus menyesuaikan serta mengubah set X_train kita

Apa saja 5 langkah utama dari preprocessing data?

Langkah Pemrosesan Data .
Penilaian kualitas data
Pembersihan data
Transformasi data
Pengurangan data

Apa itu preprocessing data dengan contoh?

Langkah-langkah persiapan dan pemfilteran data dapat menghabiskan banyak waktu pemrosesan. Contoh prapemrosesan data meliputi pembersihan, pemilihan instance, normalisasi, one hot encoding, transformasi, ekstraksi dan pemilihan fitur , dll. Produk dari preprocessing data adalah set pelatihan akhir.

Bagaimana Anda mengotomatiskan preprocessing data dengan Python?

Pemrosesan Awal Data Otomatis .
Identifikasi nilai yang hilang dalam kumpulan data dan ganti dengan nilai sentinel NaN
Interpolasi nilai yang hilang menggunakan rata-rata untuk fitur kontinu, mode untuk fitur diskrit
Hapus outlier dengan asumsi bahwa distribusi nilai field mengikuti distribusi normal

Bagaimana cara melakukan preprocessing data dari file CSV?

Langkah-langkah yang terlibat dalam prapemrosesan data. .
Mengimpor Perpustakaan yang diperlukan
Mengimpor kumpulan data
Menangani Data yang Hilang
Mengkodekan Data Kategorikal
Memisahkan kumpulan data menjadi kumpulan tes dan kumpulan pelatihan
Penskalaan Fitur