10 algoritmi de învățare automată nesupravegheați: ce sunt aceștia și cum să îi creăm
Învățarea automată este unul dintre cele mai fierbinți subiecte de dezvoltare de software în acest moment. Algoritmii și tehnicile care permit învățarea automată au început să se maturizeze cu adevărat și au trecut de la „idei interesante” la furnizarea de putere autentică și capabilități care permit în aplicațiile noastre, care uneori pot părea magice la fel de mult pe cât de utile. Python a apărut foarte repede ca un limbaj de facto pentru învățarea automată. Există un set bogat de biblioteci de învățare automată disponibile pentru Python, oferind capacitatea de a face totul, de la recunoașterea imaginilor până la analize științifice complicate.
Cum să utilizați bibliotecile de învățare automată în Delphi
Știați că este simplu să folosiți niște biblioteci Python cu adevărat excelente pentru a vă stimula dezvoltarea aplicației Delphi pe Windows ? Toată acea gamă minunată de bunătăți de învățare automată Python vă este, de asemenea, ușor disponibilă ca programator Delphi.
Adăugarea Python la setul dvs. de instrumente pentru codul Delphi vă poate îmbunătăți dezvoltarea aplicației prin introducerea de noi capabilități care vă permit să oferiți soluții inovatoare și puternice utilizatorilor aplicației dvs., combinând tot ce este mai bun din Python cu puterea supremă low-code și fără egal a dezvoltării Windows native care Delphi oferă.
Căutați cum să construiți o interfață grafică pentru o bibliotecă puternică de învățare automată nesupravegheată?
Puteți construi o soluție de învățare nesupravegheată de ultimă generație cu scikit-learn pe Delphi. Acest articol va demonstra cum să creați o aplicație GUI Delphi dedicată bibliotecii scikit-learn.
Urmărește acest videoclip de Jim McKeeth pentru o explicație detaliată a motivului pentru care poți iubi atât Delphi, cât și Python în același timp:
Ce este biblioteca de învățare automată scikit-learn?
scikit-learn este o bibliotecă open-source Python de învățare automată. scikit-learn are instrumente simple și eficiente pentru analiza predictivă a datelor, care sunt construite pe SciPy, NumPy și Matplotlib.
Mașinile vectoriale de suport, pădurile aleatorii, creșterea gradientului, k-means și DBSCAN sunt printre algoritmii disponibili în scikit-learn pentru clasificare, regresie și grupare.
În acest articol, vom vorbi în mod specific despre algoritmii de grupare.
Ce este învățarea automată nesupravegheată?
Învățarea nesupravegheată, cunoscută și sub denumirea de învățare automată nesupravegheată, analizează și grupează seturi de date neetichetate folosind algoritmi de învățare automată.
Fără intervenția umană, acești algoritmi descoperă modele ascunse sau grupări de date. Capacitatea sa de a detecta asemănările și diferențele de date îl face o soluție ideală pentru analiza exploratorie a datelor, strategiile de vânzare încrucișată, segmentarea clienților și recunoașterea imaginii (sursa: IBM Cloud Education, 2020).
Ce este clustering-ul și cum are legătură cu învățarea automată?
Clusteringul este un tip de problemă de învățare nesupravegheată. Analiza cluster este un alt nume pentru această tehnică.
Este frecvent utilizat ca tehnică de analiză a datelor pentru a descoperi modele interesante în date, cum ar fi grupurile de clienți bazate pe comportamentul lor.
Există numeroși algoritmi de clustering disponibili și nu există un singur cel mai bun algoritm de clustering pentru toate cazurile. În schimb, este o idee bună să experimentați cu diverși algoritmi de grupare și configurații diferite pentru fiecare algoritm.
Un cluster este deseori o zonă densă în spațiul de caracteristici în care exemplele din domeniu (observații sau rânduri de date) sunt mai aproape de cluster decât de alte clustere. Clusterul poate avea ca centru un eșantion sau un spațiu de caracteristică punctuală (centroid), precum și o limită sau o întindere (sursa: Brownlee, machinelearningmastery.com, 2020).
Care este diferența dintre învățarea automată supravegheată și nesupravegheată?
Următorul infografic creat de AltexSoft vă poate oferi o perspectivă rapidă asupra diferențelor dintre învățarea supravegheată și nesupravegheată:
Cum obțin și instalez biblioteca scikit-learn?
Puteți instala cu ușurință scikit-learn cu pip:
pip install – U scikit – learn |
Sau, dacă utilizați distribuția Anaconda Python, puteți utiliza această comandă pentru a evita complexitățile și conflictele între bibliotecile necesare:
conda install – c anaconda scikit – learn |
Și, de obicei, scikit-learn este deja instalat implicit dacă utilizați distribuția Anaconda Python.
Cum instalez Python4Delphi?
Urmați instrucțiunile de instalare Python4Delphi menționate aici . Alternativ, puteți urma instrucțiunile simple din videoclipul lui Jim McKeeth „Noțiuni introductive cu Python4Delphi”:
Cum construiesc o interfață grafică Delphi pentru biblioteca de învățare automată scikit-learn?
Structura interfeței de utilizator a proiectului nostru este următoarea:
Iată lista componentelor utilizate în aplicația demo fastai4D:
- TPythonEngine
- TPythonModule
- TPythonType
- TPythonVersions
- TPythonGUIInputOutput
- TForm
- TMemo
- TOpenDialog
- TSaveDialog
- TSplitter
- TImagine
- TPanel
- TLabel
- TComboBox
- TBbuton
Navigați la UnitScikitLearn4D.pas și adăugați următoarea linie la FormCreate, pentru a încărca scikitlearnApp.py de bază:
Memo1 . Lines . LoadFromFile ( ExtractFilePath ( ParamStr ( 0 ) ) + ‘scikitlearnApp.py’ ) ; |
Și asigurați-vă că scikitlearnApp.py se află în același director cu ScikitLearn4D.exe sau în folderul proiectului Delphi.
Puteți schimba „scikitlearnApp.py” cu orice script scikit-learn dorit sau vă puteți încărca scripturile scikit-learn în timpul execuției, făcând clic pe „Încărcați scriptul…”, așa cum vă vom arăta în următoarele secțiuni Demo.
Cum folosesc scikit-learn pentru a rula algoritmi de clustering de învățare automată într-o aplicație Delphi?
Această postare vă va ghida prin procesul de integrare a Python scikit-learn într-o aplicație Windows creată de Delphi. Ca un bonus suplimentar, vom compara zece algoritmi diferiți de grupare.
Practică foarte recomandată:
1. Această interfață grafică a fost creată prin modificarea Python4Delphi Demo34 , ceea ce ne permite să schimbăm versiunea Python în timpul de execuție (acest lucru vă va salva de problemele aparent complicate dll).
2. Adăugați „Jpeg” în partea de sus a listei de utilizări a codului UnitScikitLearn4D.pas. Trebuie să facem acest lucru deoarece Delphi nu va înțelege formatul JPG altfel. Ar trebui să funcționeze cu această schimbare.
După aceea, modificarea de mai sus ar trebui să arate astfel:
De asemenea, putem încărca imagini JPG în TImage.
3. Configurați următoarele căi în variabila de mediu:
C : / Users / ASUS / AppData / Local / Programs / Python / Python38 C : / Users / ASUS / AppData / Local / Programs / Python / Python38 / DLLs C : / Users / ASUS / AppData / Local / Programs / Python / Python38 / Lib / bin C : / Users / ASUS / AppData / Local / Programs / Python / Python38 / Lib / site – packages / bin C : / Users / ASUS / AppData / Local / Programs / Python / Python38 / Scripts |
Configurați următoarele căi dacă utilizați distribuția Anaconda Python:
C : / Users / ASUS / anaconda3 / DLLs C : / Users / ASUS / anaconda3 / Lib / site – packages C : / Users / ASUS / anaconda3 / Library C : / Users / ASUS / anaconda3 / Library / bin C : / Users / ASUS / anaconda3 / Library / mingw – w64 / bin C : / Users / ASUS / anaconda3 / pkgs C : / Users / ASUS / anaconda3 / Scripts |
4. Pentru a afișa rezultatele trasării, trebuie să utilizați Matplotlib în afara procesului „normal” din linia de comandă. Pentru a face acest lucru, adăugați următoarele linii la tot codul dvs. Python:
…
plt.savefig(“scikitlearnImage.jpg”)
import matplotlib import matplotlib . pyplot as plt matplotlib . use ( “Agg” )
…
plt . savefig ( “scikitlearnImage.jpg” ) |
Vă sfătuim insistent să denumiți imaginea rezultată ca „scikitlearnImage.jpg” pentru ca aceasta să se încarce automat pe GUI după ce faceți clic pe butonul „Afișați diagrama”.
5. Setați MaskFPUEexceptions(True); în fișierul UnitScikitLearn4D.pas pentru a evita ca Delphi să ridice o excepție atunci când operațiunile flotante au ca rezultat +/- infinit (de exemplu, împărțirea la zero), care este cauzată de incompatibilitatea cu un număr de biblioteci Python, cum ar fi NumPy, SciPy, panda și Matplotlib.
Una dintre cele mai bune caracteristici ale acestui ScikitLearn4D Demo GUI este că puteți alege versiunea Python preferată, care este interschimbabilă.
Am testat acest ScikitLearn4D GUI atât pentru Python obișnuit, cât și pentru Anaconda Python și funcționează cel mai bine pentru ambele versiuni Python.
Apoi, faceți clic pe butonul „Execută” pentru a rula exemplul de bază pentru a crea și a trasa un set de date de clasificare binară de testare pentru această demonstrație de clustering (codul Python este deja apelat în fișierul UnitScikitLearn4D.pas ), apoi faceți clic pe „Afișare diagramă” butonul pentru a afișa figura. Iată rezultatul:
Cum se creează un set de date de grupare folosind scikit-learn în aplicația Delphi?
În acest articol, vom folosi funcția make_classification() pentru a crea un set de date de clasificare binară de testare.
Vor exista 1.000 de exemple în acest set de date, cu două caracteristici de intrare și un cluster pentru fiecare clasă. Deoarece clusterele sunt vizibile vizual în două dimensiuni, putem reprezenta datele cu un grafic de dispersie și colora punctele din diagramă în funcție de clusterul alocat. Acest lucru ne va permite să vedem cât de „bine” au fost identificate clusterele, cel puțin în problema testului.
Clusterele acestei probleme de testare se bazează pe un gaussian multivariat și nu toți algoritmii de clustering vor fi eficienți în identificarea acestor tipuri de clustere. Ca atare, rezultatele din acest articol nu ar trebui folosite ca bază pentru compararea algoritmilor în general.
Pentru a crea acest set de date, faceți clic pe butonul „Execută” și faceți clic pe butonul „Afișare diagramă” pentru a afișa diagrama așa cum am menționat în secțiunea anterioară.
Cum se efectuează algoritmi de grupare folosind scikit-learn în aplicația Delphi?
Ce este propagarea afinității?
Citându-l pe Mézard, 2007:
„ Propagarea afinității este cunoscută în informatică ca un algoritm de transmitere a mesajelor și sugerează că algoritmul poate fi înțeles prin adoptarea unui punct de vedere antropomorf.
Imaginați-vă că fiecare articol care este grupat trimite mesaje tuturor celorlalte articole informând țintele sale despre atractivitatea relativă a fiecărei ținte pentru expeditor. Având în vedere mesajele de atractivitate primite de la toți ceilalți expeditori, fiecare țintă răspunde apoi tuturor expeditorilor cu un răspuns care informează fiecare expeditor despre disponibilitatea sa de a se asocia cu expeditorul. Expeditorii procesează datele și răspund țintelor cu mesaje care informează fiecare țintă cu privire la atractivitatea relativă revizuită a țintei pentru expeditor, pe baza mesajelor de disponibilitate primite de la toate țintele. Procedura de transmitere a mesajelor continuă până când se ajunge la un consens asupra celui mai bun asociat pentru fiecare articol, luând în considerare atractivitatea și disponibilitatea relativă. Cel mai bun asociat pentru fiecare articol este exemplarul respectiv, iar toate articolele care partajează același exemplar sunt în același grup. În esență, algoritmul simulează conversația într-un grup de oameni, în care fiecare încearcă să-și identifice cel mai bun reprezentant pentru o anumită funcție, conversand cu toți ceilalți.”
Pentru a încerca acest exemplu de algoritm de propagare a afinității, încărcați demo01_affinityPropagation.py în timpul execuției făcând clic pe butonul „Încărcați scriptul…”, apoi pe „Execută”. Iată rezultatul:
Clasa AffinityPropagation este folosită pentru a scrie demo01_affinityPropagation.py , iar configurația principală de reglat este „amortizarea” setat între 0,5 și 1 și poate „preferință” .
În cele din urmă, Affinity Propagation este un algoritm de învățare automată nesupravegheat, care este deosebit de potrivit pentru problemele în care numărul optim de clustere este necunoscut. Drept urmare, a funcționat slab în această demonstrație.
Ce este clusteringul aglomerativ?
Citând Ackermann et. al, 2014:
„ Aglomerarea aglomerativă este un proces de grupare de jos în sus. La început, fiecare obiect de intrare formează propriul său cluster. Cele două „cel mai apropiate” clustere vor fi îmbinate în fiecare pas următor până când rămâne doar un cluster.
Acest proces de grupare generează o ierarhie de clustere, astfel încât pentru oricare două clustere diferite A și B de la niveluri posibil diferite ale ierarhiei, avem fie A ∩ B = ∅, A ⊂ B, fie B ⊂ A.“
Încercați acest exemplu de clusterizare aglomerativă încărcând demo02_agglomerativeClustering.py în timpul execuției, făcând clic pe butonul „Încărcați scriptul…”, apoi pe „Executați”. Iată rezultatul:
Clasa AgglomerativeClustering este folosită pentru a scrie demo02_agglomerativeClustering.py , iar configurația principală de reglat este setul „n_clusters” , o estimare a numărului de clustere din date, de exemplu 2 .
În acest caz, am descoperit un rezultat de grupare rezonabil.
Ce este algoritmul BIRCH?
Citând pe Zhang et. al, 1996:
„ BIRCH (Balanced Iterative Reducing and Clustering using Hierarchies) grupează în mod incremental și dinamic punctele de date metrice multidimensionale primite în încercarea de a produce gruparea de cea mai bună calitate cu resursele disponibile (adică, memoria disponibilă și constrângerile de timp).
BIRCH poate găsi de obicei o grupare bună cu o singură scanare a datelor și poate îmbunătăți și mai mult calitatea cu câteva scanări suplimentare. BIRCH este, de asemenea, primul algoritm de grupare a bazelor de date care gestionează eficient „zgomotul” (puncte de date care nu fac parte din modelul de bază).
Încercați exemplul de algoritm BIRCH încărcând demo03_BIRCH.py în timpul execuției, făcând clic pe butonul „Încărcați scriptul…”, urmat de „Execută”.
Rularea acestui exemplu, ca și cele anterioare, se potrivește modelului pe setul de date de antrenament și prezice un cluster pentru fiecare exemplu din setul de date. Punctele de pe diagrama de dispersie sunt apoi colorate de grupul căruia îi aparțin.
Iată rezultatul:
Clasa Birch este folosită pentru a scrie demo03_BIRCH.py , iar configurația principală de reglat este hiperparametrii „threshold” și „n_clusters” , acesta din urmă oferă o estimare a numărului de clustere .
În acest caz, folosind BIRCH, se găsește un rezultat excelent de grupare!
Ce înseamnă DBSCAN?
Citând pe Ester et. al, 1996:
„ DBSCAN, sau Density-Based Spatial Clustering of Applications with Noise, este un algoritm de clustering care este conceput pentru a descoperi clustere de formă arbitrară, bazându-se pe o noțiune de clustere bazată pe densitate.
DBSCAN necesită un singur parametru de intrare și ajută utilizatorul să determine o valoare adecvată.”
Pentru a încerca exemplul de algoritm DBSCAN, încărcați demo04_DBSCAN.py în timpul execuției făcând clic pe butonul „Încărcați scriptul…”, apoi pe „Execută”. Iată rezultatul:
Clasa DBSCAN este folosită pentru a scrie demo04_DBSCAN.py , iar configurația principală de reglat este hiperparametrii „threshold” și „n_clusters” , acesta din urmă oferă o estimare a numărului de clustere .
În cazul nostru folosind DBSCAN, se găsește o grupare rezonabilă, deși este nevoie de mai multă reglare.
Ce este metoda de învățare automată K-Means?
Citând pe MacQueen, 1967:
„ K-Means este o metodă de împărțire a unei populații N-dimensionale în k seturi bazate pe un eșantion. Procesul pare să producă partiții care sunt rezonabil de eficiente în sensul variației în interiorul clasei.
…
În plus, procedura k-means este simplu de programat și economică din punct de vedere computațional, făcând posibilă procesarea mostrelor foarte mari pe un computer digital.
…
Problema „grupării de similaritate” sau „clustering” este poate cea mai evidentă aplicație a procesului k-means.
Scopul acestei aplicații nu este de a găsi o singură grupare definitivă, ci mai degrabă de a ajuta investigatorul să obțină o înțelegere calitativă și cantitativă a unor cantități mari de date N-dimensionale, oferindu-i grupuri de similaritate rezonabil de bune.”
Pentru a rula acest exemplu de grupare k-means, deschideți fișierul demo05_KMeans.py făcând clic pe butonul „Încărcați scriptul…” și apoi făcând clic pe „Execută”. Iată rezultatul:
Clasa KMeans este folosită pentru a scrie demo05_KMeans.py , iar configurația principală de reglat este hiperparametrul „n_clusters” setat la numărul estimat de clustere din date.
În acest caz, se găsește o grupare rezonabilă, dar metoda este mai puțin potrivită pentru acest set de date din cauza variației egale inegale în fiecare dimensiune.
Ce este algoritmul de învățare automată Mini-Batch K-Means?
Citând Béjar, 2013:
„ Pentru gruparea seturilor mari de date, Mini Batch K-means a fost propus ca o alternativă la algoritmul K-means. Avantajul acestui algoritm este de a reduce costul de calcul prin nu folosirea întregului set de date pentru fiecare iterație, ci un subeșantion de dimensiune fixă. Această strategie reduce numărul de calcule la distanță efectuate pe iterație cu prețul unei calități mai scăzute a clusterului. ”
Pentru a încerca acest exemplu de algoritm Mini-Batch K-Means, încărcați demo06_miniBatch_KMeans.py în timpul execuției făcând clic pe butonul „Încărcați scriptul…”, apoi pe „Execută”. Iată rezultatul:
Clasa MiniBatchKMeans este folosită pentru a scrie demo06_miniBatch_KMeans.py , iar configurația principală de reglat este hiperparametrul „n_clusters” setat la numărul estimat de clustere din date .
Ca de obicei, rularea exemplului se potrivește cu modelul din setul de date de antrenament și prezice un cluster pentru fiecare exemplu din setul de date. Punctele de pe diagrama de dispersie sunt apoi colorate de grupul căruia îi aparțin.
În acest caz, se găsește un rezultat care este aproape perfect echivalent cu algoritmul standard k-means.
Ce este tehnica de învățare automată Mean Shift și cum este utilizată?
Citând Cheng, 1995:
„ Deplasarea medie este o tehnică de analiză matematică neparametrică a spațiului caracteristic pentru localizarea maximelor funcției de densitate, cunoscută și ca algoritm de căutare a modului.
Deplasarea medie este o procedură iterativă simplă care transformă fiecare punct de date în media punctelor de date din vecinătatea lui. Generalizarea algoritmului de schimbare a mediei transformă unii algoritmi de grupare de tip k-means în cazuri speciale.”
Încercați algoritmul Mean Shift încărcând demo07_meanShift.py în timpul execuției, făcând clic pe butonul „Încărcați scriptul…”, urmat de „Executați”. Iată rezultatul:
Clasa MeanShift este folosită pentru a scrie demo07_meanShift.py , iar configurația principală pentru reglare este hiperparametrul „lățime de bandă”.
A rezultat un set rezonabil de clustere găsite în datele noastre.
Ce este analiza clusterului OPTICS?
Citând Ankerst et. al, 1999:
„ OPTICS (Ordering Points To Identify the Clustering Structure) este un algoritm de analiză a clusterului care nu produce în mod explicit o grupare a unui set de date, ci creează o ordonare augmentată a bazei de date care reprezintă structura sa de clusterizare bazată pe densitate.
Această ordonare în cluster conține informații echivalente cu gruparea bazată pe densitate pentru o gamă largă de setări ale parametrilor. Acesta servește ca o bază versatilă atât pentru analiza clusterelor automate, cât și interactive.
…
Gruparea OPTICS este în esență o versiune extinsă a algoritmului DBSCAN.”
Experimentați cu algoritmul OPTICS încărcând demo08_OPTICS.py în timpul execuției, făcând clic pe butonul „Încărcați scriptul…”, apoi pe „Executați”.
Rularea acestui exemplu, ca și cele anterioare, se potrivește modelului pe setul de date de antrenament și prezice un cluster pentru fiecare exemplu din setul de date. Punctele de pe diagrama de dispersie sunt apoi colorate în funcție de clusterul căruia îi aparțin.
Iată rezultatul:
Clasa OPTICS este folosită pentru a scrie demo08_OPTICS.py , iar configurația principală pentru reglare este hiperparametrii „eps” și „min_samples” .
Pentru acest exemplu de set de date, nu se obține un rezultat rezonabil.
Ce este Spectral Clustering și cum este utilizată în învățarea automată?
Potrivit lui Luxburg (2007),
„Comparativ cu „algoritmii tradiționali” precum k-means sau single linking, gruparea spectrală are numeroase avantaje fundamentale.
Rezultatele grupării spectrale depășesc frecvent abordările tradiționale; Gruparea spectrală este foarte simplu de implementat și poate fi rezolvată eficient folosind metode standard de algebră liniară. „
Pentru a încerca exemplul algoritmului Spectral Clustering, încărcați demo09_spectralClustering.py în timpul execuției făcând clic pe butonul „Încărcați scriptul…” și apoi pe „Executați”.
Clasa SpectralClustering este folosită pentru a scrie demo09_spectralClustering.py , iar configurația principală de reglat este hiperparametrul „n_clusters” folosit pentru a specifica numărul estimat de clustere din date.
Au fost descoperite clustere rezonabile în acest caz.
Modelul de învățare automată a amestecului gaussian
Potrivit lui Reynolds, 2009:
„ Un model de amestec gaussian (GMM) este o funcție parametrică de densitate de probabilitate reprezentată ca o sumă ponderată a densităților componentelor gaussiene.
GMM-urile sunt frecvent utilizate în sistemele biometrice ca model parametric al distribuției de probabilitate a măsurătorilor sau caracteristicilor continue, cum ar fi caracteristicile spectrale legate de tractul vocal într-un sistem de recunoaștere a vorbitorului. Algoritmul iterativ Expectation-Maximization (EM) sau estimarea Maximum A Posteriori (MAP) dintr-un model anterior bine antrenat este utilizat pentru a estima parametrii GMM din datele de antrenament.”
Pentru a rula acest exemplu de clustering Gaussian Mixture Model, deschideți demo10_gaussianMixtureModel.py făcând clic pe butonul „Încărcați script-ul…”, apoi pe „Execute”. Iată rezultatul:
Clasa GaussianMixture este folosită pentru a scrie demo10_gaussianMixtureModel.py , iar parametrul principal de reglare este hiperparametrul „n_clusters” , care specifică numărul estimat de clustere din date .
În acest caz, putem observa că clusterele au fost perfect identificate. Acest lucru nu este surprinzător deoarece setul de date a fost generat ca un amestec de gaussieni.
O bibliotecă atât de puternică de învățare automată nesupravegheată, nu?
Vizitați acest depozit pentru codul sursă complet.
Ești gata să încerci aceste demonstrații de învățare automată ScikitLearn4Delphi?
Felicitări, acum ați învățat multe despre scikit-learn: o bibliotecă bogată și puternică de învățare automată nesupravegheată și cum puteți utiliza Delphi pentru a crea o interfață grafică simplă, dar puternică pentru aceasta!
Am învățat elementele de bază ale a 10 algoritmi diferiți de grupare pentru a descoperi clustere pe date și, din această bază, vă puteți dezvolta propriile aplicații AI.
Pentru un punct de vedere mai pitonic, puteți consulta acest articol:
Dacă sunteți în căutarea altor biblioteci AI puternice, vă rugăm să citiți acest articol:
Descărcați astăzi o versiune de încercare gratuită a RAD Studio Delphi și încercați singuri aceste exemple.
Referințe și lecturi suplimentare
Hârtii
- Thavikulwat, P. (2008). Propagare a afinității: un algoritm de grupare pentru simulări de afaceri asistate de computer și exerciții experiențiale. În Evoluții în simularea afacerilor și învățarea experiențială: Proceedings of the Annual ABSEL Conference (Vol. 35).
- Ackermann, MR, Blömer, J., Kuntze, D. și Sohler, C. (2014). Analiza grupării aglomerative. Algorithmica, 69(1), 184-215.
- Zhang, T., Ramakrishnan, R., & Livny, M. (1996). BIRCH: o metodă eficientă de grupare a datelor pentru baze de date foarte mari. ACM sigmod record, 25(2), 103-114.
- Ester, M., Kriegel, HP, Sander, J., & Xu, X. (1996, august). Un algoritm bazat pe densitate pentru descoperirea clusterelor în baze de date spațiale mari cu zgomot. În kdd (Vol. 96, No. 34, pp. 226-231).
- MacQueen, J. (1967, iunie). Câteva metode de clasificare și analiză a observațiilor multivariate. În Proceedings of the fifth Berkeley Symposium on Mathematical statistics and probability (Vol. 1, No. 14, pp. 281-297).
- Béjar Alonso, J. (2013). K-means vs mini lot k-means: o comparație.
- Cheng, Y. (1995). Schimbarea medie, căutarea modului și gruparea. Tranzacții IEEE privind analiza modelelor și inteligența mașinilor, 17(8), 790-799.
- Ankerst, M., Breunig, MM, Kriegel, HP, & Sander, J. (1999). OPTICA: Puncte de ordonare pentru a identifica structura de clustering. Record ACM Sigmod, 28(2), 49-60.
- Von Luxburg, U. (2007). Un tutorial despre gruparea spectrală. Statistică și calcul, 17(4), 395-416.
- Reynolds, DA (2009). Modele de amestec gaussiene. Enciclopedia de biometrie, 741(659-663).
Legături
- https://towardsdatascience.com/unsupervised-machine-learning-affinity-propagation-algorithm-explained-d1fef85f22c8/
- https://docs.rapidminer.com/latest/studio/operators/modeling/segmentation/agglomerative_clustering.html/
- https://machinelearningmastery.com/clustering-algorithms-with-python/
- https://en.wikipedia.org/wiki/DBSCAN/
- https://www.analyticsvidhya.com/blog/2019/08/comprehensive-guide-k-means-clustering/
- https://thecleverprogrammer.com/2021/09/10/mini-batch-k-means-clustering-in-machine-learning/
- https://analyticsindiamag.com/hands-on-tutorial-on-mean-shift-clustering-algorithm/
- https://towardsdatascience.com/spectral-clustering-aba2640c0d5b/
- https://towardsdatascience.com/gaussian-mixture-models-d13a5e915c8e/