Hubungi Kami × +
Nama

Email Address*

Pesan*


About

Berlatih K-Means Clustering dengan Scikit-Learn in Python [Google Colab]

K-means clustering adalah salah satu algoritma pembelajaran mesin tanpa pengawasan yang paling banyak digunakan yang membentuk kelompok data berdasarkan kesamaan antara instance data. Agar algoritma khusus ini berfungsi, jumlah cluster harus ditentukan sebelumnya. K dalam K-means mengacu pada jumlah cluster.
Pada latihan kali ini kita akan menggunakan data dari Kaggle yaitu data pengunjung sebuah mall fiktif. Dataset bisa kamu dapatkan pada tautan berikut. Setelah data kamu unduh, buka Google Colab dan masukkan dataset ke dalam environment Colab.
  1. Import Librarys
# Yang Pertama yaitu mengimport Library yang di butuhkan
# Yang Pertama yaitu mengimport Library yang di butuhkan
import pandas as pd
import matplotlib.pyplot as plt
%matplotlib inline
import seaborn as sns
2. Di cell selanjutnya kita ubah file csv kita ke dalam dataframe pandas dan menampilkan 3 baris pertama dari dataframe. Pastikan file csv Anda sudah dimasukkan ke dalam Colabs.

#Mengubah file csv menjadi dataframe
df =pd.read_csv("/content/Mall_Customers.csv")
# tammpilkan 5 baris pertama
df.head(5)
3. Kemudian kita akan melakukan sedikit preprocessing yaitu mengubah nama kolom agar lebih seragam. Lalu kolom gender adalah kolom kategorik, maka kita akan mengubah data tersebut menjadi data numerik.


# ubah namma kolom
df = df.rename(columns={'Gender''gender''Age''age','Annual Income (k$)'
'annual_income','Spending Score (1-100)''spending_score'})
# ubah data kategorik mmenjadi data numerik
df['gender'].replace(['Female''Male'], [0,1], inplace=True)
# tampilkan data yang sudah di preprocess
df.head(5)

Setelah dilakukan preprocessing dengan mengubah nama kolom supaya lebih seragam, maka hasilnya seperti di bawah ini.
4. Di tahap selanjutnya kita akan mengimpor K-Means. Di tahap ini juga kita akan menghilangkan kolom Customer ID dan gender karena kurang relevan untuk proses clustering. Selanjutnya kita akan menentukan nilai K yang optimal dengan metode Elbow. 



5. Jalankan kode di bawah untuk membuat plot dari inersia setiap K berbeda
6. Terakhir kita bisa melatih kembali K-Means dengan jumlah K yang didapat dari metode Elbow. Lalu kita bisa membuat plot hasil pengklasteran K-Means dengan menjalankan kode di bawah.
# membuat objek KMeans
 km5 = KMeans(n_clusters=5).fit(X)
 # menambahkan kolom label pada dataset
X['Labels'] = km5.labels_
# membuat plot KMeans dengan 5 klaster
 plt.figure(figsize=(8,4))
sns.scatterplot(X['annual_income'], X['spending_score'], hue=X['Labels'],
                palette=sns.color_palette('hls', 5))
plt.title('KMeans dengan 5 Cluster')
plt.show()
Sehingga jika kode di atas dijalankan, maka tampilan KMeans dengan 5 clusster seperti di bawah ini.

fromsklearn.cluster import KMeans

 # menghilangkan kolom customer id dan gender

= df.drop(['CustomerID', 'gender'], axis=1)

#membuat list yang berisi inertia

clusters = []

for i in range(1,11):

   km = KMeans(n_clusters=i).fit(X)

   clusters.append(km.inertia_)

 # membuat plot inertia

fig, ax = plt.subplots(figsize=(8, 4))

 sns.lineplot(x=list(range(1, 11)), y=clusters, ax=ax)

ax.set_title('Cari Elbow')

ax.set_xlabel('Clusters')

ax.set_ylabel('Inertia')


Muhamad Nanang Fauzi I am a beginner.

Berlangganan update artikel terbaru via email:

Buka komentar

Subcribe

Banner

loading...