Regresi Logistik dengan Python - Mempersiapkan Data

Untuk membuat pengklasifikasi, kita harus menyiapkan data dalam format yang diminta oleh modul bangunan pengklasifikasi. Kami menyiapkan data dengan melakukanOne Hot Encoding.

Pengkodean Data

Kami akan membahas secara singkat apa yang kami maksud dengan pengkodean data. Pertama, mari kita jalankan kodenya. Jalankan perintah berikut di jendela kode.

In [10]: # creating one hot encoding of the categorical columns.
data = pd.get_dummies(df, columns =['job', 'marital', 'default', 'housing', 'loan', 'poutcome'])

Seperti yang dikatakan oleh komentar, pernyataan di atas akan membuat encoding data yang panas. Mari kita lihat apa yang telah diciptakannya? Periksa data yang dibuat yang disebut“data” dengan mencetak catatan kepala di database.

In [11]: data.head()

Anda akan melihat output berikut -

Untuk memahami data di atas, kami akan membuat daftar nama kolom dengan menjalankan data.columns perintah seperti yang ditunjukkan di bawah ini -

In [12]: data.columns
Out[12]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur',
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'job_unknown', 'marital_divorced', 'marital_married', 'marital_single', 
'marital_unknown', 'default_no', 'default_unknown', 'default_yes', 
'housing_no', 'housing_unknown', 'housing_yes', 'loan_no',
'loan_unknown', 'loan_yes', 'poutcome_failure', 'poutcome_nonexistent', 
'poutcome_success'], dtype='object')

Sekarang, kami akan menjelaskan bagaimana encoding one hot dilakukan oleh get_dummiesperintah. Kolom pertama dalam database yang baru dibuat adalah kolom "y" yang menunjukkan apakah klien ini telah berlangganan TD atau tidak. Sekarang, mari kita lihat kolom yang dikodekan. Kolom pertama yang dikodekan adalah“job”. Dalam database, Anda akan menemukan bahwa kolom "pekerjaan" memiliki banyak kemungkinan nilai seperti "admin", "kerah biru", "pengusaha", dan sebagainya. Untuk setiap nilai yang mungkin, kami memiliki kolom baru yang dibuat dalam database, dengan nama kolom ditambahkan sebagai awalan.

Jadi, kami memiliki kolom yang disebut "job_admin", "job_blue-collar", dan seterusnya. Untuk setiap bidang yang dikodekan dalam database asli kami, Anda akan menemukan daftar kolom yang ditambahkan dalam database yang dibuat dengan semua kemungkinan nilai yang diambil kolom tersebut dalam database asli. Periksa dengan cermat daftar kolom untuk memahami bagaimana data dipetakan ke database baru.

Memahami Pemetaan Data

Untuk memahami data yang dihasilkan, mari kita cetak seluruh data menggunakan perintah data. Output parsial setelah menjalankan perintah ditampilkan di bawah ini.

In [13]: data

Layar di atas menunjukkan dua belas baris pertama. Jika Anda menggulir ke bawah lebih jauh, Anda akan melihat bahwa pemetaan telah selesai untuk semua baris.

Keluaran layar parsial di bagian bawah database ditampilkan di sini untuk referensi cepat Anda.

Untuk memahami data yang dipetakan, mari kita periksa baris pertama.

Dikatakan bahwa pelanggan ini belum berlangganan TD seperti yang ditunjukkan oleh nilai di kolom “y”. Ini juga menunjukkan bahwa pelanggan ini adalah pelanggan "kerah biru". Menggulir ke bawah secara horizontal, ini akan memberi tahu Anda bahwa dia memiliki "perumahan" dan tidak mengambil "pinjaman".

Setelah encoding panas ini, kita memerlukan lebih banyak pemrosesan data sebelum kita dapat mulai membangun model kita.

Menghapus "tidak diketahui"

Jika kita memeriksa kolom dalam database yang dipetakan, Anda akan menemukan adanya beberapa kolom yang diakhiri dengan "tidak diketahui". Misalnya, periksa kolom di indeks 12 dengan perintah berikut yang ditampilkan di tangkapan layar -

In [14]: data.columns[12]
Out[14]: 'job_unknown'

Ini menunjukkan bahwa pekerjaan untuk pelanggan tertentu tidak diketahui. Jelas, tidak ada gunanya memasukkan kolom seperti itu dalam analisis dan pembuatan model kita. Jadi, semua kolom dengan nilai "tidak diketahui" harus dihilangkan. Ini dilakukan dengan perintah berikut -

In [15]: data.drop(data.columns[[12, 16, 18, 21, 24]], axis=1, inplace=True)

Pastikan Anda menentukan nomor kolom yang benar. Jika ragu, Anda dapat memeriksa nama kolom kapan saja dengan menentukan indeksnya di perintah kolom seperti yang dijelaskan sebelumnya.

Setelah menjatuhkan kolom yang tidak diinginkan, Anda dapat memeriksa daftar kolom terakhir seperti yang ditunjukkan pada output di bawah ini -

In [16]: data.columns
Out[16]: Index(['y', 'job_admin.', 'job_blue-collar', 'job_entrepreneur', 
'job_housemaid', 'job_management', 'job_retired', 'job_self-employed', 
'job_services', 'job_student', 'job_technician', 'job_unemployed',
'marital_divorced', 'marital_married', 'marital_single', 'default_no', 
'default_yes', 'housing_no', 'housing_yes', 'loan_no', 'loan_yes',
'poutcome_failure', 'poutcome_nonexistent', 'poutcome_success'], 
dtype='object')

Pada titik ini, data kami siap untuk pembuatan model.