Non aggiorniamo più il servizio Amazon Machine Learning né accettiamo nuovi utenti. Questa documentazione è disponibile per gli utenti esistenti, ma non la aggiorneremo più. Per ulteriori informazioni, consulta la paginaCos'è Amazon Machine Learning.
Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.
Divisione dei dati
L'obiettivo fondamentale di un modello ML è fare previsioni accurate su future istanze di dati al di là di quelle usate per addestrare i modelli. Prima di utilizzare un modello ML per fare previsioni, è necessario valutare le prestazioni predittive del modello. Per stimare la qualità delle previsioni di un modello ML con dati che non abbia visto, è possibile prenotare o dividere una parte dei dati per i quali si conosce già la risposta come proxy per i dati futuri e valutare quanto sono precise le previsioni del modello ML riguardo alle risposte corrette per tali dati. È possibile ripartire l'origine dati tra un'origine dati di addestramento e un'origine dati di valutazione.
Amazon ML offre tre opzioni per frazionare i dati:
-
Pre-dividere i dati- È possibile dividere i dati in due ubicazioni di input, prima di caricarli su Amazon Simple Storage Service (Amazon S3) e creare con loro due diverse origini dati.
-
Divisione sequenziale Amazon ML- È possibile dire ad Amazon ML di dividere i dati sequenzialmente durante la creazione delle origini dati di addestramento e di valutazione.
-
Divisione casuale Amazon ML- È possibile dire ad Amazon ML di dividere i dati con un metodo inizializzato in modo casuale durante la creazione delle origini dati di addestramento e di valutazione.
Pre-divisione dei dati
Se si desidera un controllo esplicito sui dati delle origini dati di addestramento e di valutazione, è possibile dividere i dati in ubicazioni dati distinte e creare origini dati separate per l'ubicazione di input e quella di valutazione.
Divisione sequenziale dei dati
Un modo semplice per dividere i dati di input per l'addestramento e la valutazione è selezionare sottoinsiemi non sovrapposti dei dati mantenendo l'ordine dei record dei dati. Questo approccio è utile se si desidera valutare i modelli ML sui dati per una determinata data o all'interno di un determinato intervallo di tempo. Ad esempio, supponiamo di avere a disposizione i dati relativi al coinvolgimento dei clienti negli ultimi cinque mesi e di volere utilizzare questi dati storici per prevedere il coinvolgimento dei clienti nel mese successivo. L'uso dell'inizio dell'intervallo per l'addestramento e dei dati dalla fine dell'intervallo per la valutazione potrebbe produrre una stima più precisa della qualità del modello rispetto all'utilizzo di record di dati provenienti dall'intero intervallo di dati.
La figura seguente mostra esempi di quando è preferibile utilizzare una strategia di divisione sequenziale rispetto a una strategia casuale.
Quando si crea un'origine dati, è possibile scegliere di dividere le origini dati sequenzialmente cosicché Amazon ML usa il primo 70% dei dati per l'addestramento e il restante 30% dei dati per la valutazione. Questa è l'impostazione di default quando si utilizza la console Amazon ML per dividere i dati.
Divisione casuale dei dati
La divisione casuale dei dati di input in origini dati per l'addestramento e per la valutazione garantisce che la distribuzione dei dati sia simile per le origini dati di addestramento e di valutazione. Si sceglie questa opzione quando non è necessario conservare l'ordine dei dati di input.
Amazon ML utilizza un metodo di generazione di numeri pseudocasuale per dividere i dati. La partenza si basa parzialmente su un valore di stringa di input e parzialmente sul contenuto degli stessi dati. Per impostazione predefinita, la console Amazon ML usa la posizione S3 dei dati di input come stringa. Gli utenti API possono fornire una stringa personalizzata. Ciò significa che se si utilizzano lo stesso bucket e gli stessi dati S3, Amazon ML divide i dati nello stesso modo. Per modificare il modo in cui Amazon ML divide i dati, è possibile utilizzare ilCreateDatasourceFromS3
,CreateDatasourceFromRedshift
, oppureCreateDatasourceFromRDS
API e fornisce un valore per la stringa seed. Quando si utilizzano queste API per creare origini dati separate per l'addestramento e per la valutazione, è importante utilizzare lo stesso valore di stringa di partenza per entrambe le origini dati e il flag complementare per un'origine dati, per garantire che non vi siano sovrapposizioni tra i dati di addestramento e quelli di valutazione.
Un problema comune nello sviluppo di un modello di ML di alta qualità è valutare il modello ML su dati che non siano simili a quelli utilizzati per l'addestramento. Ad esempio, supponiamo di utilizzare ML per prevedere il genere dei film e che i dati di addestramento contengano film dei generi Avventura, Commedia e Documentario. Tuttavia, i dati di valutazione contengono solo i dati dei generi Romantico e Thriller. In questo caso, il modello ML non apprende le informazioni sui generi Romantico e Thriller e la valutazione non consente di capire quanto è elevata la qualità delle prestazioni di apprendimento del modello per i generi Avventura, Commedia e Documentario. Di conseguenza, le informazioni sul genere sono inutili e la qualità delle previsioni del modello ML per tutti i generi è compromessa. Il modello e la valutazione sono troppo diversi (hanno statistiche descrittive estremamente diverse) per essere utili. Questo può accadere quando i dati di input sono ordinati per una delle colonne del set di dati e quindi divisi sequenzialmente.
Se le origini dati di addestramento e di valutazione hanno diverse distribuzioni dei dati, verrà visualizzato un avviso di valutazione nel modello di valutazione. Per ulteriori informazioni sugli avvisi di valutazione, consultare Avvisi relativi alla valutazione.
Non è necessario utilizzare la divisione casuale in Amazon ML se i dati di input sono già randomizzati, ad esempio mescolando casualmente i dati di input in Amazon S3 o utilizzando una query SQL Amazon Redshiftrandom()
funzione o query MySQL SQLrand()
funzione durante la creazione delle origini dati. In questi casi, è possibile utilizzare l'opzione di divisione sequenziale per creare origini dati di addestramento e valutazione con distribuzioni simili.