5 Algoritma Machine Learning Paling Sering Digunakan

  1. Regresi Linier

Konsep dasar: Regresi linier adalah algoritma statistika untuk memodelkan hubungan linear antara satu atau lebih variabel independen (fitur) dan variabel dependen (target). Dengan asumsi hubungan mendekati garis lurus, regresi linier berusaha menemukan persamaan garis terbaik $y = w_1 x + w_0$ yang meminimalkan selisih kuadrat antara prediksi dan data aktual. Secara sederhana, regresi linier digunakan untuk memprediksi nilai numerik berdasarkan variabel yang terkait.

  • Kelebihan: Mudah diinterpretasi dan dihitung, komputasi relatif cepat, serta baik untuk data dengan hubungan linear.
  • Kelemahan: Kurang akurat jika hubungan data non-linear atau jika terdapat outlier yang signifikan. Model ini juga sangat dipengaruhi oleh multikolineritas antar fitur dan asumsi homoskedastisitas (varian error konstan) tidak terpenuhi.
  • Kasus penggunaan: Prediksi harga rumah berdasarkan luas dan fitur lain, peramalan permintaan produk dari data historis, analisis tren pertumbuhan, dan masalah regresi sederhana lainnya. Contohnya, memprediksi pendapatan karyawan berdasarkan jam kerja dan pengalaman kerja.
  • Penjelasan teknis: Pada regresi linier satu variabel (univariat), model berupa $h_w(x) = w_1 x + w_0$. Parameter $w$ dicari dengan metode least squares, maximum likelihood, atau gradient descent untuk meminimalkan fungsi error (misalnya Mean Squared Error). Rumus error yang sering digunakan adalah $E(w)=\frac{1}{2N}\sum_{i=1}^N (h_w(x_i)-y_i)^2$. Untuk regresi multivariat, bentuk umumnya $h_w(\mathbf{x}) = w_0 + w_1 x_1 + \dots + w_m x_m$. Proses pelatihan mencari bobot $w$ hingga fungsi error minimum (biasanya melalui analisis matriks atau iterasi gradient descent).
from sklearn.linear_model import LinearRegression

import numpy as np




# Contoh data sederhana: hubungan linier antara X dan y

X = np.array([[1], [2], [3], [4], [5]])

y = np.array([2, 4, 5, 4, 5])  # target

model = LinearRegression()

model.fit(X, y)

prediksi = model.predict([[6]])

print("Koefisien:", model.coef_, "Intercept:", model.intercept_)

print("Prediksi untuk X=6:", prediksi)
  1. Regresi Logistik

Konsep dasar: Regresi logistik adalah algoritma klasifikasi biner yang memodelkan probabilitas suatu peristiwa (nilai target 0 atau 1) berdasarkan variabel input. Alih-alih memprediksi nilai numerik, regresi logistik menggunakan fungsi logistik (sigmoid) untuk mengubah kombinasi linier fitur menjadi nilai antara 0 dan 1. Hasil model ini dapat diartikan sebagai probabilitas anggota ke satu kelas, dan prediksi akhir (misalnya spam vs bukan spam) ditentukan dengan membandingkan probabilitas terhadap ambang batas (threshold).

  • Kelebihan: Menghasilkan probabilitas prediksi yang mudah diinterpretasi. Model relatif sederhana dan stabil untuk data berdimensi menengah. Cocok untuk masalah klasifikasi dengan output dua kelas dan sering digunakan sebagai baseline.
  • Kelemahan: Hanya model linear – tidak dapat memisahkan data yang tidak linier dengan baik. Kinerja menurun jika terdapat fitur yang sangat berkorelasi atau jika data tidak seimbang secara signifikan. Hasilnya juga sensitif terhadap outlier.
  • Kasus penggunaan: Banyak digunakan untuk klasifikasi binary seperti deteksi spam (email spam atau bukan), diagnosa medis (sakit vs sehat), prediksi churn pelanggan (berhenti berlangganan atau tidak), analisis kredit, dan pengklasifikasian gambar sederhana. Misalnya, memperkirakan probabilitas seorang pasien terkena penyakit berdasarkan faktor risiko.
  • Penjelasan teknis: Model menghitung fungsi linear $z = w_0 + w_1 x_1 + \dots + w_m x_m$ kemudian menerapkan fungsi sigmoid $\sigma(z)=\frac{1}{1+e^{-z}}$, menghasilkan nilai probabilitas antara 0–1. Parameter $w$ dilatih dengan maximum likelihood atau gradient descent agar memaksimalkan akurasi probabilitas. Fungsi kerugian yang umum adalah log loss (binary cross-entropy). Pada praktiknya, regresi logistik dapat diperluas ke regresi logistik multinomial (multi-class) dan sering digabung dengan teknik regularisasi (L1/L2) untuk mencegah overfitting.
from sklearn.linear_model import LogisticRegression

from sklearn.datasets import make_classification




# Buat data klasifikasi biner

X, y = make_classification(n_samples=100, n_features=2, n_redundant=0, random_state=0)

model = LogisticRegression()

model.fit(X, y)

print("Akurasi pada data pelatihan:", model.score(X, y))
  1. Decision Tree (Pohon Keputusan)

Konsep dasar: Decision tree adalah algoritma berbentuk struktur pohon yang membagi data berdasarkan pertanyaan bersyarat tentang fitur. Setiap simpul internal mewakili aturan (contoh: “Apakah umur > 30?”), dan setiap cabang mewakili hasil jawaban (ya atau tidak). Pohon keputusan memetakan contoh ke kelas atau nilai target dengan mengikuti cabang-cabang dari akar ke daun. Keunggulan utamanya adalah mudah dipahami dan divisualisasikan: keputusan dibuat berdasarkan aturan yang jelas, sehingga hasilnya transparan bagi manusia.

Ads Jadwal Training bisaioti Offline
NoMateriTanggalWaktuHargaLokasiViewAction
1IOT PLC SCADA Siemens7-8 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
2IOT PLC SCADA Omron14 - 15 Juni 202508.00 - 16.002000000SurabayaSilabusDaftar Sekarang
3IOT PLC SCADA Schneider21-22 Juni 202508.00 -16.002000000SurabayaSilabusDaftar Sekarang
4IOT PLC SCADA Allen Bradley28-29 Juni 202508.00-16.002000000SurabayaSilabusDaftar Sekarang
  • Kelebihan: Intuitif dan mudah diinterpretasi. Dapat menangani fitur numerik maupun kategorikal tanpa perlu banyak pra-pemrosesan. Secara alamiah mampu menangkap interaksi non-linier antar fitur.
  • Kelemahan: Pohon keputusan rawan overfitting jika tumbuh terlalu dalam (terlalu banyak cabang). Sulit mengeneralisasi jika data memiliki noise. Model cenderung tidak stabil: perubahan kecil di data bisa menghasilkan pohon yang sangat berbeda. Selain itu, pohon keputusan tunggal kurang akurat dibanding metode ensemble.
  • Kasus penggunaan: Umum dipakai untuk tugas klasifikasi dan regresi yang memerlukan interpretabilitas, seperti menentukan apakah pelanggan akan membeli produk, menilai risiko kredit, klasifikasi dokumen, atau diagnosa penyakit berdasarkan gejala. Contoh: mengklasifikasi jenis bunga iris berdasarkan ukuran sepal dan petal.
  • Penjelasan teknis: Algoritma membangun pohon dari atas ke bawah (top-down), memilih pada setiap langkah fitur dan titik pemisahan yang terbaik untuk membagi data menjadi subset lebih homogen. Kriteria pemisahan umum adalah Gini impurity atau information gain (berbasis entropi). Proses ini bersifat greedy: setiap simpul memilih aturan terbaik saat itu, lalu berlanjut secara rekursif hingga kondisi berhenti terpenuhi (misalnya kedalaman maksimum tercapai atau semua contoh dalam simpul memiliki label sama). Parameter utama meliputi kedalaman pohon, jumlah sampel minimum per daun, dan kriteria pemisahan. Selain itu, dapat dilakukan pruning untuk memangkas cabang-cabang kurang signifikan agar mengurangi overfitting.
from sklearn.datasets import load_iris

from sklearn.tree import DecisionTreeClassifier




iris = load_iris()

X, y = iris.data, iris.target

clf = DecisionTreeClassifier(max_depth=3, random_state=0)

clf.fit(X, y)

print("Feature importances:", clf.feature_importances_)
  1. Random Forest

Konsep dasar: Random forest adalah ensemble dari banyak pohon keputusan (decision tree) yang bekerja bersama untuk meningkatkan akurasi dan stabilitas model. Masing-masing pohon dilatih pada subset data berbeda (dengan bagging, sampling dengan pengembalian) dan subset fitur acak, sehingga tiap pohon cukup beragam. Hasil prediksi akhir diambil melalui voting mayoritas (untuk klasifikasi) atau rata-rata (untuk regresi) dari semua pohon. Dengan cara ini, random forest menurunkan risiko overfitting yang umum pada pohon tunggal sekaligus meningkatkan kinerja prediksi.

  • Kelebihan: Akurasi tinggi, lebih tahan terhadap overfitting, dan dapat menangani data berdimensi tinggi. Secara otomatis menyediakan perkiraan pentingnya fitur (feature importance) karena fitur dipilih secara acak di setiap pemisahan. Cenderung memberikan hasil baik di banyak jenis masalah tanpa penyetelan yang rumit.
  • Kelemahan: Interpretasi model menjadi sulit karena terdiri dari banyak pohon (tidak lagi setransparan pohon tunggal). Komputasi dan memori yang dibutuhkan lebih besar dibandingkan satu pohon, terutama jika jumlah pohon banyak dan data berukuran besar. Waktu latih dan prediksi bisa lebih lambat.
  • Kasus penggunaan: Digunakan secara luas dalam klasifikasi dan regresi, misalnya deteksi penipuan, sistem rekomendasi, prediksi penyakit, dan estimasi harga. Contoh: memprediksi apakah transaksi kartu kredit termasuk curang dengan memanfaatkan banyak faktor transaksi.
  • Penjelasan teknis: Random forest menerapkan metode bagging (Bootstrap Aggregating): tiap pohon dilatih dengan mengambil sampel acak (dengan penggantian) dari data pelatihan, sehingga mengurangi varians. Selain itu, pada setiap simpul pemisahan digunakan subset acak dari fitur untuk dipertimbangkan (biasanya √m fitur untuk klasifikasi, dengan m jumlah total fitur). Ini menjaga agar setiap pohon cukup berbeda. Parameter penting meliputi jumlah pohon (n_estimators), kedalaman maksimal, jumlah fitur yang dipertimbangkan per split, dan kriteria pembelahan. Hasil akhirnya menggabungkan suara semua pohon, yang secara empiris meningkatkan akurasi dan mengendalikan overfitting.
from sklearn.ensemble import RandomForestClassifier




rf = RandomForestClassifier(n_estimators=10, random_state=0)

rf.fit(X, y)  # menggunakan dataset iris X, y dari sebelumnya

print("Feature importances (Random Forest):", rf.feature_importances_)
  1. K-Means Clustering

Konsep dasar: K-means adalah algoritma clustering (unsupervised learning) yang membagi data tak berlabel ke dalam K kelompok berdasarkan kedekatan fitur. Algoritma ini sangat populer untuk segmentasi data karena sederhana dan efisien. Awalnya, K pusat awal (centroid) dipilih secara acak. Kemudian data dipetakan ke cluster terdekat berdasarkan jarak (biasanya Euclidean), dan centroid diperbarui sebagai rata-rata setiap cluster. Proses ini diulang hingga konvergen (centroid tidak berubah signifikan). Tujuan K-means adalah meminimalkan total jarak kuadrat antara titik data dan centroidnya.

  • Kelebihan: Cepat dan mudah diimplementasikan. Efektif untuk cluster yang berdistribusi bulat dan seragam. Banyak digunakan karena efisiensi komputasi dan kemudahan pengertian.
  • Kelemahan: Perlu menentukan jumlah K sebelumnya. Hanya menemukan cluster berbentuk bulat sejajar sumbu (tidak menangani bentuk cluster kompleks). Sensitif terhadap inisialisasi awal (dapat konvergen ke hasil lokal) dan outlier. Asumsi bahwa cluster memiliki ukuran dan kepadatan serupa.
  • Kasus penggunaan: Segmentasi pelanggan dalam pemasaran (mengelompokkan pelanggan berdasarkan karakteristik), kompresi warna pada pemrosesan gambar, analisis pasar saham, serta deteksi anomali (cluster kecil dianggap anomali). Contoh: membagi pengguna aplikasi menjadi beberapa kelompok berdasarkan pola penggunaan.
  • Penjelasan teknis: Algoritma K-means bekerja iteratif untuk meminimalkan fungsi objektif within-cluster sum of squares: ∑i=1K∑x∈Ci∥x−μi∥2\sum_{i=1}^K \sum_{x \in C_i} \|x – \mu_i\|^2 di mana $\mu_i$ adalah centroid cluster ke-$i$. Setiap iterasi melakukan dua langkah: (1) Assignment – tetapkan setiap titik data ke centroid terdekat; (2) Update – hitung ulang centroid setiap cluster sebagai rata-rata titik-titik yang terpasang. Langkah 1–2 diulangi hingga konvergen. Inisialisasi centroid yang baik (misalnya K-means++) sering digunakan untuk hasil lebih baik. Parameter utama adalah jumlah cluster K dan jumlah iterasi maksimal.
from sklearn.cluster import KMeans

from sklearn.datasets import make_blobs




# Contoh data clustering dengan 3 cluster

X_blobs, _ = make_blobs(n_samples=100, centers=3, n_features=2, random_state=0)

kmeans = KMeans(n_clusters=3, random_state=0)

labels = kmeans.fit_predict(X_blobs)

print("Centroid clusters:\n", kmeans.cluster_centers_)

 

Leave a Reply

Your email address will not be published. Required fields are marked *

Daftar Sekarang