Evaluate Recommender
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).
- Vedere leinformazioni sullo spostamento di progetti di Machine Learning da ML Studio (versione classica) ad Azure Machine Learning.
- Altre informazioni sulle Azure Machine Learning.
La documentazione relativa allo studio di Machine Learning (versione classica) è in fase di ritiro e potrebbe non essere aggiornata in futuro.
Valuta la precisione delle stime del modello del sistema di raccomandazione
Categoria: Machine Learning/Evaluate
Nota
Si applica a: Machine Learning Studio (versione classica)
Nella finestra di progettazione sono disponibili moduli simili Azure Machine Learning trascinamento della selezione.
Panoramica del modulo
Questo articolo descrive come usare il modulo Evaluate Recommender in Machine Learning Studio (versione classica) per misurare l'accuratezza delle stime effettuate da un modello di raccomandazione. Usando questo modulo, è possibile valutare quattro diversi tipi di raccomandazioni:
Classificazioni stimate per un determinato utente ed elemento
Elementi raccomandati per un determinato utente
Un elenco di utenti individuati come correlati a un determinato utente
Un elenco di elementi individuati come correlati a un determinato elemento
Quando si creano stime usando un modello di raccomandazione, vengono restituiti risultati leggermente diversi per ognuno di questi tipi di stima supportati. Il modulo Evaluate Recommender deduce il tipo di stima dal formato di colonna del set di dati con punteggio. Ad esempio, il set di dati con punteggio potrebbe contenere:
- user-item-rating triples
- utenti e relativi elementi consigliati
- utenti e utenti correlati
- elementi e relativi elementi correlati
Il modulo applica anche le metriche delle prestazioni appropriate, in base al tipo di stima effettuata.
Suggerimento
Informazioni sull'esperienza end-to-end di creazione di un sistema di raccomandazione in questa esercitazione del team di sviluppo .NET. Include codice di esempio e informazioni su come chiamare Machine Learning da un'applicazione.
Compilazione del motore di raccomandazione per le applicazioni .NET con Machine Learning
Come configurare Evaluate Recommender
Il modulo Evaluate Recommender confronta l'output delle stime in base a un modello di raccomandazione con i dati di base corrispondenti. Ad esempio, il modulo Score Matchbox Recommender produce set di dati con punteggio che possono essere analizzati con Evaluate Recommender.
Requisiti
Evaluate Recommender richiede i set di dati seguenti come input.
Set di dati di test
Il set di dati di test contiene i dati "ground truth" sotto forma di triple di user-item-rating.
Se si dispone già di un set di dati contenente tre volte la classificazione utente-elemento, è possibile applicare il modulo Split Data (Dividi dati) usando l'opzione RecommenderSplit per creare un set di dati di training e un set di test correlato dal set di dati esistente.
Set di dati con punteggio
Il set di dati con punteggio contiene le stime generate dal modello di raccomandazione.
Le colonne in questo secondo set di dati dipendono dal tipo di stima eseguita durante l'assegnazione dei punteggi. Ad esempio, il set di dati con punteggio può contenere uno degli elementi seguenti:
- Utenti, elementi e classificazioni che l'utente probabilmente avrebbe dato per l'elemento
- Elenco di utenti ed elementi consigliati
- Un elenco di utenti, con utenti probabilmente simili a loro
- Un elenco di elementi, insieme a elementi più smiliari
Metriche
Le metriche delle prestazioni per il modello vengono generate in base al tipo di input. Per informazioni dettagliate, vedere le sezioni seguenti:
- Valutare le classificazioni stimate
- Valutare le raccomandazioni per gli elementi
- Valutare le stime degli utenti correlati
- Valutare le stime degli elementi correlati
Valutare le classificazioni stimate
Quando si valutano le classificazioni stimate, il set di dati con punteggio (il secondo input di Evaluate Recommender) deve contenere tripli di valutazione utente-elemento, in base ai requisiti seguenti:
La prima colonna del set di dati contiene identificatori utente.
La seconda colonna contiene gli identificatori di elemento.
La terza colonna contiene le classificazioni utente-elemento corrispondenti.
Importante
Perché la valutazione riesca, i nomi delle colonne devono essere User
Item
rispettivamente , e Rating
.
Evaluate Recommender confronta le classificazioni nel set di dati ground truth con le classificazioni stimate del set di dati con punteggio e calcola l'errore assoluto medio ( MAE) e l'errore quadratica medio radice ( RMSE).
Gli altri parametri di Evaluate Recommender non hanno alcun effetto sulla valutazione delle stime di valutazione.
Valutare le raccomandazioni per gli elementi
Quando si valuta la raccomandazione per gli elementi, usare un set di dati con punteggio che includa gli elementi consigliati per ogni utente:
La prima colonna del set di dati deve contenere l'identificatore utente.
Tutte le colonne successive devono contenere gli identificatori di elemento consigliati corrispondenti, ordinati in base al livello di pertinente di un elemento per l'utente.
Prima di connettere questo set di dati, è consigliabile ordinare il set di dati in modo che gli elementi più rilevanti si presentino per primi.
Gli altri parametri di Evaluate Recommender non hanno alcun effetto sulla valutazione delle raccomandazioni per gli elementi.
Importante
Per il funzionamento di Evaluate Recommender, i nomi delle colonne devono essere User
, Item 1
Item 2
, Item 3
e così via.
Evaluate Recommender calcola la media del guadagno cumulativo scontato normalizzato (NDCG) e lo restituisce nel set di dati di output.
Poiché non è possibile conoscere l'effettiva "verità di base" per gli elementi consigliati, Evaluate Recommender usa le classificazioni utente-elemento nel set di dati di test come vantaggi nel calcolo del gruppo NDCG. Per fare una valutazione, il modulo di punteggio del sistema di raccomandazione deve solo generare raccomandazioni per elementi con classificazioni verificate (nel set di dati di test).
Valutare le stime degli utenti correlati
Quando si valutano le stime degli utenti correlati, usare un set di dati con punteggio contenente gli utenti correlati per ogni utente di interesse:
La prima colonna deve contenere gli identificatori per ogni utente di interesse.
Tutte le colonne successive contengono gli identificatori per gli utenti correlati stimati. Gli utenti correlati vengono ordinati in base al livello di complessità della proprietà (prima l'utente più correlato).
Per il funzionamento di Evaluate Recommender, i nomi delle colonne devono essere
User
,Related User 1
,Related User 2
Related User 3
, e così via.
Suggerimento
È possibile influenzare la valutazione impostando il numero minimo di elementi che un utente di interesse e gli utenti correlati devono avere in comune.
Evaluate Recommender calcola il guadagno cumulato scontato normalizzato medio (NDCG), basato sulle distanze di Manhattan (L1 Sim NDCG) ed euclidea (L2 Sim NDCG) e restituisce entrambi i valori nel set di dati di output. Poiché non esiste alcuna verità reale per gli utenti correlati, Evaluate Recommender usa la procedura seguente per calcolare i gruppi di sicurezza di rete medi.
Per ogni utente di interesse nel set di dati con punteggio:
Trovare tutti gli elementi del set di dati di test che sono stati calcolati dall'utente di interesse e dall'utente correlato presi in considerazione.
Creare due vettori dalle classificazioni di questi elementi: uno per l'utente di interesse e uno per l'utente correlato in considerazione.
Calcolare il guadagno come la somiglianza dei due vettori di classificazione risultanti, in rapporto alla distanza di Manhattan (L1) ed euclidea (L2).
Calcolare L1 Sim NDCG e L2 Sim NDCG, usando i guadagni di tutti gli utenti correlati.
Media dei valori NDCG per tutti gli utenti nel set di dati con punteggio.
In altre parole, il guadagno viene calcolato come somiglianza (distanze normalizzate Distorsioni euclianie) tra un utente di interesse (la voce nella prima colonna del set di dati con punteggio) e un determinato utente correlato (la voce nella colonna n-esima del set di dati con punteggio). Il guadagno di questa coppia utente viene calcolato usando tutti gli elementi per i quali entrambi gli elementi sono stati classificati nei dati originali (set di test). Il gruppo di sicurezza di rete viene quindi calcolato aggregando i singoli utili per un singolo utente di interesse e tutti gli utenti correlati, usando lo sconto logaritmico. Ovvero, viene calcolato un valore NDCG per ogni utente di interesse (ogni riga nel set di dati con punteggio). Il numero che viene infine segnalato è la media aritmetica per tutti gli utenti di interesse nel set di dati con punteggio, ovvero le relative righe.
Per fare una valutazione, il modulo di punteggio del sistema di raccomandazione deve solo prevedere gli utenti correlati che hanno elementi con classificazioni verificate (nel set di dati di test).
Valutare le stime degli elementi correlati
Quando si valuta la stima degli elementi correlati, usare un set di dati con punteggio contenente gli elementi correlati per ogni elemento di interesse:
La prima colonna deve contenere identificatori per gli elementi di interesse.
Tutte le colonne successive devono contenere identificatori per gli elementi correlati stimati, ordinati in base al modo in cui sono correlati all'elemento di interesse (prima l'elemento più correlato).
Per il funzionamento di Evaluate Recommender, i nomi delle colonne devono essere
Item
,Related Item 1
,Related Item 2
Related Item 3
, e così via.
Suggerimento
È possibile influenzare la valutazione impostando il numero minimo di utenti che un elemento di interesse e gli elementi correlati devono avere in comune.
Evaluate Recommender calcola le distanze medie del guadagno cumulativo scontato normalizzato (NDCG) in base alle distanze Disanzite Disegne (L1 Sim NDCG) ed Euclideo (L2 Sim NDCG) e restituisce entrambi i valori nel set di dati di output. Poiché non esiste alcuna verità reale per gli elementi correlati, Evaluate Recommender calcola i NDCG medi come indicato di seguito:
Per ogni elemento di interesse nel set di dati con punteggio:
Trovare tutti gli utenti del set di dati di test che hanno valutato l'elemento di interesse e l'elemento correlato presi in considerazione.
Creare due vettori dalle classificazioni di questi utenti, una per l'elemento di interesse e l'altra per l'elemento correlato presi in considerazione.
Calcolare il guadagno come la somiglianza dei due vettori di classificazione risultanti in rapporto alla distanza di Manhattan (L1) ed euclidea (L2).
Calcolare L1 Sim NDCG e L2 Sim NDCG, usando i guadagni di tutti gli elementi correlati.
Media dei valori NDCG su tutti gli elementi di interesse nel set di dati con punteggio.
In altre parole, il guadagno viene calcolato come somiglianza (distanze normalizzate Distorsioni euclianie) tra un elemento di interesse (la voce nella prima colonna del set di dati con punteggio) e un determinato elemento correlato (la voce nella colonna n-esima del set di dati con punteggio). Il guadagno di questa coppia di elementi viene calcolato usando tutti gli utenti che hanno valutato entrambi questi elementi nei dati originali (set di test). Il gruppo NDCG viene quindi calcolato aggregando i singoli utili per un singolo elemento di interesse e tutti gli elementi correlati, usando lo sconto logaritmico. Ovvero, viene calcolato un valore NDCG per ogni elemento di interesse (ogni riga nel set di dati con punteggio). Il numero che viene infine segnalato è la media aritmetica su tutti gli elementi di interesse nel set di dati con punteggio,ad esempio le relative righe.
Pertanto, per valutare, il modulo di assegnazione dei punteggi dello raccomandazione deve prevedere solo gli elementi correlati con classificazioni di verità di base (nel set di dati di test).
Esempio
Per esempi di come vengono usati i modelli di raccomandazione Machine Learning, vedere l'Azure AI Gallery:
Esempio di raccomandazione di film: illustra come eseguire il training, la valutazione e il punteggio usando un modello di raccomandazione.
Building recommendation engine for .NET applications using Machine Learning (Creazione del motore di raccomandazione per le applicazioni .NET con Machine Learning): questo blog fornisce una descrizione dettagliata di come creare un modello di raccomandazione per film.
Input previsti
Nome | Tipo | Descrizione |
---|---|---|
Set di dati di test | Tabella dati | Set di dati di test |
Set di dati con punteggio | Tabella dati | Set di dati con punteggio |
Parametri del modulo
Nome | Intervallo | Type | Predefinito | Descrizione |
---|---|---|---|---|
Minimum number of items that the query user and the related user must have rated in common | >=1 | Integer | 2 | Specifica il numero minimo di elementi che devono essere stati classificati sia dall'utente della query che dall'utente correlato Questo parametro è facoltativo |
Minimum number of users that the query item and the related item must have been rated by in common | >=1 | Integer | 2 | Specifica il numero minimo di utenti che devono aver classificato sia l'elemento della query che l'elemento correlato Questo parametro è facoltativo |
Output
Nome | Tipo | Descrizione |
---|---|---|
Metrica | Tabella dati | Tabella di metriche di valutazione |
Eccezioni
Eccezione | Descrizione |
---|---|
Errore 0022 | L'eccezione si verifica se il numero di colonne selezionate nel set di dati di input non corrisponde al numero previsto. |
Errore 0003 | L'eccezione si verifica se uno o più input sono null o vuoti. |
Errore 0017 | Si verifica un'eccezione se il tipo di una o più colonne specificate non è supportato dal modulo attuale. |
Errore 0034 | L'eccezione si verifica se esiste più di una classificazione per una determinata coppia utente-elemento. |
Errore 0018 | L'eccezione si verifica se il set di dati di input non è valido. |
Errore 0002 | L'eccezione si verifica se non è stato possibile analizzare o convertire uno o più parametri dal tipo specificato nel tipo richiesto dal metodo di destinazione. |
Per un elenco di errori specifici dei moduli di Studio (versione classica), vedere l'Machine Learning codici di errore.
Per un elenco delle eccezioni API, vedere l'Machine Learning di errore dell'API REST.