Komponen: Pengklusteran K-Means

Artikel ini menjelaskan cara menggunakan komponen Pengklusteran K-Means di perancang Azure Machine Learning untuk membuat model pengklusteran K-means yang tidak terlatih.

K-means adalah salah satu algoritma pembelajaran paling sederhana dan tanpa pengawasan yang paling banyak dikenal. Anda dapat menggunakan algoritma ini untuk berbagai tugas pembelajaran mesin, seperti:

  • Mendeteksi data abnormal.
  • Mengkluster dokumen teks.
  • Menganalisis himpunan data sebelum Anda menggunakan metode klasifikasi atau regresi lainnya.

Untuk membuat model pengklusteran, Anda:

  • Tambahkan komponen ini ke alur Anda.
  • Sambungkan himpunan data.
  • Atur parameter, seperti jumlah kluster yang Anda harapkan, metrik jarak yang digunakan dalam membuat kluster, dan sebagainya.

Setelah mengonfigurasi hyperparameters komponen, Anda menghubungkan model yang tidak terlatih ke Latih Model Pengklusteran. Karena algoritma K-means merupakan metode pembelajaran tanpa pengawasan, kolom label bersifat opsional.

  • Jika data Anda menyertakan label, Anda dapat menggunakan nilai label untuk memandu pemilihan kluster dan mengoptimalkan model.

  • Jika data Anda tidak memiliki label, algoritme akan membuat kluster yang mewakili kategori kemungkinan, hanya berdasarkan data.

Memahami pengklusteran K-means

Secara umum, pengklusteran menggunakan teknik iteratif untuk mengelompokkan kasus di himpunan data ke dalam kluster yang memiliki karakteristik serupa. Pengelompokan ini berguna untuk mengeksplorasi data, mengidentifikasi anomali dalam data, dan pada akhirnya untuk membuat prediksi. Model pengelompokan juga dapat membantu Anda mengidentifikasi hubungan dalam himpunan data yang mungkin tidak Anda dapatkan secara logis dengan menelusuri atau pengamatan sederhana. Untuk alasan ini, pengklusteran sering digunakan pada fase awal tugas pembelajaran mesin guna mengeksplorasi data dan menemukan korelasi yang tidak terduga.

Saat mengonfigurasi model pengklusteran dengan menggunakan metode K-means, Anda harus menentukan nomor target k yang menunjukkan jumlah sentroid yang Anda inginkan dalam model. Sentroid adalah titik yang mewakili masing-masing kluster. Algoritma K-means menetapkan setiap titik data masuk ke salah satu kluster dengan meminimalkan jumlah kuadrat dalam kluster.

Ketika memproses data pelatihan, algoritma K-means dimulai dengan serangkaian sentroid yang dipilih secara acak. Sentroid berfungsi sebagai titik awal untuk kluster dan menerapkan algoritma Lloyd untuk memperbaiki lokasinya secara berulang. Algoritma K-means menghentikan pembangunan dan penyempurnaan kluster ketika memenuhi satu atau beberapa kondisi ini:

  • Sentroid akan menstabilkan, yang berarti bahwa penugasan kluster untuk titik individu tidak lagi berubah dan algoritma telah dikonvergensi pada solusi.

  • Algoritma selesai menjalankan jumlah iterasi yang ditentukan.

Setelah menyelesaikan fase pelatihan, Anda menggunakan komponen Tetapkan Data ke Kluster untuk menetapkan kasus baru ke salah satu kluster yang Anda temukan dengan menggunakan algoritma K-means. Anda melakukan penetapan kluster dengan menghitung jarak antara kasus baru dan sentroid dari setiap kluster. Setiap kasus baru ditugaskan ke kluster dengan sentroid terdekat.

Konfigurasikan komponen Pengklusteran K-Means

  1. Tambahkan komponen Pengklusteran K-Means ke alur Anda.

  2. Tentukan bagaimana Anda ingin melatih model dengan mengatur opsi Buat mode pelatih.

    • Parameter Tunggal: Jika Anda mengetahui parameter persis yang ingin Anda gunakan dalam model pengklusteran, Anda dapat memberikan sekumpulan nilai tertentu sebagai argumen.
  3. Untuk Jumlah sentroid, ketik jumlah kluster yang Anda inginkan untuk memulai algoritma.

    Model ini tidak dijamin untuk menghasilkan jumlah kluster ini. Algoritma dimulai dengan jumlah titik data ini dan melakukan iterasi untuk menemukan konfigurasi optimal. Anda dapat merujuk ke kode sumber sklearn.

  4. Properti Inisialisasi digunakan untuk menentukan algoritma yang digunakan untuk menentukan konfigurasi kluster awal.

    • N Pertama: Beberapa jumlah awal titik data dipilih dari himpunan data dan digunakan sebagai rata-rata awal.

      Metode ini juga disebut metode Forgy.

    • Acak: Algoritma secara acak menempatkan titik data dalam kluster dan kemudian mengomputasi nilai rata-rata awal menjadi sentroid titik-titik yang ditetapkan secara acak dari kluster.

      Metode ini juga disebut metode partisi acak.

    • K-Means++ : Ini adalah metode default untuk menginisialisasi kluster.

      Algoritma K-means++ diusulkan pada tahun 2007 oleh David Arthur dan Sergei Vassilvitskii untuk menghindari pengklusteran yang buruk oleh algoritma K-means standar. K-means++ meningkatkan K-means standar dengan menggunakan metode yang berbeda untuk memilih pusat kluster awal.

  5. Untuk Benih angka acak, ketikkan nilai secara opsional agar digunakan sebagai benih untuk inisialisasi kluster. Nilai ini dapat memiliki efek yang signifikan pada pemilihan kluster.

  6. Untuk Metrik, pilih fungsi yang digunakan untuk mengukur jarak antara vektor kluster atau antara titik data baru dan sentroid yang dipilih secara acak. Azure Machine Learning mendukung metrik jarak kluster berikut:

    • Euclidean: Jarak Euclidean biasanya digunakan sebagai ukuran sebaran kluster untuk pengklusteran K-means. Metrik ini lebih disukai karena meminimalkan jarak rata-rata antara titik dan sentroid.
  7. Untuk Iterasi, ketikkan berapa kali algoritma harus melakukan iterasi pada data pelatihan sebelum menyelesaikan pemilihan sentroid.

    Anda dapat menyesuaikan parameter ini untuk menyeimbangkan akurasi terhadap waktu pelatihan.

  8. Untuk Menetapkan mode label, pilih opsi yang menentukan bagaimana kolom label, jika ada di kumpulan data, harus ditangani.

    Karena pengklusteran K-means adalah metode pembelajaran mesin tanpa pengawasan, label bersifat opsional. Namun, jika himpunan data Anda sudah memiliki kolom label, Anda bisa menggunakan nilai tersebut untuk memandu pemilihan kluster atau Anda bisa menentukan bahwa nilai diabaikan.

    • Kolom abaikan label: Nilai dalam kolom label diabaikan dan tidak digunakan dalam membangun model.

    • Mengisi nilai yang hilang: Nilai kolom label digunakan sebagai fitur untuk membantu membangun kluster. Jika ada baris yang tidak memiliki label, nilai tersebut akan diimputkan dengan menggunakan fitur lain.

    • Timpa dari yang paling dekat ke tengah: Nilai kolom label diganti dengan nilai label yang diprediksi, menggunakan label titik yang paling dekat dengan sentroid saat ini.

  9. Pilih opsi Normalisasi fitur, jika Anda ingin menormalkan fitur sebelum pelatihan.

    Jika Anda menerapkan normalisasi sebelum pelatihan, titik data akan dinormalisasi ke [0,1] oleh MinMaxNormalizer.

  10. Latih model.

    • Jika Anda mengatur Buat mode pelatih ke Parameter Tunggal, tambahkan himpunan data yang diberi tag dan latih model dengan menggunakan komponen Latih Model Pengklusteran.

Hasil

Setelah selesai mengonfigurasi dan melatih model, Anda memiliki model yang dapat digunakan untuk menghasilkan skor. Namun, ada beberapa cara untuk melatih model serta beberapa cara untuk melihat dan menggunakan hasilnya:

Mengambil rekam jepret model di ruang kerja Anda

Jika Anda menggunakan komponen Latih Model Pengklusteran:

  1. Pilih komponen Latih Model Pengklusteran dan buka panel bagian kanan.

  2. Pilih tab Outputs. Pilih ikon Daftarkan himpunan data untuk menyimpan salinan model terlatih.

Model yang disimpan mewakili data pelatihan pada saat Anda menyimpan model. Jika nanti Anda memperbarui data pelatihan yang digunakan dalam alur, data pelatihan tidak akan memperbarui model yang disimpan.

Lihat himpunan data hasil pengklusteran

Jika Anda menggunakan komponen Latih Model Pengklusteran:

  1. Klik kanan komponen Latih Model Pengklusteran.

  2. Pilih Visualisasikan.

Tips untuk menghasilkan model pengklusteran terbaik

Proses pemberian benih yang digunakan selama pengklusteran sudah diketahui dapat secara signifikan mempengaruhi model. Pemberian benih berarti penempatan awal titik menjadi sentroid potensial.

Misalnya, jika himpunan data berisi banyak outlier, dan outlier dipilih untuk memberi kluster benih, tidak ada titik data lain yang akan cocok dengan kluster tersebut, dan kluster tersebut bisa berupa database tunggal. Artinya, himpunan data hanya memiliki satu titik.

Anda dapat menghindari masalah ini dalam beberapa cara:

  • Ubah jumlah sentroid dan coba beberapa nilai benih.

  • Buat beberapa model, yang memvariasikan metrik atau melakukan iterasi lebih sering.

Secara umum, dengan model pengklusteran, ada kemungkinan bahwa konfigurasi tertentu akan menghasilkan serangkaian kluster yang dioptimalkan secara lokal. Dengan kata lain, kumpulan kluster yang dikembalikan oleh model hanya cocok dengan titik data saat ini dan tidak dapat diubah secara umum ke data lain. Jika Anda menggunakan konfigurasi awal yang berbeda, metode K-means mungkin menemukan konfigurasi yang berbeda dan lebih unggul.

Langkah berikutnya

Lihat set komponen yang tersedia untuk Azure Machine Learning.