Pembelajaran Tanpa Pengawasan

Unsupervised Learning in Python

Benjamin Wilson

Director of Research at lateral.io

Pembelajaran tanpa pengawasan

  • Pembelajaran tanpa pengawasan menemukan pola dalam data
  • Mis., mengelompokkan pelanggan berdasarkan pembelian
  • Mengompresi data memakai pola pembelian (pengurangan dimensi)
Unsupervised Learning in Python

Terawasi vs tanpa pengawasan

  • Pembelajaran terawasi menemukan pola untuk tugas prediksi
  • Mis., mengklasifikasikan tumor sebagai jinak atau ganas (label)
  • Pembelajaran tanpa pengawasan menemukan pola dalam data
  • ... namun tanpa tugas prediksi tertentu
Unsupervised Learning in Python

Dataset iris

  • Pengukuran banyak tanaman iris
  • Tiga spesies iris:
    • setosa
    • versicolor
    • virginica
  • Panjang petal, lebar petal, panjang sepal, lebar sepal (fitur dataset)

Iris

1 https://scikit-learn.org/stable/modules/generated/sklearn.datasets.load_iris.html
Unsupervised Learning in Python

Array, fitur, & sampel

  • Array NumPy 2D
  • Kolom adalah pengukuran (fitur)
  • Baris mewakili tanaman iris (sampel)
Unsupervised Learning in Python

Data iris berdimensi 4

  • Sampel iris adalah titik di ruang 4 dimensi
  • Dimensi = jumlah fitur
  • Terlalu tinggi untuk divisualkan!
  • ... tapi pembelajaran tanpa pengawasan memberi wawasan
Unsupervised Learning in Python

Klastering k-means

  • Menemukan klaster sampel
  • Jumlah klaster harus ditentukan
  • Diimplementasikan di sklearn ("scikit-learn")
Unsupervised Learning in Python
print(samples)
[[ 5.   3.3  1.4  0.2]
 [ 5.   3.5  1.3  0.3]
 ...
 [ 7.2  3.2  6.   1.8]]
from sklearn.cluster import KMeans

model = KMeans(n_clusters=3)
model.fit(samples)
KMeans(n_clusters=3)
labels = model.predict(samples)

print(labels)
[0 0 1 1 0 1 2 1 0 1 ...]
Unsupervised Learning in Python

Label klaster untuk sampel baru

  • Sampel baru dapat ditetapkan ke klaster yang ada
  • k-means menyimpan rata-rata tiap klaster ("centroid")
  • Menemukan centroid terdekat untuk tiap sampel baru
Unsupervised Learning in Python

Label klaster untuk sampel baru

print(new_samples)
[[ 5.7  4.4  1.5  0.4]
 [ 6.5  3.   5.5  1.8]
 [ 5.8  2.7  5.1  1.9]]
new_labels = model.predict(new_samples)

print(new_labels)
[0 2 1]
Unsupervised Learning in Python

Scatter plot

  • Scatter plot panjang sepal vs panjang petal
  • Tiap titik mewakili satu sampel iris
  • Warnai titik berdasarkan label klaster
  • PyPlot (matplotlib.pyplot)

Scatter plot

Unsupervised Learning in Python

Scatter plot

import matplotlib.pyplot as plt

xs = samples[:,0] ys = samples[:,2]
plt.scatter(xs, ys, c=labels)
plt.show()
Unsupervised Learning in Python

Ayo berlatih!

Unsupervised Learning in Python

Preparing Video For Download...