Dividere i dati usando la suddivisione del sistema di raccomandazione

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 come usare l'opzione Recommender Split (Divisione raccomandazione) nel modulo Split Data (Dividi dati) di Machine Learning Studio (versione classica). Questa opzione è utile quando è necessario preparare i set di dati di training e di test per l'uso con un modello di raccomandazione. Non solo questi modelli richiedono un formato specifico, ma può essere molto difficile dividere classificazioni, utenti ed elementi in modo bilanciato senza strumenti speciali.

Nota

Si applica a: Machine Learning Studio (versione classica)

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

L'opzione Dividi raccomandazione semplifica questo processo richiedendo il tipo di modello di raccomandazione che si sta usando: ad esempio, si consigliano elementi, si suggerisce una valutazione o si trovano utenti correlati? Divide quindi il set di dati per i criteri specificati, ad esempio come gestire gli utenti a freddo o gli elementi ad accesso non attivo.

Quando si sudondono i set di dati, il modulo restituisce due set di dati, uno destinato al training e l'altro per il test o la valutazione del modello. Se il set di dati di input contiene dati aggiuntivi per ogni istanza (ad esempio classificazioni), questi vengono mantenuti nell'output.

Per informazioni generali sul partizionamento dei dati per gli esperimenti di Machine Learning, vedere

Altre opzioni nel modulo Split Data (Dividi dati) supportano diversi modi per dividere i dati:

Dividere un set di dati usato da un modello di raccomandazione

L'opzione Dividi raccomandazione viene fornita in modo specifico per i dati usati per il training dei sistemi di raccomandazione.

Prima di usare questa opzione, assicurarsi che i dati siano in un formato compatibile. Il componente di suddivisione del sistema di raccomandazione funziona in base al presupposto che il set di dati sia costituito solo da coppie utente-elemento o da coppie utente-elemento-classificazione tripli. Per informazioni dettagliate, vedere Requisiti dei dati di input in questo articolo.

  1. Aggiungere il modulo Split Data (Dividi dati) all'esperimento e connetterlo come input al set di dati da dividere.

  2. Per Modalità di suddivisione selezionare Suddivisione del sistema di raccomandazione.

  3. Impostare le opzioni seguenti per controllare la modalità di divise dei valori. Specificare una percentuale rappresentata come numero compreso tra 0 e 1.

    • Fraction of training only users (Frazione di utenti solo training): specificare la frazione di utenti da assegnare solo al set di dati di training. Ciò significa che le righe non verranno mai usate per testare il modello.

    • Fraction of test user ratings for training (Frazione delle classificazioni utente di test per il training): specificare che una parte delle classificazioni utente raccolte può essere usata per il training.

    • Frazione di utenti non attivi: gli utenti ad accesso freddo sono utenti che il sistema non ha rilevato in precedenza. In genere, poiché il sistema non dispone di informazioni su questi utenti, hanno valore in termini di training, ma le stime potrebbero essere meno accurate.

    • Frazione di elementi ad freddo: gli elementi ad freddo sono elementi che il sistema non ha rilevato in precedenza. Poiché il sistema non dispone di informazioni su questi elementi, hanno valore in termini di training, ma le stime potrebbero essere meno accurate.

    • Frazione di utenti ignorati: questa opzione consente al sistema di raccomandazione di ignorare alcuni utenti, che consente di eseguire il training del modello su un subset di dati. Questo può essere utile per motivi prestazionali. Specificare la percentuale di utenti che devono essere ignorati.

    • Frazione di elementi ignorati: la barra di divisione del sistema di raccomandazione può ignorare alcuni elementi ed eseguire il training del modello su un subset di dati. Questo può essere utile per motivi prestazionali. Specificare la percentuale di elementi da ignorare.

  4. Rimuovi elementi ad accesso sporadico prodotti occasionalmente: questa opzione è in genere impostata su zero per garantire che tutte le entità nel set di test siano incluse nel set di training.

    Un elemento è detto "occasionalmente ignoto" se è incluso solo nel set di test e non è stato scelto esplicitamente come ignoto. Tali elementi possono essere generati dai passaggi (4) e (6) nell'algoritmo descritto nella sezione Come vengono suddivisi i dati del sistema di raccomandazione.

  5. Valore di seed casuale per la raccomandazione: specificare un valore di seed se si vuole suddividere i dati nello stesso modo ogni volta. In caso contrario, per impostazione predefinita i dati di input vengono suddivisi in modo casuale, usando un valore di clock di sistema come valore di seed.

  6. Eseguire l'esperimento.

Esempio

Per esempi su come dividere un set di classificazioni e funzionalità usate per il training o il test di un modello di raccomandazione, è consigliabile esaminare la procedura dettagliata fornita con questo esperimento di esempio nel Azure AI Gallery: Raccomandazione di film

Note tecniche

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

Requisiti per i dati di input

Il componente di suddivisione del sistema di raccomandazione funziona in base al presupposto che il set di dati sia costituito solo da coppie utente-elemento o da coppie utente-elemento-classificazione tripli. Pertanto, il modulo Split Data (Dividi dati) non può funzionare su set di dati con più di tre colonne, per evitare confusione con i dati di tipo funzionalità.

Se il set di dati contiene troppe colonne, è possibile che venga visualizzato questo errore:

Errore 0022: Il numero di colonne selezionate nel set di dati di input non è uguale a x

Come soluzione alternativa, è possibile usare Seleziona colonne nel set di dati per rimuovere alcune colonne. È sempre possibile aggiungere nuovamente le colonne in un secondo momento usando il modulo Aggiungi colonne.

In alternativa, se il set di dati ha molte funzionalità da usare nel modello, dividere il set di dati usando un'opzione diversa ed eseguire il training del modello usando Train Model (Training modello) anziché Train Matchbox Recommender (Strumento di raccomandazione Train Matchbox).

Per informazioni dettagliate sui formati di dati supportati, vedere Train Matchbox Recommender.

Suggerimenti per l'uso

  • Se il set di dati non contiene almeno due righe, viene generato un errore.

  • Se si specifica un numero come percentuale o si usa una stringa contenente il carattere "%", il valore viene interpretato come una percentuale.

    Tutti i valori percentuali devono essere compresi nell'intervallo (0, 100), esclusi i valori 0 e 100.

  • Se si specifica un numero o una percentuale che corrisponde a un numero a virgola mobile minore di uno e non si usa il simbolo di percentuale (%), il numero viene interpretato come un valore proporzionale.

Dettagli dell'implementazione

Durante la suddivisione dei dati in training set e set di test da usare con un modello di raccomandazione, viene usato l'algoritmo seguente:

  1. La frazione richiesta di elementi ignorati viene rimossa con tutte le osservazioni associate.

  2. La frazione richiesta di elementi ignoti viene spostata nel set di test con tutte le osservazioni associate.

  3. La frazione richiesta di utenti ignorati rimanenti dopo i primi due passaggi viene rimossa con tutte le osservazioni associate.

  4. La frazione richiesta di utenti ignoti rimanenti dopo i primi due passaggi viene spostata nel set di test con tutte le osservazioni associate.

  5. La frazione richiesta di utenti solo di training rimanenti dopo i primi due passaggi viene spostata nel training set con tutte le osservazioni associate.

  6. Per ogni utente rimanente dopo tutti i passaggi precedenti, la frazione richiesta di classificazioni di utenti di test per il training viene spostata nel training set, mentre il resto viene spostato nel set di test.

    Viene sempre spostata almeno un'osservazione nel training set per ogni utente.

  7. Se richiesto, le istanze associate agli elementi ignoti generati occasionalmente possono essere rimosse dal set di test.

    Un elemento è detto "occasionalmente ignoto" se è incluso solo nel set di test e non è stato scelto esplicitamente come ignoto. Tali elementi possono essere generati dal passaggi (4) e (6).

    L'uso previsto di questa opzione è l'impostazione del numero richiesto di utenti ed elementi ignoti su zero. Ciò garantisce che tutte le entità nel set di test siano incluse nel training set.

Vedi anche

DividereDataPartition e Split