# Praktikum 2

## Data Imputation <a href="#data-imputation" id="data-imputation"></a>

Pada praktikum ini kita akan mencoba melakukan data imputation terhadap data yang hilang (*missing value*). Dataset yang digunakan adalah dataset Titanic.

## Langkah 0 - Persiapan <a href="#langkah-0-persiapan" id="langkah-0-persiapan"></a>

Lakukan import library yang dibutuhkan.

```python
import pandas as pd
import numpy as np
```

## Langkah 1 - Memuat Data <a href="#langkah-1-memuat-data" id="langkah-1-memuat-data"></a>

Lakukan loading data Titanic pada notebook.

```python
df = pd.read_csv('Titanic-Dataset.csv')

# Tampilkan 5 data teratas
df.head()
```

## Langkah 2 - Inspeksi Data <a href="#langkah-2-inspeksi-data" id="langkah-2-inspeksi-data"></a>

Anda dapat melakukan inspeksi singkat pada data untuk mendapatkan informasi ringkas yang diperlukan seperti pada [Langkah 2 - Inspeksi Data](https://polinema.gitbook.io/jti-modul-praktikum-pembelajaran-mesin-mah/js02-pemahaman-data-dan-pra-pengolahan-data/praktikum-1#langkah-2-inspeksi-data).

## Langkah 3 - Data Imputation <a href="#langkah-3-data-imputation" id="langkah-3-data-imputation"></a>

Pada langkah ini kita akan melakukan imputasi terdapat data yang hilang pada "Age", "Cabin", dan "Embarked".

Strategi yang akan kita gunakan adalah,

* "Age" → Dikarenakan "Age" adalah data nominal, maka kita akan menggunakan strategi mean.
* "Cabin" → "Cabin" merupakan informasi terkait dengan nomor kabin penumpang. Disini kita akan berasumsi bahwa, seluruh penumpang yang tidak memiliki nomor kabin, merupakan penumpang yang tinggal di dek-dek kapal. Sehingga kita akan mensubtitusi data yang hilang dengan informasi "DECK".
* "Embarked" → "Embarked" merupakan informasi lokasi embarkasi penumpang. Hanya ada 2 data yang hilang disini. Dikarenakan data merupakan data nominal, maka kita dapat menggunakan modus (mode) untuk mensubtitusi data yang hilang.

```python
# Age - mean
df['Age'].fillna(value=df['Age'].mean(), inplace=True)

# Cabin - "DECK"
df['Cabin'].fillna(value="DECK", inplace=True)

# Embarked - modus
df['Embarked'].fillna(value=df['Embarked'].mode, inplace=True)
```

## Langkah 4 - Validasi Hasil <a href="#langkah-4-validasi-hasil" id="langkah-4-validasi-hasil"></a>

Lakukan pengecekan kembali dengan `df.info()`. Selanjutnya, kita juga dapat memastikan kembali apakah nilai yang diisikan sudah benar dengan melakukan pencekan data secara langsung. Hasil dari proses imputasi adalah sebagai berikut,

<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%252FU6ME7cO5JaWTScpS1kPQ%252Fsliced.png%3Falt%3Dmedia%26token%3D4cd74059-777e-421c-910b-cf10d34557ab&#x26;width=768&#x26;dpr=4&#x26;quality=100&#x26;sign=b9017ed1&#x26;sv=2" alt=""><figcaption></figcaption></figure>
