Serie di apprendimento non supervisionato – Esplorazione di DBScan

Serie di apprendimento non supervisionato - Scoperta di DBScan

Scopri la teoria dietro l’algoritmo di clustering basato sulla densità mentre utilizzi il modulo sklearn di Python

Immagine da Kier in Sight Archives @Unsplash.com

Gli algoritmi di clustering sono una delle soluzioni più ampiamente utilizzate nel mondo della scienza dei dati, con i più popolari suddivisi in approcci basati sulla distanza e basati sulla densità. Sebbene spesso trascurati, i metodi di clustering basati sulla densità sono interessanti alternative agli ubiqui k-means e gerarchici.

Alcune delle famose tecniche di clustering basate sulla densità includono DBScan (Density-based spatial clustering of applications with noise) o Mean-Shift, due algoritmi che utilizzano il centro di massa dei punti di dati per raggruppare le osservazioni insieme.

In questo post del blog, esploreremo DBScan, un algoritmo di clustering particolarmente utile quando i dati contengono alcune delle seguenti caratteristiche:

  • Le cluster hanno una forma irregolare. Ad esempio, una forma non sferica.
  • Rispetto ad altri metodi, DBScan non assume alcuna ipotesi sulla distribuzione sottostante dei dati.
  • Il tuo dataset contiene alcuni outliers rilevanti che non dovrebbero influenzare come i centroidi dei cluster vengono mappati.

Se queste tre frasi ti hanno confuso, non preoccuparti! In questo post, vedremo un’implementazione step-by-step del metodo DBScan, discutendo anche gli argomenti sopra citati. Inoltre, verificheremo la famosa implementazione Python sklearn!

Inoltre, se desideri dare un’occhiata ad altri post della mia serie di apprendimento non supervisionato, puoi controllare:

Immergiamoci quindi in profondità e cerchiamo di capire come funziona DBScan!

Adattare soluzioni di clustering basate sulla distanza

In questo playbook passo-passo, useremo un dataset di esempio con informazioni sui clienti. In questo esempio, utilizzeremo un clustering a due variabili per renderlo più facile da comprendere.

Immaginiamo di gestire un negozio e di avere informazioni demografiche sui nostri clienti. Vorremmo fare delle campagne basate sul loro reddito annuale e sull’età e solo