Klasterlash algoritmlarining ko'p turlari mavjud.
Ko'pgina algoritmlar kuzatuvlarning zich hududlarini kashf qilish uchun xususiyat maydonidagi misollar orasidagi o'xshashlik yoki masofa o'lchovlaridan foydalanadi. Shunday qilib, klasterlash algoritmlarini ishlatishdan oldin ma'lumotlarni o'lchash ko'pincha yaxshi amaliyotdir.
Klaster tahlilining barcha maqsadlarida markaziy o'rinni klasterlangan alohida ob'ektlar o'rtasidagi o'xshashlik (yoki o'xshashlik) darajasi tushunchasi tashkil etadi. Klasterlash usuli ob'ektlarni unga berilgan o'xshashlik ta'rifi asosida guruhlashga harakat qiladi.
Ba'zi klasterlash algoritmlari ma'lumotlarda topiladigan klasterlar sonini ko'rsatish yoki taxmin qilishni talab qiladi, boshqalari esa kuzatishlar orasidagi minimal masofani belgilashni talab qiladi, bunda misollar " yopiq " yoki " bog'langan " deb hisoblanishi mumkin .
Shunday qilib, klaster tahlili iterativ jarayon bo'lib, aniqlangan klasterlarni sub'ektiv baholash istalgan yoki mos natijaga erishilgunga qadar algoritm konfiguratsiyasidagi o'zgarishlarga qaytariladi.
Scikit-learn kutubxonasi tanlash uchun turli xil klasterlash algoritmlari to'plamini taqdim etadi.
Eng mashhur 10 ta algoritm ro'yxati quyidagicha
Affinity Propagation
Agglomerative Clustering
BIRCH
DBSCAN
K-Means
Mini-Batch K-Means
Mean Shift
OPTICS
Spectral Clustering
Mixture of Gaussians
Har bir algoritm ma'lumotlardagi tabiiy guruhlarni topish muammosiga har xil yondashuvni taklif qiladi.
Klasterlashning eng yaxshi algoritmi va boshqariladigan tajribalardan foydalanmasdan maʼlumotlaringiz uchun eng yaxshi algoritmni topishning oson yoʻli yoʻq.
Ushbu qo'llanmada biz scikit-learn kutubxonasidagi ushbu 10 ta mashhur klasterlash algoritmlarining har biridan qanday foydalanishni ko'rib chiqamiz.
Misollar sizga misollarni nusxalash-joylashtirish va o'zingizning ma'lumotlaringiz bo'yicha usullarni sinab ko'rish uchun asos bo'ladi.
3-topshiriq
K-means moduli orqali clasterlarga bolish.
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import seaborn as sns
sns.set()
from sklearn.cluster import KMeans
1-rasm Kerakli modullarni chaqirib olamiz.
data = pd.read_csv('Mall_Customers.csv')
2-rasm. Datasetni yuklab olamiz.
plt.scatter(data['Annual Income (k$)'],data['Spending Score (1-100)'])
plt.xlim(0,180)
plt.ylim(-15,150)
plt.show
3-rasm. Datasetimizni nuqtalar orqali x,y oqqa joylaymiz.
kmeans = KMeans(5)
kmeans.fit(x)
identified_clusters = kmeans.fit_predict(x)
identified_clusters
data_with_clusters = data.copy()
data_with_clusters['Cluster'] = identified_clusters
data_with_clusters
4-rasm. Klasterlarga bolib olamiz.
plt.scatter(data_with_clusters['Annual Income (k$)'],data_with_clusters['Spending Score (1-100)'],c=data_with_clusters['Cluster'], cmap='rainbow')
plt.xlim(0,180)
plt.ylim(-15,150)
plt.show
5-rasm. Bolib olgan clasterlarimizni x,y oqida tasvirlaymiz.
wcss=[]
for i in range(1,7):
kmeans = KMeans(i)
kmeans.fit(x)
wcss_iter = kmeans.inertia_
wcss.append(wcss_iter)
number_clasters = range(1,7)
plt.plot(number_clasters,wcss)
plt.title('Bu Elbow Metodi')
plt.xlabel('Number of clusters')
plt.ylabel('Within-cluster Sum of Squares')
Do'stlaringiz bilan baham: |