Skip to content

emka.web.id

writing knowledge, recording civilization

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

  • GNOME Founder Attacks Omarchy Founder as “Lazy, Racist, Ignorant”
  • Why I Stopped Using Plain Command Line Docker and Use Portainer 3.0 To Make My Home Projects Fun Again
  • Why I Switched to a Proper Firewall Box with OPNSense for My Homelab Stuff
  • Fixing Windows Error 0x80070005 Hyper-V Export Access Denied Error the Right Way
  • Fixing Hyper V Export Errors and Building a Better Virtual Machine Setup (error 0x80070002, 0x80070005)
  • Fixing the Dreaded Windows Audio Service Stuck on Stopping Error
  • Windows SIM Error, Unknown error 0xc1420127
  • How I’m Building a Cat Breeding Management App with Python Qt6 + Microsoft Litebox, in 1 Week
  • Why Windows Keeps Nuking Your GPU Drivers (And How to Take Back Control)
  • Copy Prompt: A Modern Men’s Casual Fashion Studio Shoot
  • Why I Finally Ditched Mainstream Windows Cleaners (And Why I Use ‘Kudu’ Instead)
  • AI Made Everything Faster, Including Bad Decisions
  • Raspberry Pi Desktop Available of PC and Mac, Based on Debian 13
  • Why I Stopped Yelling at My PC When Error; Getting Windows 11 Voice Isolation and Access to Actually Work
  • Berobat Kanker ke Malaysia: Berapa Biayanya dan Apa Saja yang Perlu Disiapkan?
  • Stop Sending Every Prompt to the Biggest AI Model You Can Find
  • Stop Building AI Agents from Scratch: My Pick for the Best Native Windows Setup
  • Jev Is Faster and Cheaper, But I Still Recommend Clef. Here’s Why.
  • Weird XCP-NG Bug or Feature? Enable Maintenance Mode = Host Not Enough Memory
  • Vinix OS: Another OS That Want to Beat Linux, Try it!
  • Trying NVX, An Ultra-Light Micro-VM Sandbox from Microsoft
  • Learning NocoDB from Scratch: Creating a Simple Greenhouse App
  • How RHEL 10.2 Quietly Turned Into an Absolute Security Beast
  • Grab Videos from Anywhere with ReClip (Can Running Locally)
  • Jumped onto Ubuntu 26.04 LTS? Here’s How to Add a New User Account
  • Tutorial Cara Install WPS Office di Linux (Alternatif Microsoft Office)
  • Tutorial Upgrade Server Ubuntu 24.04 LTS ke Ubuntu 26.04 LTS dengan Aman
  • Inilah Alasan kenapa akun TikTok dibatasi tidak bisa klaim koin dan masalah pembatasan lainnya?
  • Apa penyebab gagal kirim SMS ke 89888 padahal pulsa masih ada?
  • Mengenal Donghua: Kenapa Animasi dari Tiongkok Ini Lagi Naik Daun Banget
  • Canonical: Ubuntu coming soon to Snapdragon X2 Series platforms
  • Finally, wolfSSL adds post-quantum algorithms!
  • How to Run Gemma Embedding Models Using Docker
  • Deploy Nginx Rootful Container with Podman
  • How to Sandboxing Browser on Linux Desktop with Flatpak
  • Trying Nemotron 3.5 Super VL: NVIDIA’s Open Multimodal Model Built for Agents That Actually See and Act
  • Pruna AI Release their Qwen-Image 2.1 LoRA Adapter, 6x Faster than Regular Qwen
  • The Rise and Fall of the Coding Holy Grail: Is Stack Overflow Just AI Fuel Now?
  • Zyphra is The Pioneer, Why Everyone is Suddenly Obsessed with AMD and Not Just Nvidia Anymore
  • Stop Trusting Your Prompts to Save Your Business Data
  • Lagi rame dicari, ini bedanya Jenny Mod Minecraft Java sama Bedrock biar nggak salah download
  • Lagi rame istilah Blunder Lagi di TikTok sama Instagram, sebenernya apa sih artinya?
  • Info Demo Mahasiswa Jakarta Hari Ini 20 Oktober 2026: Lokasi, Jam, dan Tuntutan Terkait Dua Tahun Pemerintahan Prabowo-Gibran
  • Sering lewat di TikTok, ini arti istilah Oppa Gajima, Hajima, sampai ajakan makan ramyeon yang sebenarnya
  • Bingung jawab soal orientasi PPPK? Iki rangkuman materi Agenda 1 lan Manajemen ASN nggo referensi warga

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