Caratteristiche e differenza tra classificazione e clustering in informatica

Caratteristiche e differenza tra classificazione e clustering in informatica

La classificazione è una tecnica efficace per distinguere gruppi o classi di oggetti. In particolare la classificazione viene utilizzata quando i valori di output y che si vogliono predire non sono continui ma possono assumere soltanto valori appartenenti ad un insieme discreto, in cui ogni valore denota una classe. Nel caso più diffuso, le classi sono disgiunte, e quindi ogni input va assegnato ad una e una sola classe: lo spazio di input è quindi diviso in regioni di decisione delimitate da confini.

Il machine learning ha un ruolo importante nei problemi di classificazione che può avvenire con diversi livelli di granularità: classificazione di interi documenti (text classification), identificazione e classificazione di piccole unità presenti nei documenti, identificazione e classificazione di nomi propri, luoghi, organizzazioni, particolari entità relative ad uno specifico contesto).

Esistono due modi per assegnare la classe ad un elemento:

  1. Classificazione: si conoscono a priori le classi in cui assegnare gli elementi e si hanno a disposizioni un set di esempi per ciascuna classe.
  2. Clustering: si assume che esista una naturale suddivisione degli elementi in categorie ma non si sa a priori quante e quali siano le categorie. In questa ipotesi non ci sono naturalmente esempi espliciti per ciascuna categoria.

Caratteristiche e differenza tra classificazione e clustering in informatica

Proprio per la particolare tipologia dei due metodi, la classificazione si basa su dati annotati e avviene in modalità supervised, ossia si allena il sistema su dati con classificazione nota. Il clustering invece avviene in modalità unsupervised e si applica a corpora non annotati. Quando le dimensioni dei corpora sono particolarmente elevate, si tenta di applicare una modalità semi-supervised che rappresenta una generalizzazione delle due e che consiste nell’annotazione parziale del training set, lasciando alcune istanze non annotate. Se per esempio si chiede di determinare l’esatta Part-of-Speech di una parola (che quindi rappresenta l’istanza), la funzione (classifier) prima apprende da una collezione di istanze appartenenti alle relative categorie morfologiche ed etichettate con risposta corretta, poi predice per la nuova istanza il valore nominale, così definito in quanto appartenente ad un set finito di valori possibili. Al contrario, il clustering, viene utilizzato quando non si ha conoscenza a priori di questo set di valori possibili, e la funzione tenterà di eseguire la categorizzare senza alcuna istanza di riferimento.

La scelta della modalità supervised o unsupervised si basa sui vantaggi e svantaggi di entrambe: la modalità supervised riesce a predire la giusta classe per le istanze appartenti al test set ma richiede una consistente quantità di istanze annotate e questo può rappresentare un processo costoso se effettuato manualmente. La modalità unsupervised tipica del clustering, invece, ha il vantaggio di non richiedere un training già annotato (situazione particolarmente frequente quando si ricorre al Machine Learning) ma difficilmente etichetta correttamente il cluster e ottiene una precisione più scarsa rispetto al primo metodo nell’associare le istanze ai cluster corretti.

Pubblicato da Vito Lavecchia

Lavecchia Vito Ingegnere Informatico (Politecnico di Bari) Email: [email protected] Sito Web: https://vitolavecchia.altervista.org

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *