Creare una misurazione manuale della somiglianza

Per calcolare la somiglianza tra due esempi, devi combinare tutti i dati delle caratteristiche per questi due esempi in un unico valore numerico.

Ad esempio, considera un set di dati di scarpe con una sola caratteristica: il numero di scarpe. Puoi quantificare quanto sono simili due scarpe calcolando la differenza tra le loro dimensioni. Maggiore è la differenza numerica tra le dimensioni, maggiore è la somiglianza tra scarpe. Tale misura di somiglianza artigianale è chiamata misurazione della somiglianza manuale.

E se volessi trovare somiglianze tra le scarpe utilizzando sia le dimensioni sia il colore? Il colore è un dati categorici ed è più difficile da combinare con i dati numerici sulle dimensioni. Noteremo che, man mano che i dati diventano più complessi, creare una misura manuale di similitudine diventa più difficile. Quando i tuoi dati diventano sufficientemente complessi, non puoi creare una misurazione manuale. Questo avviene quando si passa a una misura di similarità supervisionata, in cui un modello di machine learning supervisionato calcola la somiglianza.

Lasceremo la misurazione della similitudine supervisionata per utilizzarla in seguito e ci concentreremo sulla misurazione manuale qui. Per il momento, ricorda di passare a una misurazione di similitudine supervisionata quando hai difficoltà a creare una misura di somiglianza manuale.

Per capire come funziona una misura manuale di somiglianza, consideriamo il nostro esempio di scarpe. Supponiamo che il modello abbia due funzionalità: numero di scarpe e dati sui prezzi delle scarpe. Poiché entrambe le funzionalità sono numeriche, puoi combinarle in un unico numero che rappresenta la somiglianza come segue.

  • Taglia (s): il numero di scarpe costituisce probabilmente una distribuzione gaussiana. Conferma. quindi normalizza i dati.
  • Prezzo (p): i dati probabilmente sono una distribuzione di Poisson. Conferma. Se disponi di dati sufficienti, convertili in quantili e scala a \([0,1]\).
  • Combina i dati utilizzando un errore medio quadrato radice (RMSE). In questo caso la somiglianza è \(\sqrt{\frac{s^2+p^2}{2}}\).

Per un esempio semplificato, calcoliamo la somiglianza per due scarpe con taglie USA 8 e 11 e prezzi 120 e 150. Poiché non disponi di dati sufficienti per comprendere la distribuzione, scaliamo semplicemente i dati senza normalizzare o utilizzare quantili.

AzioneMetodo
Ridimensiona le dimensioni. Supponiamo che la misura massima possibile per un numero di scarpe sia 20. Dividi 8 e 11 per la dimensione massima 20 per ottenere 0,4 e 0,55.
Scala il prezzo. Dividi 120 e 150 per il prezzo massimo 150 per ottenere 0,8 e 1.
Trova la differenza di dimensioni. \(0.55 - 0.4 = 0.15\)
Trova la differenza di prezzo. \(1 - 0.8 = 0.2\)
Trova l'RMSE. \(\sqrt{\frac{0.2^2+0.15^2}{2}} = 0.17\)

Intuitivamente, la similitudine misurata dovrebbe aumentare quando i dati delle funzionalità diventano simili. Al contrario, la tua affinità misurata diminuisce. Fai in modo che la tua somiglianza misurata segua l'intuizione sottraendola da 1.

\[\text{Similarity} = 1 - 0.17 = 0.83\]

In generale, puoi preparare i dati numerici come descritto nella sezione Preparare i dati e poi combinarli utilizzando la distanza euclidea.

Se hai dati categorici? I dati categorici possono essere:

  • Valore singolo (univalente), come il colore di un'auto ("bianco" o "blu", ma mai entrambi)
  • Multivalore (multivalente), ad esempio il genere di un film (può essere "azione" e "umorismo" contemporaneamente o semplicemente "azione")

Se i dati non uguali corrispondono, la somiglianza è 1; altrimenti, è 0. I dati multivalenti sono più difficili da gestire. Ad esempio, i generi potrebbero essere una sfida da considerare. Per gestire questo problema, supponiamo che ai film vengano assegnati generi da un insieme fisso di generi. Calcola la somiglianza utilizzando il rapporto di valori comuni, chiamato somiglianza di Jaccard.

Esempi:

  • ["umorismo"", "azione"] e ["umorismo"",azione"] = 1
  • ["umorismo"", azione"] e ["azione"] = 1⁄2
  • ["umorismo"", azione"] e ["azione", "dramma"] = 1⁄3
  • ["umorismo"", "azione"] e ["non fiction"", "biografica"] = 0

La seguente tabella fornisce alcuni esempi di come gestire i dati categorici.

Esempi
Codice postale I codici postali che rappresentano aree vicine tra loro dovrebbero avere una maggiore somiglianza. Per codificare con precisione le informazioni richieste per calcolare accuratamente questa somiglianza, puoi convertire i codici postali in latitudine e longitudine. Per una coppia di codici postali, calcola separatamente la differenza tra la latitudine e la longitudine. Aggiungi quindi le differenze per ottenere un singolo valore numerico.
Colore Supponiamo che tu abbia dati di colore come testo. Converti i valori testuali in valori RGB numerici. Ora puoi trovare la differenza di valori rossi, verdi e blu per due colori e combinare le differenze in un valore numerico utilizzando la distanza euclidea.

In generale, la misura di somiglianza deve corrispondere direttamente alla somiglianza effettiva. In caso contrario, la codifica non include le informazioni necessarie. L'esempio precedente convertiva i codici postali in latitudine e longitudine perché di per sé i codici postali non codificavano le informazioni necessarie.

Prima di creare la misura di similitudine, elabora i dati con attenzione. Anche se gli esempi in questa pagina si basavano su un piccolo e semplice set di dati, la maggior parte dei set di dati reali è molto più grande e molto più complessa. Ricorda che i quantili sono una buona scelta predefinita per l'elaborazione dei dati numerici.