Mengelompokkan Data Kustom Menggunakan Algoritma K-Means – Python – Menuju AI – Teknologi, Sains, dan Teknik Terbaik

Penulis: Jayashree domala

Pembelajaran mesin

Mengelompokkan Data Kustom Menggunakan Algoritma K-Means – Python

Panduan untuk memahami dan mengimplementasikan algoritma K-means menggunakan Python.

Sumber: Penulis

Apa itu algoritma pengelompokan K-Means?

Algoritme pengelompokan K-Means adalah algoritme pembelajaran tanpa pengawasan yang berarti tidak memiliki label target. Algoritme ini mengelompokkan cluster serupa.

Di mana pengelompokan digunakan di dunia nyata?

Berbagai aplikasi algoritma pengelompokan adalah:

Segmentasi pasar Pengelompokan pelanggan berdasarkan fitur Pengelompokan dokumen serupa

Bagaimana cara kerja algoritme?

Algoritme mengikuti langkah-langkah yang diberikan:

Pilih sejumlah cluster “K”. Kemudian setiap titik dalam data secara acak ditetapkan ke sebuah cluster. Ulangi langkah selanjutnya sampai cluster berhenti berubah:

a) Hitung centroid cluster dengan membuat vektor rata-rata titik dalam cluster, untuk setiap cluster.

b) Tetapkan setiap titik data ke kluster yang sentroidnya paling dekat.

Bagaimana cara memilih nilai “K”?

Sangat sulit untuk memilih nilai “K” terbaik. Tapi salah satu cara melakukannya adalah dengan metode siku. Menurut metode ini, jumlah kesalahan kuadrat (SSE) dihitung untuk beberapa nilai “K”. SSE adalah jumlah kuadrat jarak antara setiap titik data cluster dan pusatnya. Saat “k” diplot ke SSE, error berkurang saat “K” semakin besar. Alasannya adalah ketika jumlah cluster bertambah, ukurannya berkurang dan karena itu distorsi juga lebih kecil. Jadi metode elbow menyatakan bahwa nilai “K” akan menjadi nilai di mana SSE menurun secara tiba-tiba. Ini menghasilkan “efek siku”.

Bagaimana cara menerapkan menggunakan Python?

Dataset untuk pengelompokan akan dibuat. Menggunakan paket sci-kt learn, kumpulan data acak akan dibentuk di mana algoritme akan dijalankan.

→ Impor paket

Pustaka numpy diimpor untuk menangani data bersama dengan matplotlib untuk membantu visualisasi data.

>>> impor numpy sebagai np
>>> impor matplotlib.pyplot sebagai plt
>>>% matplotlib sebaris

→ Buat data

Metode “make_blobs” dari paket sklearn akan digunakan. Jumlah sampel, fitur, pusat dan standar deviasi cluster akan ditetapkan sebagai parameter.

>>> dari sklearn.datasets impor make_blobs >>> data = make_blobs (n_samples = 400, n_features = 2, center = 5, cluster_std = 1.8) >>> data[0].bentuk
(400, 2)

→ Merencanakan gumpalan

Plot sebar dari semua baris kolom pertama diplotkan terhadap semua baris kolom kedua. Kemudian label nomor cluster disediakan untuk melihat cluster yang berbeda.

>>> plt.scatter (data[0][:,0],data[0][:,1], c = data[1], cmap = ‘pelangi’)

Jadi di sini cluster terdistorsi dan tumpang tindih. Dengan menggunakan algoritma K-means, clustering akan dilakukan untuk mengelompokkan data dengan baik.

→ Bangun model

Modul KMeans diimpor dari sklearn untuk membangun model. Objek KMeans dibuat dan parameter ‘k’ diteruskan ke objek. Disini ada 5 cluster. Kemudian sesuai dengan data.

>>> dari sklearn.cluster import KMeans >>> model = KMeans (n_clusters = 5) >>> model.fit (data[0])
KMeans (n_clusters = 5)

Pusat cluster dan label yang diprediksi dapat diperoleh.

>>> model.cluster_centers_
Himpunan([[ 9.07898265, 5.31380282],
[ 0.09832752, 6.25299731],
[ 1.47946328, -1.483289 ],
[ 8.66272519, 0.43529401],
[ 6.1742668 , 2.5718236 ]]) >>> model.labels_
Himpunan([1, 3, 2, 1, 1, 2, 4, 4, 3, 1, 4, 2, 1, 2, 3, 0, 0, 0, 3, 0, 3, 0,
0, 3, 3, 4, 0, 0, 3, 0, 2, 4, 3, 2, 1, 1, 2, 4, 4, 0, 3, 4, 4, 2,
3, 1, 4, 3, 0, 0, 3, 0, 0, 3, 1, 0, 0, 0, 0, 0, 4, 3, 2, 1, 0, 3,
2, 1, 2, 1, 3, 1, 4, 1, 4, 0, 2, 4, 2, 2, 3, 3, 1, 3, 1, 2, 0, 3,
0, 3, 2, 0, 0, 1, 1, 0, 2, 2, 1, 4, 4, 1, 3, 1, 2, 2, 0, 1, 1, 1,
0, 4, 3, 1, 3, 3, 2, 4, 1, 0, 3, 0, 4, 2, 1, 0, 2, 1, 3, 3, 3, 2,
3, 3, 1, 1, 1, 3, 2, 0, 0, 2, 4, 1, 1, 0, 1, 0, 0, 0, 4, 1, 0, 0,
4, 2, 2, 0, 0, 2, 2, 3, 0, 4, 1, 1, 2, 4, 3, 0, 0, 0, 1, 0, 0, 1,
2, 1, 3, 2, 1, 0, 1, 3, 4, 4, 1, 1, 3, 3, 1, 3, 3, 4, 2, 3, 3, 2,
4, 0, 2, 2, 3, 3, 4, 2, 1, 1, 3, 0, 0, 3, 2, 3, 3, 2, 2, 0, 3, 2,
0, 3, 2, 4, 3, 0, 4, 4, 0, 3, 3, 1, 0, 0, 1, 0, 3, 1, 2, 2, 2, 2,
0, 3, 2, 4, 0, 4, 4, 4, 2, 0, 4, 1, 0, 3, 2, 3, 2, 2, 3, 1, 4, 0,
2, 3, 3, 4, 3, 1, 4, 2, 1, 0, 3, 2, 0, 4, 0, 3, 2, 2, 2, 4, 2, 2,
2, 1, 1, 0, 4, 1, 0, 2, 0, 4, 0, 1, 0, 1, 0, 3, 3, 1, 0, 2, 3, 0,
0, 4, 2, 3, 0, 1, 3, 4, 3, 3, 0, 1, 4, 2, 4, 4, 0, 0, 0, 1, 2, 1,
2, 4, 3, 0, 0, 4, 4, 1, 0, 3, 4, 2, 1, 3, 0, 0, 4, 1, 0, 4, 1, 4,
3, 0, 0, 2, 1, 3, 2, 2, 2, 3, 1, 1, 0, 1, 0, 4, 0, 0, 3, 3, 0, 3,
4, 1, 0, 3, 2, 3, 0, 0, 3, 1, 1, 2, 1, 4, 1, 3, 4, 4, 3, 3, 2, 2,
2, 0, 1, 3])

Di sini model telah memprediksi label dan karena menjadi algoritme pembelajaran tanpa pengawasan, jika data dunia nyata diambil, tidak akan ada label target untuk dibandingkan. Karena data dibuat di sini, label target dapat dibandingkan dengan label yang diprediksi untuk melihat seberapa baik algoritma K-Means bekerja.

>>> f, (ax1, ax2) = plt.subplots (1, 2, sharey = True, figsize = (10,6)) >>> ax1.set_title (‘K Berarti cluster’)
>>> ax1.scatter (data[0][:,0],data[0[:,1], c = model.labels_, cmap = ‘rainbow’) >>> ax2.set_title (“Cluster asli”)
>>> ax2.scatter (data[0][:,0],data[0][:,1], c = data[1], cmap = ‘pelangi’)

Dapat diamati bahwa algoritma K-Means membuat cluster yang lebih terdefinisi.

Lihat buku catatan di sini.

Hubungi saya: LinkedIn

Lihat pekerjaan saya yang lain: GitHub

Mengelompokkan Data Khusus Menggunakan K-Means Algorithm – Python awalnya diterbitkan di Towards AI on Medium, di mana orang-orang melanjutkan percakapan dengan menyorot dan menanggapi cerita ini.

Diterbitkan melalui Towards AI

Leave a Reply