Condividi tramite


Trasformazione dei dati - Learning con conteggi

Importante

Il supporto dello studio di Azure Machine Learning (versione classica) terminerà il 31 agosto 2024. È consigliabile passare ad Azure Machine Learning entro tale data.

A partire dal 1° dicembre 2021 non sarà possibile creare nuove risorse dello studio di Azure Machine Learning (versione classica). Fino al 31 agosto 2024 sarà possibile continuare a usare le risorse dello studio di Azure Machine Learning (versione classica).

La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.

Questo articolo descrive i moduli in Machine Learning Studio (versione classica) che supportano la funzionalità basata sul conteggio.

Nota

Si applica a: Machine Learning Studio (versione classica)

Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.

Learning con i conteggi è un modo efficiente per creare un set compatto di funzionalità del set di dati basate sui conteggi dei valori. È possibile usare i moduli in questa categoria per creare un set di conteggi e funzionalità. Successivamente, è possibile aggiornare i conteggi e le funzionalità per sfruttare i nuovi dati o unire due set di dati di conteggio.

Informazioni sulla creazione di elementi in base al conteggio

L'idea di base della funzionalità basata sul conteggio è che calcolando i conteggi, è possibile ottenere in modo semplice e rapido un riepilogo delle colonne che contengono le informazioni più importanti. Il modulo conta il numero di volte in cui viene visualizzato un valore e quindi fornisce le informazioni come funzionalità per l'input di un modello.

Imagine che si sta convalidando una transazione con carta di credito. Una parte essenziale delle informazioni è la posizione da cui deriva questa transazione. Una delle codifiche più comuni dell'origine della transazione è il codice postale. Potrebbe tuttavia essere necessario considerare fino a 40.000 CAP, codici postali ZIP e codici geografici. Il modello in uso ha la capacità di apprendere altri 40.000 parametri? Se si assegna tale capacità, si dispone di dati di training sufficienti per impedirne l'overfitting?

Se si dispone di dati validi, con molti esempi, tale granularità locale con granularità fine può essere potente. Tuttavia, se si dispone di un solo campione di una transazione fraudolenta, da una piccola posizione, significa che tutte le transazioni da tale posizione sono erre o che non si dispone di dati sufficienti?

Una soluzione consiste nell'apprendere con i conteggi. Invece di introdurre altre 40.000 funzionalità, è possibile osservare i conteggi e le proporzioni di frode per ogni codice postale. Usando questi conteggi come funzionalità, si ottengono informazioni sul livello di forza dell'evidenza per ogni valore. Inoltre, codificando le statistiche pertinenti dei conteggi, lo strumento di apprendimento può usare le statistiche per decidere quando modificare l'approccio e usare invece altre funzionalità per ottenere le informazioni.

L'apprendimento basato sul conteggio è interessante per molti motivi. Con l'apprendimento basato sul conteggio, sono disponibili meno funzionalità, che richiedono un minor numero di parametri. Un minor numero di parametri rende l'apprendimento più veloce, una stima più veloce, predittori più piccoli e un minor potenziale di overfit.

Come vengono create le funzionalità basate sul conteggio

Un esempio di base può essere utile per illustrare come vengono create e applicate le funzionalità basate sul conteggio. Si supponga di avere la tabella seguente, con etichette e input. Ogni case (o riga o campione) ha un set di valori nelle colonne. In questo esempio i valori sono A e B.

Colonna di etichetta Valore di input
0 Una
0 A
1 Una
0 B
1 B
1 B
1 B

Ecco i passaggi da eseguire per creare funzionalità basate sul conteggio:

  1. Per un set specifico di valori, trovare tutti gli altri case nel set di dati che hanno lo stesso valore. In questo caso, sono presenti tre istanze di A e quattro istanze di B.
  2. Contare l'appartenenza alla classe di ogni valore come funzionalità di per sé. In questo caso, si ottiene una piccola matrice: in due casi A = 0; un caso in cui A = 1; un caso in cui B = 0; e tre casi in cui B = 1.
  3. In base a questa matrice, è possibile ottenere un'ampia gamma di funzionalità basate sul conteggio. Questi includono un calcolo del rapporto log-probabilità e dei conteggi per ogni classe di destinazione. Nella tabella della sezione successiva vengono visualizzati i dati.

Tabella di esempio delle funzionalità basate sul conteggio

Etichetta 0_0_Class000_Count 0_0_Class001_Count 0_0_Class000_LogOdds 0_0_IsBackoff
0 2 1 0.510826 0
0 2 1 0.510826 0
1 2 1 0.510826 0
0 1 3 -0.8473 0
1 1 3 -0.8473 0
1 1 3 -0.8473 0
1 1 3 -0.8473 0

Esempi

In Usare Machine Learning compilare modelli di stima click-through, il team di Microsoft Machine Learning fornisce una procedura dettagliata su come usare i conteggi in Machine Learning. L'articolo confronta l'efficacia della modellazione basata sul conteggio con altri metodi.

Note tecniche

Questa sezione contiene informazioni dettagliate sull'implementazione, suggerimenti e risposte alle domande frequenti.

Come viene calcolato il valore log-loss

Il valore log-loss non è la normale probabilità di log. In questo caso, la distribuzione precedente viene usata per smussare il calcolo delle probabilità di log.

Si supponga di avere un set di dati usato per la classificazione binaria. In questo set di dati la frequenza precedente per la classe 0 è p_0e la frequenza precedente per la classe 1 è p_1 = 1 – p_0. Per una funzionalità di esempio di training specifica, il conteggio per la classe 0 è x_0e il conteggio per la classe 1 è x_1.

In base a questi presupposti, le probabilità di LogOdds = Log(x0 + c * p0) – Log (x1 + c\p1)log vengono calcolate come , c dove è il coefficiente precedente, che può essere impostato dall'utente. La funzione log usa la base naturale.

In altre parole, per ogni classe i:

Log_odds[i] = Log( (count[i] + prior_coefficient * prior_frequency[i]) / (sum_of_counts - count[i]) + prior_coefficient \* (1 - prior_frequency[i]))

Se il coefficiente precedente è positivo, le probabilità di log possono essere diverse da Log(count[i] / (sum_of_counts – count[i])).

Perché le probabilità di log non vengono calcolate per alcuni elementi

Per impostazione predefinita, tutti gli elementi con un conteggio inferiore a 10 vengono raccolti in un singolo bucket denominato "garbage bin". È possibile modificare questo valore usando l'opzione Garbage bin threshold nel modulo Modify Count Table Parameters .

Elenco dei moduli

La Learning con la categoria Conteggi include i moduli seguenti:

  • Build Counting Transform (Trasformazione conteggio compilazioni): crea una tabella di conteggio e funzionalità basate sul conteggio da un set di dati e quindi salva la tabella e le funzionalità come trasformazione.
  • Export Count Table (Esporta tabella conteggio): esporta una tabella di conteggio da una trasformazione di conteggio. Questo modulo supporta la compatibilità con le versioni precedenti degli esperimenti che creano funzionalità basate sul conteggio usando la tabella di conteggio compilazioni (deprecata) e l'estensore delle funzionalità di conteggio (deprecato).
  • Importa tabella conteggi: importa una tabella di conteggio esistente. Questo modulo supporta la compatibilità con le versioni precedenti degli esperimenti che creano funzionalità basate sul conteggio usando la tabella di conteggio compilazioni (deprecata) e l'estensore delle funzionalità di conteggio (deprecato). Il modulo supporta la conversione delle tabelle di conteggio in trasformazioni di conteggio.
  • Trasformazione Conteggio unione: unisce due set di funzionalità basate sul conteggio.
  • Modifica parametri tabella conteggio: modifica le funzionalità basate sul conteggio derivate da una tabella di conteggio esistente.

Vedi anche