πŸŽ‡Lab 1

Ekstraksi Fitur Pada Data Tabular

⬇️ Download ⬇️

file-download
60KB

Langkah 1 - Import Library

Import library yang dibutuhkan sebagai berikut,

import pandas as pd
import numpy as np
from sklearn.model_selection import train_test_split
from sklearn.compose import ColumnTransformer
from sklearn.preprocessing import OneHotEncoder, StandardScaler
from sklearn.pipeline import Pipeline
from sklearn.impute import SimpleImputer
from sklearn.linear_model import LogisticRegression
from sklearn.feature_selection import chi2, SelectKBest, RFE
from sklearn.metrics import accuracy_score, classification_report

Langkah 2 - Load Data dan Pengelompokan Data

Load data Titanic-Dataset.csv menggunakan pandas. Selanjutnya, kita akan memisahkan variabel target, yaitu Survived dan mengelompokkan data berdasarkan data numerik dan kategorikal.

Langkah 3 - Ekstraksi Fitur

Pada tahap ini, kita akan melakukan ekstraksi fitur berdasarkan jenis data untuk setiap variabel. Selain itu, kita akan mencoba menggunakan Pipeline dari scikit-learn untuk proses ekstraksi fiturnya. Pipeline merupakan model proses yang dapat kita gunakan berkali kali sehingga memudahkan proses pembuatan model. Stategi ekstraksi fitur yang digunakan adalah imputasi dan penyekalaan. Proses ini juga sebenernya dapat dilakukan pada saat EDA dan proprocessing. Ingat, fitur pada data tabular sebenarnya adalah kolom-kolom dari data tabular.

Langkah 3.1 - Feature Construction

Selain menggunakan variabel-variabel yang sudah ada, sebetulnya kita dapat membuat fitur baru dalam data tabular berdasarkan proses agregasi atau penggabungan dari variabel-variabel yang lain. Langkah ini disebut sebagai feature construction.

Kita akan membuat fitur bernama FamiliSize yang merupakan jumlah keluarga yang dapat dihitung berdasarkan SibSp + Parch + 1. SipSp merupakan data terkait dengan jumlah siblings dan spouse. Sedangkan Parch adalah data terkait dengan jumlah orang tua atau anak.

Langkah 4 - Seleksi Fitur

Kita akan melakukan proses seleksi fitur sederhana dengan menggunakan fungsi SelectKBest. Fungsi ini menggunakan metode univariate statistics dalam proses pemilihan fiturnya. Jumlah fitur yang digunakan sesuai dengan jumlah k yang digunakan.

Baca: https://scikit-learn.org/stable/modules/feature_selection.html#univariate-feature-selectionarrow-up-right

Dalam konteks data Titanic, kita akan menggunakan analisis ANOVA.

Selanjutnya, buat pipeline final untuk keseleuruhan proses.

Langkah 5 - Uji dengan Model

Pada langkah ini kita akan melakukan uji langsung dengan melakukan proses pelatihan menggunakan model Logistic Regression untuk mengetahui hasil dari proses ekstraksi dan seleksi fitur terhadap nilai akurasi.

Anda akan mendapatkan hasil seperti berikut,

NB: Anda mungkin mendapatkan hasil yang berbeda.

Berdasarkan informasi tersebut, kita mengetahui tingkat akurasi yang didapatkan sekitar 0.780.78 atau 78%78\%. Hasilnya cukup baik namun tidak terlalu baik untuk mengetahui penumpang yang meninggal atau tidak. Hal ini erat kaitannya dengan fitur yang digunakan.

Lalu fitur apa yang sebenarnya digunakan? Kita perlu melakukan inspeksi!

Hasilnya,

Kita dapat mengetahui bahwa akurasi 78%78\% didapatkan dari fitur,

  1. Sex_female

  2. Sex_make

  3. P_class_3

  4. P_class_1

  5. Fare

Selanjutnya, Anda dapat melakukan percobaan dengan menggunakan konfigurasi k yang berbeda atau metode yang berbeda untuk mendapatkan fitur dengan hasil terbaik.

Last updated