Berdasarkan diagram ML workflow dibawah, tutorial akan fokus membahas langkah pertama yaitu data preparation.
Dalam data preparation termasuk proses data cleaning, menangani data outliers dan pemilihan feature. Proses-proses ini sering disebut juga feature engineering.

Berikut beberpa point penting tentang feature engineering:
- Menggunakan berbagai teknik, mengambil manfaat dari berbagai teknik dan tidak ada urutan baku.
- Umumnya spesifik terhadap masalah dan kondisi data. Problem dan data yang berbeda akan membutuhkan perlakuaan yang berbeda.
- Dibutuhkan logika dan kreatifitas dalam melakukan proses feature engineering.
- Pengetahuan di bidang yang berhubungan dengan data, sangat membantu proses feature engineering.
Scope dari Feature Engineering
- Feature Selection
- Feature Learning
- Feature Extraction
- Feature Combination
- Dimensionality Reduction
Feature Selection
Adalah proses memilih subset (yang relevant terhadap problem) dari set features yang ada, tanpa melakukan transformasi. Feature selection dapat dilakukan dalam kondisi:
Jika jumlah x-variables pada dataset cukup besar, dan ada x-variable yang nilai informasi yang rendah, sementara x-variable lainnya memiliki nilai infomasi tinggi dan x-variable yang memiliki nilai informasi tinggi independent terhadap yang lain, maka solusi Feature Selection dapat dilakukan.
Feature Learning
Menggunakan ML dalam menentukan feature dengan mempelajari data yang kompleks. Umumnya digunakan pada data image atau video. Metoda ML yang digunakan dapat supervised atau unsupervised learning.
Feature Extraction
Proses membuat feature turunan dari feature yang ada. Dilakukan jika feature yang ada saat ini sulit diinterpretasikan. Misalnya data rumah 2KT/1KM, di ekstrak menjadi 2 feature turunan yaitu Kamar_tidur: 2 dan Kamar_mandi: 1.
Feature Combination
Adalah proses menggabungkan feature yang telalu luas dan bila digabungkan akan meningkat kemampuan prediksi. Kebalikan dari feature extraction. Kembali menggunakan contoh data rumah, 2 Kamar Tidur dan 1 Kamar Utama, menjadi 3 Kamar Tidur.
Dimensionality Reduction
Umumnya pada real world problem, data mentah akan sangat kompleks. Dimensionaltiy reduction adalah pre-process untuk mendapatkan raw-feature. Bertujuan untuk mengurangi jumlah input feature, karena jumlah yang tepat tidak selalu harus banyak.
Dimensionality Reduction menggunakan Unsupervised ML karena umumnya data belum memiliki label. Teknik-teknik yang umum digunakan adalah: Principle Component Analysis, Manifold Learning, Latent Semantic Analysis, Autoencoding dan lainnya.