# Praktikum 3

### Seleksi Fitur <a href="#seleksi-fitur" id="seleksi-fitur"></a>

Pada tahap ini kita akan memilih variabel mana saja yang akan kita gunakan sebagai fitur. Pada bagian dasar teori, kita sudah mempelajari bahwa tidak selalu semua variabel dapat digunakan sebagai fitur. Oleh karena itu, kita dapat memilih fitur yang sekiranya penting untuk tujuan yang ingin kita capai dalam membuat model pembelajaran mesin. Kita akan menggunakan kasus yang sama, yaitu kita kita mengetahui ciri-ciri penumpang kapal Titanic yang selamat. Sehingga, fitur yang kita gunakan adalah,

1. "**Survived**"
2. "**Pclass**"
3. "**Sex**"
4. "**Age**"
5. "**Cabin**"

Kita akan memisahkan variabel-variabel tersebut dari variabel yang lain.

Data yang akan kita gunakan adalah data Titanic yang sudah diperbaiki dengan proses imputasi.

⬇️ **Download** ⬇️

{% file src="<https://3041032130-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F5CvtE8Xh9b75jKUaRr5Y%2Fuploads%2FIJLw7O1dxyA3mxsaNMv4%2FTitanic-Dataset-fixed.csv?alt=media&token=1d9a3ba8-fb9e-45fe-afb0-f24b55c31480>" %}

## Langkah 1 - Load Data <a href="#langkah-1-load-data" id="langkah-1-load-data"></a>

```python
dpath = 'data/Titanic-Dataset-fixed.csv'
df = pd.read_csv(dpath)
df.head()
```

## Langkah 2 - Slice Data <a href="#langkah-2-slice-data" id="langkah-2-slice-data"></a>

Pilih variabel yang kita anggap sebagai fitur

```python
df = df[['Survived', 'Pclass', 'Age', 'Sex', 'Cabin']]
df.head()
```

Hasilnya

<figure><img src="https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin/~gitbook/image?url=https%3A%2F%2F1473714265-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fhh7WzzoZbeFX9VC0bZSU%252Fuploads%252FMf5uADnAVlZsaO4llrbB%252Fslice_featarue.png%3Falt%3Dmedia%26token%3D4468b029-e2c0-461a-b117-8e98f7914411&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=eae2b938&#x26;sv=2" alt=""><figcaption></figcaption></figure>

## Langkah 3 - Encoding <a href="#langkah-3-encoding" id="langkah-3-encoding"></a>

Kita akan melakukan encoding pada data-data kategorikal, yaitu "Sex" dan "Cabin". Langkah ini perlu dilakukan karena algoritma pembelajaran mesin melakukan proses kalkulasi secara matematis. Strategi yang kita gunakan adalah **Label Encoding**. Label Encoding serupa dengan Ordinal Encoding, bedanya hanya pada proses pengurutan. Label Encoding tidak mengurutkan data terlebih dahulu.

```python
le = LabelEncoder() # membuat objek dari LabelEncoder
df['Sex'] = le.fit_transform(df['Sex']) # proses encoding
df['Cabin'] = le.fit_transform(df['Cabin']) # proses encoding
```

## Langkah 4 - Verifikasi Hasil <a href="#langkah-4-verifikasi-hasil" id="langkah-4-verifikasi-hasil"></a>

Cek kembali dengan `df.head()`. Hasilnya akan seperti pada Gambar dibawah ini.

<figure><img src="https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin/~gitbook/image?url=https%3A%2F%2F1473714265-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fhh7WzzoZbeFX9VC0bZSU%252Fuploads%252FGIDuujpa9wYyGvXUnvpW%252Fencoded.png%3Falt%3Dmedia%26token%3D22021739-019a-4a27-a8e2-ba9f95b75912&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=f90f4b44&#x26;sv=2" alt=""><figcaption></figcaption></figure>

## Langkah 5 - Standarisasi <a href="#langkah-5-standarisasi" id="langkah-5-standarisasi"></a>

Pada tahapan ini kita akan melakukan standardisasi pada "Age". **Hal ini sebetulnya tidak terlalu diperlukan karena nilai pada "Age" tidak terlalu jauh.** Tujuan dari langkah ini adalah untuk demonstrasi proses standardisasi.

```python
std = StandardScaler()
df['Age'] = std.fit_transform(df[['Age']])
```

## **Langkah 6 - Verifikasi Hasil Standarisasi**

Cek kembali dengan `df.head()`. Hasilnya akan seperti pada Gambar dibawah ini.

<figure><img src="https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin/~gitbook/image?url=https%3A%2F%2F1473714265-files.gitbook.io%2F%7E%2Ffiles%2Fv0%2Fb%2Fgitbook-x-prod.appspot.com%2Fo%2Fspaces%252Fhh7WzzoZbeFX9VC0bZSU%252Fuploads%252FJPjRm4p0eL9sKSrnBmBZ%252Fscaler.png%3Falt%3Dmedia%26token%3D40f1faa0-6ef6-4702-8e41-13225ef6e000&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=1e3c2458&#x26;sv=2" alt=""><figcaption></figcaption></figure>
