Skip to main content

Features

Pada langkah keempat dalam Machine Learning Framework / Machine Learning Workflow, kita masuk ke bagian Features atau fitur data.

Setelah sebelumnya kita:

  1. mendefinisikan masalah,
  2. memahami data,
  3. menentukan bagaimana keberhasilan model diukur,

sekarang kita perlu menjawab pertanyaan:

"What do we already know about the data?"

atau:

"Apa yang sudah kita ketahui tentang data tersebut?"

Jawaban dari pertanyaan tersebut membantu kita memahami informasi apa saja yang dapat digunakan oleh Machine Learning untuk membuat prediksi.


Apa Itu Feature?

Feature adalah karakteristik, atribut, atau informasi yang terdapat pada data dan dapat digunakan oleh model Machine Learning untuk mempelajari pola.

Feature juga sering disebut:

  • feature variable,
  • input variable,
  • predictor,
  • atau independent variable.

Misalnya kita ingin memprediksi apakah seorang pasien memiliki penyakit jantung.

Dataset:

BeratJenis KelaminTekanan DarahDetak JantungPenyakit
65Laki-laki12075Tidak
80Laki-laki14590Ya
60Perempuan11872Tidak

Feature:

Berat
Jenis Kelamin
Tekanan Darah
Detak Jantung

Target:

Penyakit

Secara sederhana:

Features

Machine Learning Model

Target / Prediction

Feature dan Target

Dua istilah yang sangat penting untuk dibedakan adalah:

Feature
→ informasi yang digunakan untuk membuat prediksi

Target
→ sesuatu yang ingin diprediksi

Misalnya kita ingin memprediksi harga rumah.

LuasKamarKamar MandiLokasiHarga
10032Kota A700 jt
15042Kota A950 jt
20053Kota B1,4 M

Features:

Luas
Kamar
Kamar Mandi
Lokasi

Target:

Harga

Dalam Python menggunakan Pandas:

X = df[
[
"luas",
"kamar",
"kamar_mandi",
"lokasi"
]
]

y = df["harga"]

Konvensi yang umum digunakan:

X → Features
y → Target

Mengapa Feature Penting?

Machine Learning belajar berdasarkan informasi yang diberikan kepadanya.

Jika feature memiliki informasi yang relevan, model memiliki peluang lebih besar untuk menemukan pola yang berguna.

Contohnya kita ingin memprediksi harga rumah.

Feature:

Luas rumah
Jumlah kamar
Lokasi
Kondisi rumah

kemungkinan memiliki hubungan dengan:

Harga rumah

Sedangkan feature seperti:

Nomor baris dataset

belum tentu memiliki hubungan yang berarti dengan harga.

Karena itu, pemilihan feature merupakan bagian penting dalam Machine Learning.


Jenis-Jenis Feature

Secara umum, feature dapat memiliki berbagai bentuk.

Dalam pembahasan dasar ini, kita akan mengenal:

  1. Numerical Features
  2. Categorical Features
  3. Derived Features
  4. Features pada Unstructured Data

1️⃣ Numerical Features

Numerical Features adalah feature yang memiliki nilai numerik atau angka.

Contohnya:

Usia
Berat badan
Tinggi badan
Tekanan darah
Harga
Jumlah transaksi
Jarak
Suhu

Contoh dataset:

UsiaBeratTekanan Darah
2565120
3572130
4580145

Semua feature tersebut memiliki nilai angka.


✅ Contoh Numerical Features dalam Python

Misalnya:

X = df[
[
"usia",
"berat",
"tekanan_darah"
]
]

Model Machine Learning dapat menggunakan nilai tersebut untuk mempelajari hubungan dengan target.


✔️ Continuous dan Discrete Numerical Features

Numerical feature dapat memiliki karakteristik yang berbeda.

✅ Continuous

Nilainya dapat berada pada rentang tertentu dan memiliki nilai pecahan.

Contoh:

Berat = 65.5 kg
Tinggi = 172.4 cm
Suhu = 36.7 °C

✅ Discrete

Biasanya berupa nilai yang dapat dihitung.

Contoh:

Jumlah kamar = 3
Jumlah transaksi = 15
Jumlah anak = 2

Perbedaan ini penting untuk memahami karakteristik data, meskipun cara penggunaannya tetap bergantung pada model dan masalah yang dihadapi.


2️⃣ Categorical Features

Categorical Features adalah feature yang nilainya berupa kategori atau pilihan tertentu.

Contohnya:

Jenis kelamin
Status pernikahan
Status merokok
Jenis kendaraan
Kota
Jenis produk

Contoh:

Jenis KelaminStatus MerokokKota
Laki-lakiYaPalu
PerempuanTidakMakassar
Laki-lakiTidakManado

Feature tersebut tidak secara alami berupa angka.


✅ Contoh Categorical Feature

Misalnya:

jenis_kelamin

memiliki kategori:

Laki-laki
Perempuan

Atau:

status_merokok

memiliki kategori:

Ya
Tidak

Model Machine Learning tertentu tidak dapat langsung menggunakan string sebagai input numerik.

Karena itu categorical feature biasanya perlu diproses terlebih dahulu.


✔️ Encoding Categorical Features

Salah satu cara mengubah categorical feature menjadi angka adalah encoding.

Misalnya:

Laki-laki → 0
Perempuan → 1

atau:

Tidak → 0
Ya → 1

Contoh menggunakan Pandas:

df["merokok"] = df["merokok"].map({
"Tidak": 0,
"Ya": 1
})

Setelah itu:

Tidak → 0
Ya → 1

dapat digunakan sebagai representasi numerik.

Namun, tidak semua categorical feature cocok menggunakan mapping sederhana.


✔️ One-Hot Encoding

Untuk categorical feature dengan banyak kategori, kita sering menggunakan One-Hot Encoding.

Misalnya:

Kota:
Palu
Makassar
Manado
Jakarta

Dapat diubah menjadi:

Kota_PaluKota_MakassarKota_ManadoKota_Jakarta
1000
0100
0010
0001

Contoh menggunakan Pandas:

df_encoded = pd.get_dummies(
df,
columns=["kota"]
)

Dalam workflow Machine Learning yang lebih lanjut, encoding juga dapat dilakukan menggunakan transformer dari Scikit-learn agar preprocessing training dan data baru konsisten.


3️⃣ Derived Features

Feature tidak selalu harus berasal langsung dari kolom asli.

Kita dapat membuat feature baru berdasarkan informasi yang sudah tersedia.

Feature yang dibuat dari feature lain sering disebut Derived Feature.

Proses membuat atau mengubah feature disebut:

Feature Engineering


✔️ Contoh Feature Engineering

Misalnya kita memiliki tanggal kunjungan pasien:

tanggal_kunjungan

Kita dapat membuat feature:

sudah_berkunjung_tahun_ini

dengan nilai:

True
False

Contoh:

df["sudah_berkunjung_tahun_ini"] = (
df["jumlah_kunjungan_tahun_ini"] > 0
)

Sekarang kita memiliki informasi baru yang mungkin lebih mudah digunakan model.


✔️ Contoh Feature Engineering Lainnya

Dari:

tanggal_lahir

kita dapat membuat:

usia

Dari:

harga
jumlah

kita dapat membuat:

total_harga

Dari:

tanggal_transaksi

kita dapat membuat:

tahun
bulan
hari
hari_dalam_minggu

Dari:

berat
tinggi

kita dapat membuat:

BMI

Feature Engineering dapat membantu model memperoleh informasi yang lebih relevan.


✔️ Mengapa Feature Engineering Penting?

Data mentah tidak selalu berada dalam bentuk yang paling informatif untuk model.

Misalnya kita memiliki:

Tanggal lahir

Model mungkin lebih mudah menggunakan:

Usia

karena usia secara langsung menggambarkan karakteristik yang ingin digunakan.

Contoh lainnya:

Tanggal transaksi

dapat diubah menjadi:

Bulan transaksi
Hari transaksi
Hari dalam minggu

Informasi tersebut mungkin membantu model menemukan pola tertentu.


4️⃣ Features pada Unstructured Data

Feature tidak hanya terdapat pada data berbentuk tabel.

Gambar, teks, audio, dan video juga memiliki informasi yang dapat digunakan sebagai feature.

Namun feature pada data tidak terstruktur biasanya tidak langsung terlihat sebagai kolom.


✔️ Contoh Feature pada Gambar

Misalnya kita ingin membuat model untuk mengenali gambar anjing.

Gambar:

Foto anjing

Pola visual

Features

Model

Prediksi

Informasi visual yang dapat membantu model antara lain:

Bentuk
Tekstur
Warna
Pola
Tepi objek
Struktur tubuh

Pada pendekatan computer vision modern, neural network dapat belajar representasi fitur tersebut secara otomatis dari data.


✔️ Feature pada Teks

Misalnya kita ingin menentukan apakah sebuah review pelanggan memiliki sentimen positif atau negatif.

Teks:

"Produknya sangat bagus dan pengirimannya cepat."

Teks tersebut perlu diubah menjadi representasi yang dapat diproses model.

Secara sederhana:

Teks

Token / Representasi

Numerical Features

Model

Sentiment

Dalam Natural Language Processing modern, representasi dapat dipelajari menggunakan model seperti neural network atau transformer.


Feature Coverage

Selain mengetahui jenis feature, kita juga harus memperhatikan feature coverage.

Feature coverage berkaitan dengan seberapa lengkap sebuah feature tersedia pada seluruh sampel dalam dataset.

Misalnya kita memiliki 100 pasien.

Feature:

berat_badan

tersedia pada:

100 dari 100 pasien

Maka coverage:

100%

Sedangkan feature:

makanan_favorit

hanya tersedia pada:

10 dari 100 pasien

Maka coverage:

10%

Feature dengan coverage sangat rendah perlu dipertimbangkan kembali.


Complete Feature Coverage

Jika sebuah feature tersedia untuk seluruh sampel, kita dapat menyebutnya memiliki complete feature coverage.

Contoh:

PasienUsiaBeratTekanan Darah
A2565120
B3572130
C4580145
D5085150

Semua pasien memiliki:

Usia
Berat
Tekanan Darah

Maka ketiga feature tersebut memiliki coverage penuh pada dataset tersebut.


Feature Coverage yang Rendah

Sekarang lihat contoh:

PasienUsiaBeratMakanan Favorit
A2565Nasi
B3572-
C4580-
D5085-

Feature:

Makanan Favorit

hanya tersedia untuk sebagian kecil data.

Jika feature tersebut hanya tersedia pada 10 dari 100 sampel:

Coverage = 10%

Kita perlu mempertimbangkan apakah feature tersebut layak digunakan.


Apa yang Dilakukan Jika Feature Banyak Missing Value?

Ada beberapa pilihan.

Pilihan 1 - Menghapus Feature

Jika sebuah feature memiliki terlalu banyak data kosong dan tidak terlalu penting, kita dapat menghapusnya.

Contoh:

df = df.drop(
columns=["makanan_favorit"]
)

Pilihan 2 - Mengumpulkan Data Tambahan

Jika feature sangat penting, kita dapat mencoba memperoleh data yang lebih lengkap.

Misalnya:

Feature penting

Coverage hanya 20%

Kumpulkan data tambahan

Coverage meningkat

Pilihan 3 - Mengisi Missing Value

Jika sesuai dengan karakteristik data, missing value dapat ditangani menggunakan teknik imputasi.

Contoh sederhana:

df["berat"] = df["berat"].fillna(
df["berat"].median()
)

Namun imputasi harus dilakukan dengan hati-hati agar tidak menyebabkan data leakage dan tetap konsisten antara training dan data baru.

Pembahasan missing value dan preprocessing akan dibahas lebih mendalam pada materi preprocessing.


Feature Coverage dan Kualitas Model

Feature coverage dapat memengaruhi kualitas data yang diberikan kepada model.

Misalnya:

Feature A
Coverage = 100%

Feature B
Coverage = 95%

Feature C
Coverage = 20%

Feature C mungkin bermasalah jika model sangat bergantung pada informasi tersebut.

Namun coverage bukan satu-satunya faktor penentu apakah sebuah feature bagus atau buruk.

Kita juga perlu mempertimbangkan:

  • relevansi,
  • kualitas,
  • distribusi,
  • hubungan dengan target,
  • missing value,
  • dan risiko data leakage.

Feature yang Tidak Relevan

Tidak semua feature harus digunakan.

Misalnya dataset:

IDUsiaLuas RumahKamarHarga
001301003700 jt
002401504950 jt
003351203800 jt

Kita ingin memprediksi:

Harga

Feature yang mungkin relevan:

Usia
Luas Rumah
Kamar

Sedangkan:

ID

biasanya hanya identifier.

Kita perlu mengevaluasi apakah ID memang memiliki informasi yang berguna atau justru hanya menambahkan noise.


Data Leakage pada Features

Salah satu hal yang sangat penting ketika memilih feature adalah menghindari data leakage.

Data leakage terjadi ketika informasi yang seharusnya tidak tersedia pada saat prediksi masuk ke dalam feature.

Contoh kita ingin memprediksi:

Apakah pelanggan akan berhenti berlangganan?

Kita menggunakan feature:

Jumlah komplain
Lama berlangganan
Jumlah transaksi

Ini masuk akal.

Tetapi jika kita memasukkan:

tanggal pelanggan berhenti

maka terjadi masalah.

Informasi tersebut baru diketahui setelah pelanggan benar-benar berhenti.

Model mendapatkan informasi yang seharusnya tidak tersedia ketika prediksi dilakukan.


Prinsip Menghindari Data Leakage

Tanyakan:

"Apakah informasi ini benar-benar tersedia pada saat model membuat prediksi?"

Jika jawabannya tidak, feature tersebut seharusnya tidak digunakan.

Secara sederhana:

Informasi tersedia sebelum prediksi

Bisa

Informasi baru diketahui setelah kejadian

Jangan gunakan

Feature Selection

Setelah memahami feature, kita dapat melakukan Feature Selection.

Feature Selection adalah proses memilih feature yang paling relevan untuk digunakan oleh model.

Misalnya dataset memiliki:

100 kolom

Setelah dianalisis, mungkin hanya:

20 feature

yang benar-benar berguna.

Tujuannya dapat mencakup:

  • mengurangi noise,
  • mengurangi kompleksitas,
  • mempercepat training,
  • mengurangi risiko overfitting,
  • meningkatkan interpretabilitas.

Feature selection akan dibahas lebih mendalam pada materi Feature Engineering.


Contoh Analisis Features dengan Pandas

Misalnya kita memiliki dataset pasien:

import pandas as pd

df = pd.read_csv("pasien.csv")

Kita dapat melihat daftar kolom:

print(df.columns)

Melihat tipe data:

print(df.dtypes)

Melihat jumlah missing value:

print(df.isna().sum())

Melihat persentase missing value:

missing_percentage = (
df.isna().mean() * 100
)

print(missing_percentage)

Kita juga dapat melihat jumlah nilai unik:

print(df.nunique())

Informasi tersebut membantu memahami karakteristik feature sebelum modeling.


Contoh Memisahkan Features dan Target

Misalnya dataset:

usia
berat
tekanan_darah
detak_jantung
penyakit

Target:

penyakit

Kita dapat menulis:

X = df.drop(
columns=["penyakit"]
)

y = df["penyakit"]

Sekarang:

X
→ seluruh feature

y
→ target

Kita dapat memeriksa bentuknya:

print(X.shape)
print(y.shape)

Contoh Workflow Features

Dalam proyek nyata, tahap Features dapat terlihat seperti:

Dataset

Identifikasi kolom

Pisahkan feature dan target

Identifikasi numerical feature

Identifikasi categorical feature

Periksa missing value

Periksa feature coverage

Hapus feature tidak relevan

Feature Engineering

Encoding

Feature Selection

Modeling

Tidak semua proyek membutuhkan seluruh tahapan tersebut.

Kebutuhan feature processing bergantung pada dataset dan algoritma yang digunakan.


Contoh Kasus Lengkap

Misalnya kita ingin memprediksi apakah pasien memiliki risiko penyakit jantung.

Dataset awal:

UsiaBeratJenis KelaminMerokokDetak JantungPenyakit
4580Laki-lakiYa90Ya
3260PerempuanTidak72Tidak
6185Laki-lakiYa95Ya

Kita dapat mengidentifikasi:

Numerical Features

Usia
Berat
Detak Jantung

Categorical Features

Jenis Kelamin
Merokok

Target

Penyakit

Kemudian categorical feature dapat diproses:

Jenis Kelamin

Encoding

Merokok

Encoding

Setelah preprocessing:

Numerical Features
+
Encoded Categorical Features

X

Machine Learning Model

y

Cara Berpikir dalam Memilih Feature

Jangan hanya bertanya:

"Kolom apa yang tersedia?"

Tetapi tanyakan:

"Kolom mana yang memberikan informasi yang relevan terhadap masalah?"

Kemudian:

"Apakah informasi tersebut tersedia saat prediksi dilakukan?"

Dan:

"Apakah datanya cukup lengkap dan berkualitas?"

Cara berpikir ini jauh lebih penting daripada sekadar memasukkan seluruh kolom ke dalam model.


Checklist Features

Sebelum melanjutkan ke tahap modelling, periksa:

□ Apa saja feature yang tersedia?
□ Apa target variable?
□ Mana numerical features?
□ Mana categorical features?
□ Apakah ada feature yang tidak relevan?
□ Apakah terdapat missing value?
□ Bagaimana feature coverage?
□ Apakah terdapat feature dengan coverage sangat rendah?
□ Apakah diperlukan feature engineering?
□ Apakah categorical feature perlu encoding?
□ Apakah terdapat data leakage?
□ Apakah ada feature yang dapat dihapus?
□ Apakah feature sudah sesuai dengan tujuan proyek?

Ringkasan

Features adalah informasi atau karakteristik data yang digunakan oleh Machine Learning untuk membuat prediksi.

Hubungan sederhananya:

Features

Model

Target / Prediction

Jenis feature yang umum:

Features

├── Numerical
│ └── Data berupa angka

├── Categorical
│ └── Data berupa kategori

├── Derived Features
│ └── Feature hasil Feature Engineering

└── Features dari Unstructured Data
├── Image
├── Text
├── Audio
└── Video

Selain jenis feature, kita juga perlu memperhatikan feature coverage.

Feature yang tersedia pada hampir seluruh atau seluruh sampel biasanya lebih mudah digunakan. Jika sebuah feature hanya tersedia pada sebagian kecil data, kita perlu mempertimbangkan apakah feature tersebut sebaiknya dihapus, dilengkapi datanya, atau ditangani menggunakan teknik preprocessing yang sesuai.

Hal penting lainnya adalah:

Tidak semua kolom adalah feature yang baik.

Feature harus:

  • relevan dengan masalah,
  • tersedia ketika prediksi dilakukan,
  • memiliki kualitas yang memadai,
  • dan tidak menyebabkan data leakage.

Pada tahap berikutnya, feature yang sudah dipahami akan digunakan dalam Modelling, yaitu proses memilih algoritma, membagi dataset, melatih model, melakukan prediksi, dan mengevaluasi performanya.