Bagikan melalui


K-Berarti Pengklusteran

Penting

Dukungan untuk Studio Azure Machine Learning (klasik) akan berakhir pada 31 Agustus 2024. Sebaiknya Anda transisi ke Azure Machine Learning sebelum tanggal tersebut.

Mulai 1 Desember 2021, Anda tidak akan dapat membuat sumber daya Studio Azure Machine Learning (klasik) baru. Hingga 31 Agustus 2024, Anda dapat terus menggunakan sumber daya Pembelajaran Mesin Studio (klasik) yang ada.

ML Dokumentasi Studio (klasik) sedang berhenti dan mungkin tidak diperbarui di masa mendatang.

Mengonfigurasi dan menginisialisasi model pengklusteran K-means

Kategori: Pembelajaran Mesin / Inisialisasi Model / Pengklusteran

Catatan

Berlaku untuk: Azure Machine Learning Studio (klasik) saja

Modul seret dan letakkan serupa tersedia di perancang Azure Machine Learning.

Ringkasan Modul

Artikel ini menjelaskan cara menggunakan modul Pengklusteran K-Means di Machine Learning Studio (klasik) untuk membuat model pengklusteran K-means yang tidak terlatih.

K-means adalah salah satu algoritma pembelajaran tanpa pengawasan yang paling sederhana dan paling dikenal, dan dapat digunakan untuk berbagai tugas pembelajaran mesin, seperti mendeteksi data abnormal, pengklusteran dokumen teks, dan analisis himpunan data sebelum menggunakan metode klasifikasi atau regresi lainnya. Untuk membuat model pengklusteran, Anda menambahkan modul ini ke eksperimen Anda, menyambungkan himpunan data, dan mengatur parameter seperti jumlah kluster yang Anda harapkan, metrik jarak yang akan digunakan dalam membuat kluster, dan sebagainya.

Setelah Anda mengonfigurasi hyperparameter modul, sambungkan model yang tidak terlatih ke Latih Model Pengklusteran atau modul Sweep Clustering untuk melatih model pada data input yang Anda berikan. 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.

Tip

Jika data pelatihan Anda memiliki label, pertimbangkan untuk menggunakan salah satu metode klasifikasi yang diawasi yang disediakan dalam Pembelajaran Mesin. Misalnya, Anda dapat membandingkan hasil pengklusteran dengan hasil saat menggunakan salah satu algoritma pohon keputusan multikelas.

Memahami pengklusteran k-means

Secara umum, pengklusteran menggunakan teknik iteratif untuk mengelompokkan kasus dalam himpunan data ke dalam kluster yang berisi 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 menggunakan metode k-means, Anda harus menentukan nomor target k yang menunjukkan jumlah sentroid yang Anda inginkan dalam model. Sentroid adalah titik yang mewakili setiap kluster. Algoritma K-means menetapkan setiap titik data masuk ke salah satu kluster dengan meminimalkan jumlah kuadrat dalam kluster.

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

  • Sentroid stabil, yang berarti bahwa penetapan kluster untuk titik individu tidak lagi berubah dan algoritma telah berkonvergensi pada solusi.

  • Algoritma selesai menjalankan jumlah iterasi yang ditentukan.

Setelah menyelesaikan fase pelatihan, Anda menggunakan modul Tetapkan Data ke Kluster untuk menetapkan kasus baru ke salah satu kluster yang ditemukan oleh algoritma k-means. Penetapan kluster dilakukan dengan menghitung jarak antara kasus baru dan sentroid setiap kluster. Setiap kasus baru ditugaskan ke kluster dengan sentroid terdekat.

Cara mengonfigurasi Pengklusteran K-Means

  1. Tambahkan modul Pengklusteran K-Means ke eksperimen Anda.

  2. Tentukan bagaimana Anda ingin modul ini akan dilatih, 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.

    • Rentang Parameter: Jika Anda tidak yakin dengan parameter terbaik, Anda dapat menemukan parameter optimal dengan menentukan beberapa nilai dan menggunakan modul Sweep Clustering untuk menemukan konfigurasi optimal.

      Pelatih melakukan iterasi atas beberapa kombinasi pengaturan yang Anda berikan dan menentukan kombinasi nilai yang menghasilkan hasil pengklusteran yang optimal.

  3. Untuk Jumlah Sentroid, ketik jumlah kluster yang Anda inginkan untuk memulai algoritma.

    Model ini tidak dijamin menghasilkan jumlah kluster ini dengan tepat. Algoritma dimulai dengan jumlah titik data ini dan berulang untuk menemukan konfigurasi optimal, seperti yang dijelaskan di bagian Catatan Teknis .

    Jika Anda melakukan pembersihan parameter, nama properti berubah menjadi Rentang untuk Jumlah Sentroid. Anda dapat menggunakan Pembangun Rentang untuk menentukan rentang, atau Anda dapat mengetik serangkaian angka yang mewakili jumlah kluster yang berbeda untuk dibuat saat menginisialisasi setiap model.

  4. Properti Inisialisasi atau Inisialisasi untuk pembersihan 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 cara awal.

      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.

      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 ++ meningkat pada K-means standar dengan menggunakan metode yang berbeda untuk memilih pusat kluster awal.

    • K-Means++Fast: Varian algoritma K-means ++ yang dioptimalkan untuk pengklusteran yang lebih cepat.

    • Merata: Sentroid terletak sama antara satu sama lain di ruang d-Dimensi n titik data.

    • Gunakan kolom label: Nilai dalam kolom label digunakan untuk memandu pemilihan sentroid.

  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.

    Jika Anda menggunakan sapuan parameter, Anda dapat menentukan bahwa beberapa benih awal dibuat, untuk mencari nilai awal terbaik. Agar Jumlah benih yang akan disapu, ketik jumlah total nilai benih acak untuk digunakan sebagai titik awal.

  6. Untuk Metrik, pilih fungsi yang digunakan untuk mengukur jarak antara vektor kluster atau antara titik data baru dan sentroid yang dipilih secara acak. Pembelajaran Mesin 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.

    • Kosinus: Fungsi kosinus digunakan untuk mengukur kesamaan kluster. Kesamaan kosinus berguna dalam kasus di mana Anda tidak peduli dengan panjang vektor, hanya sudutnya.

  7. Untuk Perulangan, ketik berapa kali algoritma harus melakukan iterasi atas data pelatihan sebelum menyelesaikan pemilihan sentroid.

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

  8. Untuk Tetapkan mode label, pilih opsi yang menentukan bagaimana kolom label, jika ada dalam himpunan 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 dapat menggunakan nilai tersebut untuk memandu pemilihan kluster, atau Anda dapat 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. Latih model.

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

    • Jika Anda mengatur Buat mode pelatih ke Rentang Parameter, tambahkan himpunan data yang diberi tag dan latih model menggunakan Sweep Clustering. Anda dapat menggunakan model yang dilatih menggunakan parameter tersebut, atau Anda dapat mencatat pengaturan parameter yang akan digunakan saat mengonfigurasi pelajar.

Hasil

Setelah selesai mengonfigurasi dan melatih model, Anda memiliki model yang dapat Anda gunakan 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 modul Latih Model Pengklusteran

    1. Klik kanan modul Latih Model Pengklusteran:
    2. Pilih Model terlatih lalu klik Simpan sebagai Model Terlatih.
  • Jika Anda menggunakan modul Sweep Clustering untuk melatih model

    1. Klik kanan modul Sweep Clustering .
    2. Pilih Model Terlatih Terbaik lalu klik Simpan sebagai Model Terlatih.

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

Lihat representasi visual kluster dalam model

Bagan dihasilkan dengan menggunakan Analisis Komponen Utama, yang merupakan teknik dalam ilmu data untuk mengompresi ruang fitur model. Bagan menunjukkan beberapa set fitur, dikompresi menjadi dua dimensi, yang paling mencirikan perbedaan antara kluster. Dengan meninjau ukuran umum ruang fitur secara visual untuk setiap kluster dan berapa banyak kluster yang tumpang tindih, Anda bisa mendapatkan gambaran tentang seberapa baik performa model Anda.

Misalnya, bagan PCA berikut mewakili hasil dari dua model yang dilatih menggunakan data yang sama: yang pertama dikonfigurasi untuk menghasilkan dua kluster, dan yang kedua dikonfigurasi untuk menghasilkan tiga kluster. Dari bagan ini, Anda dapat melihat bahwa meningkatkan jumlah kluster tidak selalu meningkatkan pemisahan kelas.

Perbandingan kluster PCA

Tip

Gunakan modul Sweep Clustering untuk memilih set hiperparameter yang optimal, termasuk seed acak dan jumlah sentroid awal.

Lihat daftar titik data dan kluster tempat mereka berada

Ada dua opsi untuk menampilkan himpunan data dengan hasil, tergantung pada cara Anda melatih model:

  • Jika Anda menggunakan modul Sweep Clustering untuk melatih model

    1. Gunakan kotak centang dalam modul Sweep Clustering untuk menentukan apakah Anda ingin melihat data input bersama dengan hasilnya, atau lihat hasilnya saja.
    2. Saat pelatihan selesai, klik kanan modul, dan pilih Himpunan data hasil (nomor output 2)
    3. Klik Visualisasikan.
  • Jika Anda menggunakan modul Latih Model Pengklusteran

    1. Tambahkan modul Tetapkan Data ke Kluster dan sambungkan model terlatih ke input sebelah kiri. Sambungkan himpunan data ke input sebelah kanan.
    2. Tambahkan modul Konversi ke Himpunan Data ke eksperimen Anda dan sambungkan ke output Tetapkan Data ke Kluster.
    3. Gunakan kotak centang dalam modul Tetapkan Data ke Kluster untuk menentukan apakah Anda ingin melihat data input bersama dengan hasilnya, atau lihat hasilnya saja.
    4. Jalankan eksperimen, atau jalankan hanya modul Konversi ke Himpunan Data .
    5. Klik kanan Konversi ke Himpunan Data, pilih Himpunan data hasil, dan klik Visualisasikan.

Output berisi kolom data input terlebih dahulu, jika Anda menyertakannya, dan kolom berikut untuk setiap baris data input:

  • Penugasan: Penugasan adalah nilai antara 1 dan n, di mana n adalah jumlah total kluster dalam model. Setiap baris data hanya dapat ditetapkan ke satu kluster.

  • DistancesToClusterCenter no.n: Nilai ini mengukur jarak dari titik data saat ini ke sentroid untuk kluster. Kolom terpisah dalam output untuk setiap kluster dalam model terlatih.

    Nilai untuk jarak kluster didasarkan pada metrik jarak yang Anda pilih dalam opsi, Metrik untuk mengukur hasil kluster. Bahkan jika Anda melakukan pembersihan parameter pada model pengklusteran, hanya satu metrik yang dapat diterapkan selama pembersihan. Jika Anda mengubah metrik, Anda mungkin mendapatkan nilai jarak yang berbeda.

Memvisualisasikan jarak intra-kluster

Dalam himpunan data hasil dari bagian sebelumnya, klik kolom jarak untuk setiap kluster. Studio (klasik) menampilkan histogram yang memvisualisasikan distribusi jarak untuk titik dalam kluster.

Misalnya, histogram berikut menunjukkan distribusi jarak kluster dari eksperimen yang sama, menggunakan empat metrik yang berbeda. Semua pengaturan lain untuk sapuan parameter sama. Mengubah metrik menghasilkan jumlah kluster yang berbeda dalam satu model.

Histogram jarak kluster

Secara umum, Anda harus memilih metrik yang memaksimalkan jarak antara titik data di kelas yang berbeda, dan meminimalkan jarak dalam kelas. Anda bisa menggunakan cara yang telah dikomputasi dan nilai lain di panel Statistik untuk memandu Anda dalam keputusan ini.

Tip

Anda dapat mengekstrak cara dan nilai lain yang digunakan dalam visualisasi dengan menggunakan modul PowerShell untuk Azure Machine Learning.

Atau gunakan modul Jalankan Skrip R untuk menghitung matriks jarak kustom.

Tips untuk menghasilkan model pengklusteran terbaik

Diketahui bahwa proses penyemaian yang digunakan selama pengklusteran dapat secara signifikan memengaruhi model. Penyemaian berarti penempatan awal titik ke sentroid potensial.

Misalnya, jika himpunan data berisi banyak outlier, dan outlier dipilih untuk menyemai kluster, tidak ada titik data lain yang cocok dengan kluster tersebut dan kluster bisa menjadi singleton: yaitu, kluster dengan hanya satu titik.

Ada berbagai cara untuk menghindari masalah ini:

  • Gunakan sapuan parameter untuk mengubah jumlah sentroid dan mencoba beberapa nilai seed.

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

  • Gunakan metode seperti PCA untuk menemukan variabel yang memiliki efek merugikan pada pengklusteran. Lihat sampel Temukan perusahaan serupa untuk demonstrasi teknik ini.

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 digeneralisasikan ke data lain. Jika Anda menggunakan konfigurasi awal yang berbeda, metode K-means mungkin menemukan konfigurasi yang berbeda, mungkin lebih unggul.

Penting

Kami menyarankan agar Anda selalu bereksperimen dengan parameter, membuat beberapa model, dan membandingkan model yang dihasilkan.

Contoh

Untuk contoh bagaimana pengklusteran K-means digunakan dalam Pembelajaran Mesin, lihat eksperimen ini di Galeri Azure AI:

Catatan teknis

Mengingat jumlah kluster (K) tertentu yang akan ditemukan untuk sekumpulan titik data dimensi D dengan titik data N , algoritma K-means membangun kluster sebagai berikut:

  1. Modul menginisialisasi array K-by-D dengan sentroid akhir yang menentukan kluster K yang ditemukan.

  2. Secara default, modul menetapkan poin data K pertama untuk kluster K .

  3. Dimulai dengan set awal sentroid K , metode ini menggunakan algoritma Lloyd untuk secara berulang memperbaiki lokasi sentroid.

  4. Algoritma berakhir ketika sentroid stabil atau ketika sejumlah iterasi yang ditentukan selesai.

  5. Metrik kesamaan (secara default, jarak Euclidean) digunakan untuk menetapkan setiap titik data ke kluster yang memiliki sentroid terdekat.

Peringatan

  • Jika Anda meneruskan rentang parameter ke Latih Model Pengklusteran, rentang parameter hanya menggunakan nilai pertama dalam daftar rentang parameter.
  • Jika Anda meneruskan satu set nilai parameter ke modul Sweep Clustering , ketika mengharapkan rentang pengaturan untuk setiap parameter, ia mengabaikan nilai dan menggunakan nilai default untuk pelajar.
  • Jika Anda memilih opsi Rentang Parameter dan memasukkan nilai tunggal untuk parameter apa pun, nilai tunggal yang Anda tentukan akan digunakan di seluruh sapuan, bahkan jika parameter lain berubah di berbagai nilai.

Parameter modul

Nama Rentang Jenis Default Deskripsi
Jumlah Sentroid >=2 Bilangan bulat 2 Jumlah Sentroid
Metrik Daftar (subset) Metrik Bahasa Euclidean Metrik yang dipilih
Inisialisasi Daftar Metode inisialisasi sentroid K-Means++ Algoritma inisialisasi
Perulangan >=1 Bilangan bulat 100 Jumlah iterasi

Output

Nama Jenis Deskripsi
Model tak terlatih Antarmuka ICluster Model pengklusteran K-Means yang tidak terlatih

Pengecualian

Untuk daftar semua pengecualian, lihat Kode Kesalahan Modul Pembelajaran Mesin.

Pengecualian Deskripsi
Kesalahan 0003 Pengecualian terjadi jika satu atau beberapa input null atau kosong.

Lihat juga

Pengklusteran
Tetapkan Data ke Kluster
Melatih Model Pengklusteran
Menyapu Pengklusteran