Skip to content

emka.web.id

menulis pengetahuan – merekam peradaban

Menu
  • Home
  • Tutorial
  • Search
Menu

Apa itu Klasifikasi Data dengan Metode Feature Selection?

Posted on June 1, 2026

Pernah nggak kalian merasa pusing ngerjain klasifikasi data yang jumlahnya jutaan tapi hasilnya malah overfitting atau lemot banget? Kayaknya masalahnya ada di fitur yang nggak relevan atau kebanyakan “sampah” di data kalian. Dalam catatan belajar jadi Data Analis ini, kita bakal ngebedah metode feature selection secara mendalam biar proyek data kalian makin efisien.

Masalah klasifikasi data sepertinya udah jadi salah satu topik yang paling sering dibahas di komunitas data mining dan machine learning. Secara teknis, klasifikasi adalah proses buat nentuin label kategori dari data berdasarkan fitur-fitur yang ada. Nah, sebelum kalian masuk ke tahap klasifikasi, ada fase yang namanya pemilihan fitur atau feature selection yang krusial banget buat keberhasilan model kalian.

Tujuan utama dari feature selection adalah buat milih subset kecil dari fitur-fitur asli yang punya daya pembeda paling tinggi (highly discriminant). Kenapa ini penting? Soalnya sering kali data yang dikumpulin bukan dari ahlinya, jadi banyak fitur yang nggak nyambung sama label kelasnya. Fitur yang nggak relevan ini justru ngebikin akurasi makin ancur karena fenomena yang namanya overfitting. Dengan milih fitur yang pas, kalian bisa nurunin kompleksitas komputasi, ngebangun model yang lebih general, dan pastinya ngehemat penyimpanan data.

Kami bakal ngejelasin tiga model besar dalam pemilihan fitur ini:

Filter Models:

Model ini paling independen karena mereka ngevaluasi fitur tanpa butuh algoritma klasifikasi apapun. Mereka cuma ngeliat karakteristik umum dari data latih kalian, kayak jarak atau korelasi. Beberapa metrik populernya adalah:

Gini Index:

Digunain buat ngukur seberapa nggak seimbang nilai fitur di berbagai kelas. Rumusnya adalah

G(N)=1−∑i=1kpi2G(N) = 1 – \sum_{i=1}^{k} p_i^2

di mana pip_i adalah fraksi kelas yang sesuai sama nilai fitur tersebut. Semakin kecil nilainya, semakin kuat fitur itu dalam ngebedain kelas data.

Entropy dan Information Gain:

Ini ngukur tingkat ketidakpastian. Rumus entropi adalah

E=−∑i=1kpi⋅log⁡(pi)E = -\sum_{i=1}^{k} p_i \cdot \log(p_i)

Informasi yang didapet dari suatu fitur (Information Gain) diitung pake selisih entropi sebelum dan sesudah fitur itu diamati:

IG(fi,C)=H(fi)−H(fi|C)IG(f_i, C) = H(f_i) – H(f_i|C)

Fisher’s Index:

Ini ngukur rasio sebaran antar kelas dibanding sebaran di dalem kelas. Rumusnya:

F=∑j=1kpj⋅(μj−μ)2∑j=1kpj⋅σj2F = \frac{\sum_{j=1}^{k} p_j \cdot (\mu_j – \mu)^2}{\sum_{j=1}^{k} p_j \cdot \sigma_j^2}

, di mana μj\mu_j itu rata-rata fitur di kelas jj, dan σj\sigma_j adalah standar deviasinya.

Wrapper Models:

Berbeda sama filter, model ini justru nyelipin proses pemilihan fitur ke dalem algoritma klasifikasi. Mereka pake strategi kayak greedy search buat nyoba kombinasi fitur tertentu dan ngeliat akurasi prediksinya gimana. Emang sih hasilnya biasanya lebih akurat, tapi buat data yang gedenya sampe 1 juta baris, rasanya komputasinya bakal berat banget alias mahal.

Embedded Models:

Ini kayak jalan tengah yang cerdas.

Pemilihan fitur dilakuin barengan sama waktu pelatihan model (learning time).

Contoh paling populernya itu Lasso Regularization (L1L_1-norm).

Rumus penaltinya adalah penalty(w)=∑i=1m|wi|\text{penalty}(w) = \sum_{i=1}^{m} |w_i|.

Sifat keren dari Lasso ini adalah dia bisa ngebikin koefisien fitur yang nggak relevan jadi bener-bener nol, jadi fitur itu otomatis “terbuang” pas modelnya dilatih.

Buat kalian yang mau nyoba ngebangun sistem buat klasifikasi 1 juta nilai ujian mahasiswa di Python, gini caranya:

  1. Memuat Data Skala Besar: Gunakan library pandas buat nge-load data 1 juta baris kalian. Kalau memorinya nggak kuat, kalian bisa pake teknik chunking atau pake dask. Pastiin fitur kayak nilai harian, absen, dan durasi belajar mahasiswa udah masuk semua.
  2. Preprocessing dan Normalisasi: Bersihin data dari nilai yang kosong. Nilai ujian biasanya punya skala beda-beda, jadi gunain StandardScaler buat normalisasi supaya fiturnya setara.
  3. Menerapkan Filter Method (Information Gain): Gunakan SelectKBest dari scikit-learn dengan parameter mutual_info_classif. Ini bakal ngitung rumus Information Gain yang tadi kita bahas buat milih, misalnya, 10 fitur terbaik dari ratusan fitur mahasiswa yang kalian punya. Ini cocok buat data 1 juta baris karena itungannya relatif cepet.
  4. Menerapkan Embedded Method (Lasso): Kalian bisa pake model LogisticRegression(penalty='l1', solver='liblinear'). Secara teknis, model ini bakal ngejalanin optimasi dan ngebikin fitur-fitur yang nggak ngaruh ke nilai ujian mahasiswa punya bobot nol.
  5. Evaluasi dengan Cross-Validation: Jangan cuma percaya sama satu hasil. Bagi data kalian jadi beberapa subset (misal 5-fold) buat mastiin kalau pemilihan fitur kalian bener-bener stabil dan nggak cuma kebetulan doang.

Contoh dalam source code python:

import numpy as np
import pandas as pd
from sklearn.feature_selection import SelectKBest, mutual_info_classif
from sklearn.linear_model import LogisticRegression
from sklearn.preprocessing import StandardScaler

# ==========================================
# 1. SIMULASI DATASET SKALA BESAR
# ==========================================
print("Mengenerate 1 juta data mahasiswa...")
n_samples = 1000000
n_features = 10

# Simulasi 10 fitur (misal: Nilai Ujian, Absen, Durasi Belajar, dll)
np.random.seed(42)
X = np.random.rand(n_samples, n_features)
# Label: 1 (Lulus), 0 (Tidak Lulus)
y = np.random.randint(0, 2, n_samples)

# ==========================================
# 2. PREPROCESSING (SCALING)
# ==========================================
print("Melakukan scaling data...")
scaler = StandardScaler()
X_scaled = scaler.fit_transform(X)

# ==========================================
# 3. FILTER METHOD (Information Gain / Mutual Info)
# ==========================================
print("\n[Menjalankan Filter Method]")
# Catatan: mutual_info_classif pada 1 juta data asli bisa sangat memakan waktu.
# Untuk demo cepat, kita gunakan subsample 10.000 data khusus untuk kalkulasi skor IG.
subsample_idx = np.random.choice(n_samples, 10000, replace=False)

selector = SelectKBest(score_func=mutual_info_classif, k=5)
selector.fit(X_scaled[subsample_idx], y[subsample_idx])

# Transformasikan seluruh data (1 juta) ke 5 fitur terbaik
X_filter = selector.transform(X_scaled)
print("Indeks fitur terpilih (IG):", selector.get_support(indices=True))

# ==========================================
# 4. EMBEDDED METHOD (Lasso Regularization / L1)
# ==========================================
print("\n[Menjalankan Embedded Method]")
# Menggunakan C=0.1 untuk mendesak koefisien fitur tidak penting menjadi nol
lasso = LogisticRegression(penalty='l1', solver='liblinear', C=0.1, random_state=42)
lasso.fit(X_scaled, y)

# Mengambil indeks fitur yang koefisiennya tidak nol
important_features = np.where(lasso.coef_[0] != 0)[0]
print("Indeks fitur penting menurut Lasso:", important_features)

dimana dalam contoh diatas:

  • Skalabilitas Data Juta-an: Menggunakan library seperti scikit-learn dikombinasikan dengan numpy sangat efisien karena operasinya berbasis matriks teroptimasi (C-backend).
  • StandardScaler: Langkah krusial agar fitur yang memiliki skala angka besar tidak mendominasi perhitungan jarak atau penalti rumus regulerisasi Lasso.
  • Filter Method (Information Gain): Diimplementasikan melalui fungsi mutual_info_classif. Kode di atas dimodifikasi dengan teknik subsampling (10.000 data) saat menghitung skor. Langkah ini adalah trik nyata di industri agar komputasi 1 juta data tidak stuck atau memakan waktu berjam-jam, namun tetap representatif.
  • Embedded Method (Lasso): Menggunakan LogisticRegression dengan parameter penalty='l1'. Parameter C=0.1 bertindak sebagai pengontrol kekuatan regulerisasi. Semakin kecil nilai C, semakin agresif Lasso dalam memaksa koefisien fitur “sampah” menjadi bunder nol, sehingga otomatis mengeliminasi fitur tersebut saat model dilatih.

Memilih metode feature selection yang bener itu emang tantangan tersendiri, apalagi skalabilitas jadi isu utama pas datanya nyentuh angka jutaan. Kami melihat kalau kalian pake metode filter, prosesnya bakal jauh lebih sat-set dan gampang dibanding wrapper. Tapi kalau kalian butuh akurasi yang lebih nendang dan punya sumber daya komputasi yang oke, Embedded Models kayak Lasso sepertinya jadi pilihan yang paling bijak. Jangan lupa buat selalu ngecek korelasi antar fitur, karena fitur yang saling berhubungan erat (redundan) sebenernya nggak ngasih info baru dan cuma nambah beban model doang.

Sekian dulu ya pembahasan teknis dari kami. Memilih fitur itu seni sekaligus sains, jadi jangan bosen buat bereksperimen. Rekan-rekanita, terima kasih sudah membaca artikel ini sampai habis, yuk kita mulai simpulkan bareng-bareng kira-kira fitur mana nih yang paling ngebantu kalian buat dapet nilai ujian bagus!

Sumber: Agharwal, Charu C. 2015. Data Classification Algorithm and Methods. Penerbit: CRC Press.

Terbaru

  • Beli HP Bekas Flagship Oppo? Ini 3 Rekomendasi Terbaik yang Masih Gahar di 2026
  • Cuma 1 Jutaan! Ini 4 Rekomendasi HP POCO yang Performa Tetap Gila di 2026
  • Inilah Rekomendasi Laptop 5-6 Jutaan Paling Worth It di Pertengahan 2026, Spek Mewah Harga Ramah!
  • Inilah Deretan Smartphone Snapdragon 8s Gen 4 yang Bikin Kompetisi HP Menengah Atas Makin Panas!
  • Mengenal Otak di Balik AI: Apa Itu LLM dan Manfaatnya dalam Keseharian Kita Menurut Sebastian Raschka
  • Inilah Rahasia Spasi FF Salin Biar Nickname Kalian Makin Keren dan Unik Tanpa Aplikasi Tambahan
  • Rekomendasi HP Kamera Bagus 2-6 Jutaan Bulan Juli 2026
  • Cuma 2 Jutaan! Ini 6 Rekomendasi HP Paling Worth It Buat Multitasking dan Gaming Ringan
  • Rumor Galaxy Z Flip8 Jadi Seri Terakhir: Mengapa Samsung Mungkin Berhenti Bikin HP Lipat Clamshell?
  • Inilah Cara Registrasi Kartu SIM Pakai Verifikasi Biometrik Mulai 1 Juli 2026, Gak Bisa Lagi Pake Nomor Bodong!
  • Jangan Asal Lap! Inilah Cara Membersihkan Layar TV LED yang Benar Agar Tidak Rusak
  • Realme Narzo 100x 5G Segera Rilis: Baterai 8.000mAh, Layar 144Hz, dan Sertifikasi Militer
  • Waspada Penipuan Akun Mobile Legends: Kenali Pentingnya Marketplace Resmi dan Status PSE
  • Review DJI Osmo Pocket 4P: Kamera Saku Lensa Ganda yang Bikin Kamera Pro Kelihatan Ribet!
  • Samsung Bisa “AirDrop” ke iPhone? Cek Cara Pakai Fitur Quick Share Terbaru Ini!
  • Vivo X Fold 6 Bakal Masuk Indonesia? Speknya Gila, Baterai 7.000 mAh & Kamera 200 MP!
  • Bocoran iPhone Air 2: Akhirnya Apple Nggak Cuma Jual Tipis, Tapi Juga Baterai Awet dan Kamera Oke!
  • Google Search Console rilis fitur Social Media Property, bisa pantau TikTok & Instagram
  • Hati-hati! 22 Platform Digital Terancam Diblokir Pemerintah, Cek Daftar Hotel dan Maskapainya di Sini
  • Baterai 7.000mAh & Standar Militer, Inilah Moto G77 Power
  • Inilah Cara Shopee dan Meta Bikin Kalian Makin Gampang Dapat Cuan Afiliasi Instagram Tanpa Ribet
  • Gila Sih! Vivo Rilis HP Baterai 8.000 mAh di 2026, Nggak Perlu Ribet Bawa Powerbank Lagi?
  • Infinix Hot 70 vs Tecno Spark 50: Pilih Baterai Jumbo 7000 mAh atau Fast Charging 45W di Harga 2 Jutaan?
  • Gak Perlu HP Mahal buat Pake AI: Intip Fitur Canggih di Samsung Galaxy A37 dan A57 yang Bikin Hidup Lebih Gampang
  • Bocoran Galaxy Unpacked Juli 2026: Z Fold 8 & Z Flip 8 Bakal Fokus ke On-Device AI, Makin Canggih atau Cuma Gimmick?
  • Duel Tablet 2 Jutaan: ADVAN Tab Sketsa 3 vs itel VistaTab 30GT, Mana yang Lebih Worth It buat Kerja?
  • Review Asus ExpertBook PM5 G2: Laptop Bisnis Rasa AI, Ringan tapi Gak Kaleng-kaleng
  • Review Redmi Pad 2 9.7 4G: Tablet Murah yang Bisa Pakai Kartu SIM, Worth It Nggak?
  • Review JBL Quantum Series: Inilah Alasan Kenapa Audio Berkualitas Bisa Bikin Kamu Menang Main Game
  • Review Vivo Y500: HP Baterai Jumbo 8.100mAh yang Bikin Nggak Perlu Cari Colokan Lagi!
  • Deploy Nginx Rootful Container with Podman
  • How to Sandboxing Browser on Linux Desktop with Flatpak
  • How to Hardening Journald on Linux Server (Fedora/AlmaLinux)
  • Block Bad USB on Linux Server with USBGuard
  • How to Secure NetworkManager on Fedora/AlmaLinux
  • How to Automate Your Entire SEO Strategy Using a Swarm of 100 Free AI Agents Working in Parallel
  • How to create professional presentations easily using NotebookLM’s AI power for school projects and beyond
  • How to Master SEO Automation with Google Gemini 3.1 Flash-Lite in Google AI Studio
  • How to create viral AI video ads and complete brand assets using the Claude and Higgsfield MCP integration
  • How to Transform Your Mac Into a Supercharged AI Assistant with Perplexity Personal Computer
  • ChatGPT down hari ini Sabtu 25 Juli 2026, kok tiba-tiba error dan sampai jam berapa pulihnya?
  • Lagi rame dibahas, Ferran Torres punya pacar atau nggak sih? Ini rangkuman rumor asmaranya
  • Hati-hati, banyak beredar aplikasi FF Beta Testing 4.0 Nexa yang katanya bisa main tanpa OBB, asli atau cuma jebakan?
  • Info jadwal bank buka Sabtu Minggu Juli 2026, mending cek dulu sebelum jauh-jauh ke kantor cabang
  • Warga penasaran, Naykilla ternyata adik kandung Sara Fajira penyanyi Lathi, kok wajahnya beda banget?

©2026 emka.web.id | Design: Newspaperly WordPress Theme