Centroid modellari: Bu iterativ klasterlash algoritmlari bo'lib, ularda o'xshashlik tushunchasi ma'lumotlar nuqtasining klasterlar markaziga yaqinligidan kelib chiqadi. K-Means klasterlash algoritmi bu toifaga kiradigan mashhur algoritmdir. Ushbu modellarda yo'q. Oxirida talab qilinadigan klasterlar haqida oldindan aytib o'tish kerak, bu esa ma'lumotlar to'plami haqida oldindan ma'lumotga ega bo'lishni muhim qiladi. Ushbu modellar mahalliy optimalni topish uchun iterativ ravishda ishlaydi.
Tarqatish modellari: Ushbu klasterlash modellari klasterdagi barcha ma'lumotlar nuqtalari bir xil taqsimotga tegishli ekanligi haqidagi tushunchaga asoslanadi (masalan: Oddiy, Gauss). Ushbu modellar ko'pincha ortiqcha o'rnatishdan aziyat chekmoqda. Ushbu modellarning mashhur misoli ko'p o'zgaruvchan normal taqsimotlardan foydalanadigan kutish-maksimizatsiya algoritmidir.
Zichlik modellari: Ushbu modellar ma'lumotlar maydonidagi ma'lumotlar nuqtalarining turli xil zichlikdagi hududlarini qidiradi. U turli xil zichlikdagi hududlarni ajratib turadi va ma'lumotlar nuqtalarini bir xil klasterda ushbu mintaqalar ichida belgilaydi. Zichlik modellarining mashhur namunalari DBSCAN va OPTICS.
Endi men sizni ikkita eng mashhur klasterlash algoritmlarini batafsil ko'rib chiqaman - K Means klasterlash va Ierarxik klasterlash. Keling, boshlaymiz.
4. K Klasterlash degan ma'noni anglatadi
K vositalari - iterativ klasterlash algoritmi bo'lib, u har bir iteratsiyada mahalliy maksimallarni topishga qaratilgan. Ushbu algoritm 5 bosqichda ishlaydi:
Klasterlarning kerakli sonini belgilang K : 2 o'lchamli fazoda ushbu 5 ma'lumot nuqtasi uchun k=2 ni tanlaymiz.
Har bir ma'lumot nuqtasini klasterga tasodifiy belgilash: Keling, qizil rang yordamida ko'rsatilgan 1-klasterda uchta nuqtani va kulrang rang yordamida ko'rsatilgan 2-klasterda ikkita nuqtani belgilaymiz.
Klaster markazlarini hisoblash: Qizil klasterdagi ma'lumotlar nuqtalarining markaziy qismi qizil xoch bilan, kulrang klasterdagilar esa kulrang xoch yordamida ko'rsatilgan.
Har bir nuqtani eng yaqin klaster markaziga qayta tayinlang: E'tibor bering, faqat pastki qismidagi ma'lumotlar nuqtasi kulrang klaster markaziga yaqinroq bo'lsa ham, qizil klasterga tayinlanadi. Shunday qilib, biz ushbu ma'lumot nuqtasini kulrang klasterga belgilaymiz
Klaster markazlarini qayta hisoblash: Endi ikkala klaster uchun markazlarni qayta hisoblash.
Takrorlash 4 va 5 hech yaxshilashlar mumkin qadar qadamlarni: Xuddi shunday, biz 4 takrorlang olaman th va 5 chi , biz global Optima yetib olaman qadar qadamlar. Ikki ketma-ket takrorlash uchun ikkita klaster o'rtasida ma'lumotlar punktlarining keyingi almashinuvi bo'lmaganda. Agar aniq ko'rsatilmagan bo'lsa, u algoritmni tugatishni belgilaydi.
5. Ierarxik klasterlash
Nomidan ko'rinib turibdiki, ierarxik klasterlash klasterlar ierarxiyasini tuzadigan algoritmdir. Ushbu algoritm o'z klasteriga tayinlangan barcha ma'lumotlar nuqtalaridan boshlanadi. Keyin ikkita eng yaqin klaster bir xil klasterga birlashtiriladi. Oxir-oqibat, bu algoritm faqat bitta klaster qolganda tugaydi.
Ierarxik klasterlash natijalarini dendrogramma yordamida ko'rsatish mumkin. Dendrogramma quyidagicha talqin qilinishi mumkin:
Pastki qismida biz har biri alohida klasterlarga tayinlangan 25 ta ma'lumot nuqtasidan boshlaymiz. Keyin ikkita eng yaqin klaster birlashtiriladi, shunda tepada faqat bitta klaster bo'ladi. Ikki klaster birlashtirilgan dendrogramdagi balandlik ma'lumotlar maydonidagi ikkita klaster orasidagi masofani ifodalaydi.
Yo'q qarori. dendrogrammani kuzatish orqali turli guruhlarni eng yaxshi tasvirlay oladigan klasterlarni tanlash mumkin. Noning eng yaxshi tanlovi. klasterlarning soni №. dendrogrammadagi vertikal chiziqlarning gorizontal chiziq bilan kesilgan, klasterni kesishmasdan vertikal ravishda maksimal masofani kesib o'tishi mumkin.
Yuqoridagi misolda eng yaxshi tanlov yo'q. klasterlar soni 4 ga teng bo'ladi, chunki pastdagi dendrogrammadagi qizil gorizontal chiziq maksimal vertikal masofa AB ni qamrab oladi.
Ierarxik klasterlash haqida bilishingiz kerak bo'lgan ikkita muhim narsa:
Ushbu algoritm yuqorida pastdan yuqoriga yondashuv yordamida amalga oshirildi. Bundan tashqari, bir xil klasterda tayinlangan barcha ma'lumotlar nuqtalaridan boshlab va har bir ma'lumot nuqtasiga alohida klaster tayinlanmaguncha bo'linishlarni rekursiv bajarishdan boshlab yuqoridan pastga yondashuvni kuzatish mumkin.
Ikki klasterni birlashtirish to'g'risidagi qaror ushbu klasterlarning yaqinligidan kelib chiqqan holda qabul qilinadi. Ikki klasterning yaqinligini aniqlash uchun bir nechta ko'rsatkichlar mavjud:
Evklid masofasi: ||ab|| 2 = √(S(a i -b i ))
Kvadrat Evklid masofasi: ||ab|| 2 2 = S((a i -b i ) 2 )
Manxetten masofasi: ||ab|| 1 = S|a i -b i |
Maksimal masofa:||ab|| INFINITY = max i |a i -b i |
Mahalanobis masofasi: √((ab) T S -1 (-b)) {bu yerda, s : kovariatsiya matritsasi}
6. K o'rtacha va ierarxik klasterlash o'rtasidagi farq
Ierarxik klasterlash katta ma'lumotlarni yaxshi ishlata olmaydi, lekin K klasterlashni anglatadi. Buning sababi shundaki, K o'rtacha vaqt murakkabligi chiziqli, ya'ni O(n), ierarxik klasterlash esa kvadratik, ya'ni O(n 2 ).
K Means klasterlashda biz klasterlarni tasodifiy tanlash bilan boshlaganimiz sababli, algoritmni bir necha marta ishlatish natijasida olingan natijalar farq qilishi mumkin. Natijalar ierarxik klasterlashda takrorlanishi mumkin.
Klasterlar shakli gipersferik bo'lsa (masalan, 2D da aylana, 3D dagi shar) bo'lganda K vosita yaxshi ishlaydi.
K Klasterlash K haqida oldindan bilishni talab qiladi, ya'ni no. ma'lumotlaringizni ajratmoqchi bo'lgan klasterlar. Biroq, dendrogrammani sharhlash orqali siz ierarxik klasterlashda mos keladigan klasterlar sonida to'xtashingiz mumkin.
7. Klasterlashning qo'llanilishi
Klasterlash katta raqamga ega. turli domenlarda tarqalgan ilovalar. Klasterlashning eng mashhur ilovalaridan ba'zilari:
Tavsiya motorlar
Bozor segmentatsiyasi
Ijtimoiy tarmoqlarni tahlil qilish
Qidiruv natijalarini guruhlash
Tibbiy tasvir
Tasvir segmentatsiyasi
Anomaliyalarni aniqlash
8. Nazorat ostidagi o‘quv algoritmlarini klasterlash bilan takomillashtirish
Klasterlash - bu nazoratsiz mashinani o'rganish usuli, ammo undan nazorat ostidagi mashinani o'rganish algoritmlarining aniqligini oshirish uchun, shuningdek, ma'lumotlar nuqtalarini o'xshash guruhlarga klasterlash va ushbu klaster belgilarini nazorat ostidagi mashinani o'rganish algoritmida mustaqil o'zgaruvchilar sifatida ishlatish orqali foydalanish mumkinmi? Keling, bilib olaylik.
Keling, klasterlashning tasniflash muammosi uchun modelimiz toʻgʻriligiga taʼsirini tekshirib koʻraylik, 3000 ta kuzatuvdan foydalanib, 100 ta bashoratchi bilan birja maʼlumotlari R yordamida qimmatli qogʻozlarning koʻtarilishi yoki tushishini bashorat qilish. Ushbu maʼlumotlar toʻplami X1 dan X100 gacha boʻlgan 100 ta mustaqil oʻzgaruvchilarni oʻz ichiga oladi. aktsiya profili va ikkita darajali bitta natija o'zgaruvchisi Y: aktsiya narxining ko'tarilishi uchun 1 va aktsiya narxining pasayishi uchun -1.
Ma'lumotlar to'plami bu erda mavjud: Yuklab oling
Avval tasodifiy o'rmonni klasterlashsiz qo'llashga harakat qilaylik.
#kerakli kutubxonalarni yuklash
kutubxona ('tasodifiy o'rmon')
kutubxona ('Metriklar')
#tasodifiy urug'lar
to'plami.seed(101)
#maʼlumotlar toʻplami yuklanmoqda
data<-read.csv("train.csv",stringsAsFactors= T)
#maʼlumotlarning oʻlchamlarini tekshirish
(maʼlumotlar)
## [1] 3000 101
#natija o'zgaruvchisini omil sifatida belgilash
data$Y<-faktor sifatida(ma'lumotlar$Y)
#ma'lumotlar to'plamini poezd va test
poyezdiga bo'lish<-ma'lumotlar[1:2000,]
test<-ma'lumotlar[2001:3000,]
#randomForest modelini
qo'llash_rf<-randomForest(Y~.,data=poezd)
preds<-predict(object=model_rf,test[,-101])
stol (oldingi)
## oldindan
## -1 1
## 453 547
#to'g'riligini tekshirish
auc(preds,test$Y)
## [1] 0,4522703
Shunday qilib, biz olgan aniqlik 0,45 ga teng. Endi k-means klasterlashdan foydalangan holda mustaqil o'zgaruvchilar qiymatlari asosida beshta klaster yaratamiz va tasodifiy o'rmonni qayta qo'llaymiz.
#tarash testi va o'rgatish
hammasi<-rbind(poezd, sinov)
#K- yordamida 5 ta klaster yaratish klasterlash demakdir
Klaster <- kme(barchasi[,-101], 5)
#ma'lumotlar to'plamiga mustaqil o'zgaruvchi sifatida klasterlarni qo'shish.
all$cluster<-as.factor(Cluster$cluster)
#ma'lumotlar to'plamini poezd va test
poyezdiga bo'lish<-hammasi[1:2000,]
test<-hammasi[2001:3000,]
#randomforest modelini
qo'llash_rf<-randomForest(Y~.,data=poezd)
preds2<-predict(object=model_rf,test[,-101])
jadval (preds2)
## oldingi 2
## -1 1
##548 452
auc(preds2,test$Y)
## [1] 0,5345908
voy! Yuqoridagi misolda, yakuniy aniqlik yomon bo'lsa-da, lekin klasterlash bizning modelimizga 0,45 aniqlikdan 0,53 dan biroz yuqoriroq bo'lgan aniqlikni sezilarli darajada oshirdi.
Bu shuni ko'rsatadiki, klasterlash nazorat ostidagi mashinalarni o'rganish vazifalari uchun haqiqatan ham foydali bo'lishi mumkin.
Do'stlaringiz bilan baham: |