Riferimenti relativi al formato delle composizioni - Amazon Machine Learning

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à.

Riferimenti relativi al formato delle composizioni

Le composizione (recipe) Amazon ML contengono le istruzioni per trasformare i dati nel quadro del processo di machine learning. Le composizioni vengono definite utilizzando una sintassi simile a JSON, ma hanno restrizioni aggiuntive rispetto a quelle normalmente presenti in JSON. Le composizioni hanno le seguenti sezioni, che devono essere visualizzate nell'ordine mostrato qui:

  • Groups (Gruppi) abilita il raggruppamento di più variabili, per facilitare l'applicazione di trasformazioni. Ad esempio, è possibile creare un gruppo di tutte le variabili che hanno a che fare con le parti di testo libero di una pagina Web (titolo, corpo) e quindi eseguire una trasformazione su tutte le parti contemporaneamente.

  • Assignments (Assegnazioni) abilita la creazione di variabili intermedie denominate che possono essere riutilizzate in fase di elaborazione.

  • Outputs (Risultati) definisce quali variabili saranno utilizzate nel processo di apprendimento e quali trasformazioni (se presenti) si applicano a tali variabili.

Gruppi

È possibile definire gruppi di variabili per trasformare collettivamente tutte le variabili all'interno dei gruppi o utilizzare queste variabili per il machine learning senza trasformarle. Per impostazione predefinita, Amazon ML crea i seguenti gruppi per l'utente:

ALL_TEXT, ALL_NUMERIC, ALL_CATEGORICAL, ALL_BINARY: gruppi specifici per tipo, basati su variabili definite nello schema dell'origine dati.

Nota

Non è possibile creare un gruppo con ALL_INPUTS.

Queste variabili possono essere utilizzate nella sezione degli output della composizione senza essere definite. È inoltre possibile creare gruppi personalizzati aggiungendo o togliendo variabili da gruppi esistenti, oppure direttamente da una raccolta di variabili. In questo esempio dimostriamo tutti e tre gli approcci e la sintassi per l'assegnazione dei gruppi:

"groups": { "Custom_Group": "group(var1, var2)", "All_Categorical_plus_one_other": "group(ALL_CATEGORICAL, var2)" }

I nomi dei gruppi devono iniziare con un carattere alfabetico e possono essere costituiti da 1 a 64 caratteri. Se il nome del gruppo non inizia con un carattere alfabetico o se contiene caratteri speciali (, ' "\t\r\n ( ) \), il nome deve essere racchiuso tra virgolette per essere incluso nella composizione.

Assegnazioni

È possibile assegnare una o più trasformazioni a una variabile intermedia, per comodità e leggibilità. Ad esempio, se si dispone di una variabile di testo denominata email_subject e si applica la trasformazione minuscola, è possibile denominare la variabile risultante email_subject_lowercase, consentendo di tenerne traccia facilmente altrove nella composizione. Le assegnazioni possono anche essere concatenate, per consentire di applicare più trasformazioni in un ordine specificato. L'esempio seguente mostra assegnazioni singole e concatenate nella sintassi della composizione:

"assignments": { "email_subject_lowercase": "lowercase(email_subject)", "email_subject_lowercase_ngram":"ngram(lowercase(email_subject), 2)" }

I nomi delle variabili intermedie devono iniziare con un carattere alfabetico e possono essere costituiti da 1 a 64 caratteri. Se il nome non inizia con un carattere alfabetico o se contiene caratteri speciali (, ' "\t\r\n ( ) \), il nome deve essere racchiuso tra virgolette per essere incluso nella composizione.

Output

La sezione risultati (output) controlla quali variabili di input saranno usate per il processo di apprendimento, e quali trasformazioni sono applicate. Una sezione di output vuota o inesistente è un errore, perché significa che nessuno dato sarà passato al processo di apprendimento.

La sezione di output più semplice include solo il gruppo predefinito ALL_INPUTS, indicando ad Amazon ML di utilizzare tutte le variabili definite nell'origine dati per l'apprendimento:

"outputs": [ "ALL_INPUTS" ]

La sezione di output può anche fare riferimento agli altri gruppi predefiniti, indicando ad Amazon ML di utilizzare tutte le variabili di questi gruppi:

"outputs": [ "ALL_NUMERIC", "ALL_CATEGORICAL" ]

La sezione di output può anche fare riferimento a gruppi personalizzati. In questo esempio, solo uno dei gruppi personalizzati definiti nella sezione assegnazioni dei raggruppamenti nell'esempio precedente verrà utilizzato per il machine learning. Tutte le altre variabili saranno rimosse:

"outputs": [ "All_Categorical_plus_one_other" ]

La sezione output può anche fare riferimento ad assegnazioni di variabili definite nella sezione assegnazioni:

"outputs": [ "email_subject_lowercase" ]

Inoltre le variabili di input o le trasformazioni possono essere definite direttamente nella sezione di output:

"outputs": [ "var1", "lowercase(var2)" ]

L'output deve specificare in modo esplicito tutte le variabili e le variabili trasformate che si prevede saranno disponibili per il processo di apprendimento. Supponiamo, ad esempio, di includere nell'output un prodotto cartesiano di var1 e var2. Se si desidera includere anche entrambe le variabili non elaborate var1 e var2, è necessario aggiungere le variabili non elaborate alla sezione di output:

"outputs": [ "cartesian(var1,var2)", "var1", "var2" ]

Gli output possono includere commenti per migliorare la leggibilità, con l'aggiunta del testo del commento insieme alla variabile:

"outputs": [ "quantile_bin(age, 10) //quantile bin age", "age // explicitly include the original numeric variable along with the binned version" ]

È possibile combinare tutti questi approcci all'interno della sezione di output.

Nota

I commenti non sono consentiti nella console di Amazon ML quando si aggiunge una composizione.

Esempio completo di composizione

L'esempio seguente si riferisce a diversi processori di dati integrati che sono stati introdotti negli esempi precedenti:

{ "groups": { "LONGTEXT": "group_remove(ALL_TEXT, title, subject)", "SPECIALTEXT": "group(title, subject)", "BINCAT": "group(ALL_CATEGORICAL, ALL_BINARY)" }, "assignments": { "binned_age" : "quantile_bin(age,30)", "country_gender_interaction" : "cartesian(country, gender)" }, "outputs": [ "lowercase(no_punct(LONGTEXT))", "ngram(lowercase(no_punct(SPECIALTEXT)),3)", "quantile_bin(hours-per-week, 10)", "hours-per-week // explicitly include the original numeric variable along with the binned version", "cartesian(binned_age, quantile_bin(hours-per-week,10)) // this one is critical", "country_gender_interaction", "BINCAT" ] }