def group_assignment(data,centroids):
grouping_vec_c = np.zeros(len(data))
for i in range(len(data)):
dist = np.zeros(len(centroids))
for j in range(len(centroids)):
dist[j] = np.linalg.norm(data[i] - centroids[j])
min_dist = min(dist)
for j in range(len(centroids)):
if min_dist == dist[j]:
grouping_vec_c[i] = j+1
return grouping_vec_c
#Fungsi group_assignment digunakan untuk memetakan setiap data ke
kelompok yang sesuai berdasarkan jarak terdekat dengan centroid.
#Fungsi ini menerima dua parameter, yaitu data dan posisi centroid
kelompok. Pada setiap iterasi, untuk setiap data, dilakukan
perhitungan jarak antara data tersebut dengan setiap centroid kelompok
menggunakan norma Euclidean.
#Jarak-jarak ini disimpan dalam array dist. Setelah itu, jarak
terdekat yang paling kecil diidentifikasi menggunakan fungsi min().
#Selanjutnya, pemetaan data dilakukan dengan mengassign nomor kelompok
(j+1) ke elemen grouping_vec_c berdasarkan indeks kelompok yang
memiliki jarak terdekat.
#Fungsi ini mengembalikan array grouping_vec_c yang berisi nomor
kelompok yang telah dipetakan untuk setiap data.
C:\Users\firman\anaconda3\lib\site-packages\sklearn\cluster\
_kmeans.py:870: FutureWarning: The default value of `n_init` will
change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly
to suppress the warning
warnings.warn(
C:\Users\firman\anaconda3\lib\site-packages\sklearn\cluster\
_kmeans.py:1382: UserWarning: KMeans is known to have a memory leak on
Windows with MKL, when there are less chunks than available threads.
You can avoid it by setting the environment variable
OMP_NUM_THREADS=1.
warnings.warn(
# Contoh data
X = np.concatenate([[0.3*np.random.randn(2) for i in range(100)],
[[1,1] + 0.3*np.random.randn(2) for i in range(100)], [[1,-1]+ 0.3*
np.random.randn(2) for i in range(100)]])
plt.xlim(-1.5, 2.5)
plt.ylim(-2, 2)
plt.show()
C:\Users\firman\anaconda3\lib\site-packages\sklearn\cluster\
_kmeans.py:870: FutureWarning: The default value of `n_init` will
change from 10 to 'auto' in 1.4. Set the value of `n_init` explicitly
to suppress the warning
warnings.warn(
C:\Users\firman\anaconda3\lib\site-packages\sklearn\cluster\
_kmeans.py:1382: UserWarning: KMeans is known to have a memory leak on
Windows with MKL, when there are less chunks than available threads.
You can avoid it by setting the environment variable
OMP_NUM_THREADS=2.
warnings.warn(
#kode di atas mengimpor modul KMeans dari library sklearn.cluster
untuk melakukan clustering menggunakan algoritma K-Means, serta modul
numpy untuk manipulasi array dan matplotlib.pyplot untuk membuat plot.
#Kode di atas membuat contoh data X dengan menggabungkan tiga kelompok
data. Setiap kelompok data terdiri dari 100 sampel, yang dihasilkan
dengan menggunakan distribusi normal dengan mean dan standar deviasi
tertentu.
#Kode di atas membuat objek KMeans dengan n_clusters=3, yang berarti
kita ingin mengelompokkan data menjadi tiga kelompok. Kemudian, metode
fit(X) dipanggil untuk melakukan clustering pada data X.
#Kode di atas mengambil label yang telah ditentukan oleh algoritma K-
Means untuk setiap sampel data. Setiap label mengidentifikasi kelompok
mana yang menjadi anggota dari sampel data tersebut.
#Kode di atas mengelompokkan data X berdasarkan label yang diberikan
oleh K-Means. Ini dilakukan dengan menggunakan list comprehension
untuk membuat kelompok-kelompok data baru berdasarkan labelnya.
#Kode di atas menampilkan scatter plot untuk setiap kelompok data.
Setiap kelompok direpresentasikan oleh warna dan simbol yang berbeda
dalam plot.
#Kode di atas menentukan batas sumbu x dan y pada plot agar data yang
ditampilkan sesuai dengan rentang yang diinginkan.
#Kode di atas menampilkan plot scatter setelah semua pengaturan
selesai dilakukan.