Pengenalan_02 - ranggakd/Orange_Tutorial GitHub Wiki

Unsupervised Learning

Singkatnya Unsupervised Learning adalah pembelajaran mesin yang dilakukan tanpa adanya kelas / label dengan mengelompokkan data yang dinilai terdekat satu sama lain. Untuk penjelasan lebih lanjut dapat dilihat pada Medium berikut.

Hierarchical Clustering

Hierarchical Clustering di Orange dapat diakomodasi dengan widget Hierarchical Clustering. Untuk penjelasan konsep Hierarchical Clustering dapat dilihat di Medium berikut. Untuk melakukan pengelempokkan data berdasarkan fitur yang dimilikinya, pertama kita harus mencari dataset. Dataset dapat berasal dari dataset yang memiliki kelas (diperuntukkan untuk klasifikasi / regresi dalam supervised learning) ataupun dataset yang tak memiliki kelas (diperuntukkan untuk klustering).

Hierarchical Clustering Dataset Klasifikasi

Disini kita menggunakan dataset default yakni iris.tab. Sebenarnya menggunakan dataset klasifikasi untuk melakukan klustering tidaklah wajar karena di awal dataset telah memiliki kelas yang mana harusnya kosong agar kita dapat mengelompokkannya berdasarkan fitur-fitur yang ada dan bukan berdasarkan dari kelas yang ada. Namun, disini kita akan belajar mengenai hasil klustering tidak selalu sesuai dengan jumlah prediksi kelas pada awalnya. Berikut urutannya:

  1. Muat data dari widget File lalu cek info dengan menyalurkannya ke widget Data Info

    Pada keterangan Targets didapatkan bahwa ada 3 kelas bertipe kategorikal.

  2. Lalu salurkan channel dari File ke Distances. Defaultnya akan menghitung jarak per baris data (rows). Metode yang disediakan berada di drop-down, kalian sesuaikan kebutuhan kalian. Di kasus ini saya memilih Cosine Similarity atau Cosine.

  3. Setelah itu salurkan channel Distances ke Hierarchical Clustering.

    Pada jendela widget Hierarchical Clustering saya, menampilkan info seperti dibawah.

    Dimulai dari pojok kiri kebawah.

    • Linkage adalah cara penggabungan di Hierarchical Clustering, kalian bisa menggantinya sesuai kebutuhan kalian (karena kalimat ini sering ku sampaikan maka akan kusingkat jadi custom kedepannya).
    • Annotation adalah tambahan keterangan pada dendrogram kita yang terletak pada daun atau ujung kanan. Dalam kasus ini saya menggunakan kolom iris sebagai keterangan tambahannya dan tentu bisa kalian custom.
    • Pruning disini artinya kita memotong dendrogram sesuai kedalaman yang kita butuhkan saat data terlalu banyak dan dendrogram justru tak informatif sebagaimana harusnya.
    • Selection adalah pemilihan clustering dari hierarchical itu sendiri. Pilihan manual untuk kalian pilih sendiri dengan klik kiri pada cabang dendrogram dan klik kiri + tekan Ctrl untuk menambah cabang lain yang kita hendaki setelah memilih satu. Pilihan Heigh ratio berdasarkan rasio panjang keseluruhan dari dendrogram itu sendiri. Bisa kalian pilih dengan menarik garis dari sumbu vertikal atas atau bawah dan sesuaikan kebutuhan kalian. Pilihan Top N adalah memilih jumlah clustering dengan jumlah N tertinggi dan bisa kalian custom.
    • Zoom untuk menampilkan view dendrogram dengan tingkat kebesaran seberapa.
    • Output disini hasil dari pemilihan clustering akan dikeluarkan sebagai kolom dan peran apa. Bisa kalian custom dan di kasus ini saya masukkan ke class variable.
  4. Misal kita pilih sesuai skenario sebelumnya maka kita akan melihat 2 cluster (karena jarak segmen dendrogram terbesar). Lalu salurkan Hierarchical Clustering ke Data Table.

    Maka didapatkan hasil seperti berikut:

    Dimulai dari pojok kiri kebawah.

    • Info berisikan informasi dataset setelah di clustering. Instances adalah banyak baris data, features adalah banyak fitur data, outcomes adalah banyak kolom kelas dan meta adalah banyak indeks data. Kita fokus pada outcomes. Tertera info mengatakan bahwa terdapat dua kelas.
    • Variable berisikan mengenai pilihan keterangan pada dataset sehingga memudahkan kita dalam memandang dataset setelah di clustering. Bisa di custom dan pada kasus saya di cek semua.
    • Selection menunjukkan seleksi pada data hasil clustering dan bisa di custom.

    Jika kalian perhatikan, data ke-100 dan ke-101 berada dalam kelas cluster C2 (kolom Cluster) meskipun mereka berasal dari dua kelas berbeda di kolom iris. Ini menunjukkan paling tidak 2 hal. Pertama, data dengan kelas bawaan memiliki tiga label justru memiliki dua label saat di clustering. Kedua, informasi kedua kelas ini sebenarnya tak diharapkan dimana unsupervised learning hanya akan menghasilkan satu kelas (kelompok) karena tidak adanya kelas di awal. Kolom kelas ditunjukkan oleh kolom dengan warna abu-abu tergelap dan kolom meta ditunjukkan dengan waarna abu-abu terang, dalam kasus ini kolom kelas yakni iris dan Cluster.

  5. Kita akan membuat clustering data ini dengan visualisasi yang lebih baik. Pertama salurkan channel File ke Select Columns dan remove channel antara File ke Distances.

    Lalu pastikan kita mengabaikan kolom iris dengan menaruhnya ke dalam Available Variables seperti berikut

    Kemudian salurkan Select Columns ke Distances dan rapikan dengan klik icon abu-abu # pada pojok kiri bawah

    Dengan pilihan opsi yang tetap sama seperti sebelumnya, kita mendapatkan data clustering dengan visual yang lebih baik pada Data Table berdasarkan cluster yang terpilih sebelumnya. Kali ini kita hanya mendapatkan satu kelas diskrit berjumlah dua nilai.

Hierarchical Clustering Dataset Klustering

Disini kita menggunakan dataset clustering berekstensi csv. Berikut urutannya:

  1. Muat dataset kali ini dengan CSV File Import. Pilihlah lokasi file di direktorimu. Untuk mengeksplorasi, kalian dapat klik pada Import Options di pojok kiri bawah. Lalu salurkan ke Data Info.
  2. Lalu salurkan CSV File Import ke Distances dan pilih metode pencarian jarak yang kalian butuhkan.
  3. Salurkan channel Distances ke Hierarchical Clustering.

    Di kasus ini, Linkage adalah Ward, Selection adalah Top N=2 dan Output diletakkan sebagai Class variable.
  4. Salurkan Hierarchical Clustering ke Data Table untuk melihat hasil pengelompokkan berdasarkan cluster.

  5. Jika ingin visualisasi yang lebih baik bisa gunakan widget Scatter Plot dari Hierarchical Clustering. Di grafik hanya membatasi hubungan dua fitur atau kolom saja daripada hubungan keseluruhan fitur.

    Di widget ini kalin bisa melihat data hasil clustering dengan lebih baik. Kalian bisa menentukan sumbu X dan sumbu Y berdasarkan fitur atau kolom apa di Axis x dan Axis y berturut-turut seperti dibawah ini.

    Selain memilih sendiri secara manual, Orange menyediakan komputasi guna menentukan 2 hubungan fitur apa yang menunjukkan visualisasi terbaik yakni pada button Find Informative Projections. Klik tombol tersebut dan klik start.

    Jika kalian perhatikan hubungan fitur Channel dan Region, maka kalian akan mendapati bahwa mereka cukup terpisah dengan baik. Itulah mengapa penilaian mereka berada paling atas. Coba kita bandingkan dengan pemilihan terbawah seperti berikut.

    Terlihat bahwa pemisahan kedua cluster tak begitu baik dan sebagian besar berkumpul menjadi satu kesatuan.

Partitional Clustering

Partitional Clustering di Orange dapat diakomodasi dengan widget k-Means. Untuk penjelasan konsep Partitional Clustering dapat dilihat di Medium berikut. Untuk melakukan pengelempokkan data berdasarkan fitur yang dimilikinya, pertama kita harus mencari dataset. Dataset dapat berasal dari dataset yang memiliki kelas (diperuntukkan untuk klasifikasi / regresi dalam supervised learning) ataupun dataset yang tak memiliki kelas (diperuntukkan untuk klustering).

Partitional Clustering Dataset Klasifikasi

Disini kita menggunakan dataset default yakni iris.tab. Sama seperti hierarchical clustering, sebenarnya menggunakan dataset klasifikasi untuk melakukan klustering tidaklah wajar karena di awal dataset telah memiliki kelas yang mana harusnya kosong agar kita dapat mengelompokkannya berdasarkan fitur-fitur yang ada dan bukan berdasarkan dari kelas yang ada. Namun, disini kita akan belajar mengenai hasil klustering tidak selalu sesuai dengan jumlah prediksi kelas pada awalnya. Berikut urutannya:

  1. Muat data dari widget File lalu cek info dengan menyalurkannya ke widget Data Info

    Pada keterangan Targets didapatkan bahwa ada 3 kelas bertipe kategorikal.
  2. Lalu salurkan channel dari File ke k-Means. Disajikan jumlah kluster yang disediakan berupa Fixed (tetap) atau From ... to ... (jangkauan) yang dapat kalian sesuaikan kebutuhan. Di kasus ini saya memilih jangkauan dari jumlah K=2 hingga K=8. Selain itu kalian dapat melakukan kustomasi pada parameter Initialization. Dokumentasi lebih lengkap dapat kalian lihat pada link ini.

    Berdasarkan Silhouette Scores, jumlah k pada k-Means terbaik untuk data iris adalah 2. Ini bertentangan dengan pengetahuan awal kita dengan jumlah label pada kelas iris yakni 3.
  3. Setelah itu salurkan channel k-Means ke Data Table. Secara otomatis, widget akan memilih jumlah k dengan posisi tertinggi dari widget sebelumnya.

    Jika kalian perhatikan, data ke-57 dan ke-58 berada dalam kelas iris yang sama (Iris-versicolor) meskipun mereka berasal dari dua kelas cluster yang berbeda. Warna yang direpresentasikan pada Data Table berdasarkan kelas iris bukan berasal dari cluster. Kelas cluster masih berada dalam kolom meta yang ditandai warna kolom abu-abu lebih terang daripada kolom iris. Dari Info juga dapat dilihat masih terdapat kelas dengan 3 nilai atau label dan 2 atribut meta atau sebagai indeks.
  4. Kita akan membuat clustering data ini dengan visualisasi yang lebih baik. Pertama remove channel k-Means ke Data Table dan salurkan channel k-Means ke dua Select Columns seperti berikut. Pastikan salah satu link channel menyalurkan Centroids dari widget k-Means ke Select Columns.

    Untuk link channel data, pastikan kita mengabaikan kolom iris dengan menaruhnya ke dalam Available Variables dan menaruh kolom Cluster pada Target Variable seperti berikut

    Untuk link channel centroids, pastikan kita menaruh kolom Cluster pada Target Variable seperti berikut

    Kemudian salurkan kedua Select Columns ke Data Table dan rapikan dengan klik icon abu-abu # pada pojok kiri bawah

    Dengan pilihan opsi yang tetap sama seperti sebelumnya, kita mendapatkan data clustering dengan visual yang lebih baik pada Data Table berdasarkan cluster yang terpilih sebelumnya. Kali ini kita hanya mendapatkan satu kelas diskrit berjumlah dua nilai / label dan tambahan tabel untuk melihat data masing-masing centroid.

Partitional Clustering Dataset Klustering

Disini kita menggunakan dataset clustering berekstensi csv. Berikut urutannya:

  1. Muat dataset kali ini dengan CSV File Import. Pilihlah lokasi file di direktorimu. Untuk mengeksplorasi, kalian dapat klik pada Import Options di pojok kiri bawah. Lalu salurkan ke Data Info.
  2. Lalu salurkan CSV File Import ke Distances dan pilih metode pencarian jarak yang kalian butuhkan.
  3. Salurkan channel Distances ke Hierarchical Clustering.

    Di kasus ini, Linkage adalah Ward, Selection adalah Top N=2 dan Output diletakkan sebagai Class variable.
  4. Salurkan Hierarchical Clustering ke Data Table untuk melihat hasil pengelompokkan berdasarkan cluster.

Data Workflows

Setelah mencoba semua tutorial Data Workflow diatas, kalian dapat mengeksplorasi sendiri link dan widget lainnya untuk Unsupervised Learning.

Lanjut ke Supervised Learning >