dan import make_classification import sklearn.cluster import DBSCAN
import matplotlib.pyplot syujet sifatida _ _
# Ma'lumotlar
poyezdi_ma'lumotlarini ishga tushirish, _ = tasniflash_ko'rsatish (n_namuna = 1000 ,
n_features= 2 ,
n_informative= 2 ,
n_redundant= 0 ,
n_clusters_per_class= 1 ,
tasodifiy_holat = 4 )
# Modelni aniqlang
dbscan_model = DBSCAN (eps= 0,25 , min_namuna = 9 )
# Modelni o'rgating
dbscan_model.fit (poezd_ma'lumotlari)
# Har bir ma'lumot nuqtasini klasterga belgilang
dbscan_res = dbscan_model.fit_predict (poezd_ma'lumotlari)
# barcha noyob klasterlarni oling
dbscan_clstrs = noyob (dbscan_res)
# dbscan_clstrs da dbscan_clstr uchun DBSCAN klasterlarini chizing:
# Ushbu klasterga tegishli ma'lumotlar nuqtasini oling
indeks = bu erda (dbscan_res == dbscan_clstr)
# plot
plot.scatter(poezd_ma'lumotlari[indeks, 0 ], poezd_ma'lumotlari[indeks, 1 ])
# syujetni ko'rsatish
plot.show()
DBSCAN klaster algoritmi tomonidan olingan klasterlar
Tarqatishga asoslangan klasterlash algoritmlari
Statistikaga chambarchas bog'liq bo'lgan klasterlash modeli tarqatish modellariga asoslanadi. Keyin klasterlar bir xil taqsimotga tegishli ob'ektlar sifatida belgilanishi mumkin . Ushbu yondashuv taqsimotdan tasodifiy ob'ektlarni tanlab olish yo'li bilan sun'iy ma'lumotlar to'plami qanday yaratilganiga juda o'xshaydi.
Ushbu usullarning nazariy jihatlari juda yaxshi bo'lsa-da, bu modellar haddan tashqari moslashishdan aziyat chekmoqda .
Gauss aralashmasi modeli
Gauss aralashmasi modeli ( GMM ) taqsimotga asoslangan klasterlash turlaridan biridir. Ushbu klasterlash yondashuvlari ma'lumotlar Gauss taqsimoti kabi taqsimotlardan iborat deb taxmin qiladi. Quyidagi rasmda taqsimotga asoslangan algoritm ma'lumotlarni uchta Gauss taqsimotiga to'playdi . Tarqatishdan masofa oshgani sayin, nuqtaning taqsimotga tegishli bo'lish ehtimoli kamayadi.
GMM K-Means bilan bir xil tarzda klasterlarni topish uchun ishlatilishi mumkin. Nuqtaning tarqatish markaziga tegishli bo'lish ehtimoli, tarqatish markazidan masofa oshgani sayin kamayadi. Bantlar quyidagi rasmda ehtimollikning pasayishini ko'rsatadi. GMM kaput ostida ehtimoliy modelni o'z ichiga olganligi sababli, biz ehtimollik klaster tayinlanishini ham topishimiz mumkin. Ma'lumotlarning taqsimlanish turini bilmasangiz, boshqa algoritmdan foydalanishingiz kerak.
Tarqatishga asoslangan klasterlash misoli | Manba
Keling, GMM ehtimolliklarni qanday hisoblashini va uni ma'lumotlar nuqtasiga belgilashini ko'rib chiqaylik:
GM - har biri k ∈ {1,…, K} bilan identifikatsiya qilingan bir nechta Gausslardan tashkil topgan funksiya, bu erda K - klasterlar soni. Aralashmadagi har bir Gauss K quyidagi parametrlardan iborat:
Uning markazini belgilaydigan o'rtacha m.
Uning kengligini aniqlaydigan S kovariatsiyasi.
Gauss funktsiyasi qanchalik katta yoki kichik yoki katta bo'lishini belgilaydigan aralashtirish ehtimoli.
Ushbu parametrlarni quyidagi rasmda ko'rish mumkin:
Manba
Klasterlarning kovariatsiyasi, o'rtacha, dispersiya va og'irliklarini topish uchun GMM Expectation Maximization texnikasidan foydalanadi.
O'rtacha va kovariatsiya qiymatlari m1, m2, .. mk va S1, S2, .. Sk bo'lgan K Gauss taqsimotini anglatuvchi K klasterlar sonini belgilashimiz kerakligini ko'rib chiqaylik. Tarqatish zichligini ifodalovchi yana bir parametr Ii mavjud.
Gauss taqsimotini aniqlash uchun biz ushbu parametrlarning qiymatlarini topishimiz kerak. Biz allaqachon klasterlar sonini belgilab oldik va o'rtacha, kovariatsiya va zichlik uchun qiymat berdik. Keyingi bosqichlar Kutish bosqichi va Maksimallashtirish bosqichi bo'lib, ularni ushbu postda ko'rishingiz mumkin .
Do'stlaringiz bilan baham: |