Creazione di uno schema di dati per Amazon ML - 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à.

Creazione di uno schema di dati per Amazon ML

Uno schema è composto da tutti gli attributi dei dati di input e dai relativi tipi di dati. Permette ad Amazon ML di comprendere i dati dell'origine dati. Amazon ML utilizza le informazioni nello schema per leggere e interpretare i dati di input, calcolare le statistiche, applicare le trasformazioni corrette degli attributi e ottimizzare i propri algoritmi di apprendimento. Se non si fornisce uno schema, Amazon ML ne ricava uno dai dati.

Esempio di schema

Per consentire ad Amazon ML di leggere correttamente i dati di input e generare previsioni accurate, a ogni attributo deve essere assegnato il tipo di dati corretto. Prendiamo in esame un esempio per vedere come i tipi di dati sono assegnati agli attributi e in che modo gli attributi e i tipi di dati sono inclusi in uno schema. Chiameremo il nostro esempio "Customer Campaign" (Campagna clienti) perché vogliamo prevedere quali clienti risponderanno alla nostra campagna e-mail. Il file di input è un file .csv con nove colonne:

1,3,web developer,basic.4y,no,no,1,261,0 2,1,car repair,high.school,no,no,22,149,0 3,1,car mechanic,high.school,yes,no,65,226,1 4,2,software developer,basic.6y,no,no,1,151,0

Questo è lo schema per questi dati:

{     "version": "1.0",     "rowId": "customerId",     "targetAttributeName": "willRespondToCampaign",     "dataFormat": "CSV",     "dataFileContainsHeader": false,     "attributes": [         {             "attributeName": "customerId",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "jobId",             "attributeType": "CATEGORICAL"         }, { "attributeName": "jobDescription", "attributeType": "TEXT" },         {             "attributeName": "education",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "housing",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "loan",             "attributeType": "CATEGORICAL"         },         {             "attributeName": "campaign",             "attributeType": "NUMERIC"         },         {             "attributeName": "duration",             "attributeType": "NUMERIC"         }, { "attributeName": "willRespondToCampaign", "attributeType": "BINARY" } ] }

Nel file dello schema di questo esempio, il valore di rowId è customerId:

"rowId": "customerId",

L'attributo willRespondToCampaign viene definito come attributo di destinazione:

"targetAttributeName": "willRespondToCampaign ",

L'attributo customerId e il tipo di dati CATEGORICAL sono associati alla prima colonna, l'attributo jobId e il tipo di dati CATEGORICAL sono associati alla seconda colonna, l'attributo jobDescription e il tipo di dati TEXT sono associati alla terza colonna, l'attributo education e il tipo di dati CATEGORICAL sono associati alla quarta colonna e così via. La nona colonna è associata a un attributo willRespondToCampaign con un tipo di dati BINARY e questo attributo, inoltre, viene definito come l'attributo di destinazione.

Utilizzo del campo targetAttributeName

Il valore targetAttributeName è il nome dell'attributo che si desidera prevedere. È necessario assegnare un targetAttributeName durante la creazione o la valutazione di un modello.

Quando si sta allenando o valutando un modello ML,targetAttributeNameidentifica il nome dell'attributo nei dati di input che contengono le risposte «corrette» per l'attributo di destinazione. Amazon ML utilizza il target, che include le risposte corrette, per rilevare i pattern e generare un modello ML.

Quando si sta valutando il modello, Amazon ML utilizza il target per verificare l'accuratezza delle previsioni. Dopo aver creato e valutato il modello ML, è possibile utilizzare i dati con un targetAttributeName non assegnato per generare previsioni con il modello ML.

È possibile definire l'attributo di destinazione nella console di Amazon ML al momento della creazione di un'origine dati o in un file di schema. Se si crea il proprio file di schema, utilizzare la sintassi seguente per definire l'attributo di destinazione:

"targetAttributeName": "exampleAttributeTarget",

In questo esempio, exampleAttributeTarget è il nome dell'attributo nel file di input che costituisce l'attributo di destinazione.

Utilizzo del campo rowID

row ID (ID riga) è un flag facoltativo associato a un attributo dei dati di input. Se specificato, l'attributo contrassegnato come row ID è incluso nell'output di previsione. Questo attributo semplifica l'associazione tra una previsione e la corrispondente osservazione. Un esempio di ottimo row ID è un ID cliente o un attributo univoco simile.

Nota

L'ID riga è solo per riferimento. Amazon ML non lo utilizza durante l'addestramento di un modello ML. La selezione di un attributo come ID riga lo esclude dall'uso per l'addestramento di un modello ML.

È possibile definire ilrow IDnella console di Amazon ML al momento della creazione di un'origine dati o in un file di schema. Se si crea il proprio file di schema, utilizzare la sintassi seguente per definire il row ID:

"rowId": "exampleRow",

Nell'esempio precedente, exampleRow è il nome dell'attributo nel file di input definito come ID riga.

Quando si generano previsioni in batch, è possibile ottenere l'output seguente:

tag,bestAnswer,score 55,0,0.46317 102,1,0.89625

In questo esempio, RowID rappresenta l'attributo customerId. Ad esempio, si prevede che il customerId 55 risponderà alla campagna e-mail con bassa fiducia (0,46317), mentre si prevede che customerId 102 risponderà alla campagna e-mail con elevata fiducia (0,89625).

Utilizzo del campo AttributeType

In Amazon ML, esistono quattro tipi di dati per gli attributi:

Binary

Scegliere BINARY per un attributo che ha solo due stati possibili, ad esempio yes o no.

Ad esempio, l'attributo isNew, per verificare se una persona è un nuovo cliente, potrà avere un valore true per indicare che la persona è un nuovo cliente e un valore false per indicare che non è un nuovo cliente.

I valori negativi validi sono 0, n, no, f e false.

I valori positivi validi sono 1, y, yes, t e true.

Amazon ML ignora il caso di input binari e rimuove lo spazio bianco circostante. Ad esempio, " FaLSe " è un valore binario valido. È possibile combinare i valori binari utilizzati nella stessa origine dati, ad esempio utilizzandotrue,no, e1. Solo uscite Amazon ML0e1per gli attributi binari.

Categorico

Scegliere CATEGORICAL (categorico) per un attributo che utilizza un numero limitato di valori univoci di stringa. Ad esempio, un ID utente, il mese e un codice postale sono valori categorici. Gli attributi categorici vengono trattati come una singola stringa e non sono sottoposti a ulteriore tokenizzazione.

Numerici

Scegliere NUMERIC (numerico) per un attributo che utilizza una quantità come un valore.

Ad esempio, temperatura, peso e percentuale di clic sono valori numerici.

Non tutti gli attributi che contengono numeri sono numerici. Gli attributi categorici, come ad esempio i giorni del mese e gli ID, sono spesso rappresentati da numeri. Per essere considerato numerico, un numero deve essere paragonabile a un altro numero. Ad esempio, l'ID cliente 664727 non dice nulla riguardo all'ID cliente 124552, ma una ponderazione di 10 indica che tale attributo è più pesante di un attributo con una ponderazione di 5. I giorni del mese non sono numerici, perché il primo giorno di un mese può verificarsi prima o dopo il secondo giorno di un altro mese.

Nota

Quando si utilizza Amazon ML per creare il proprio schema, assegna ilNumerictipo di dati per tutti gli attributi che utilizzano i numeri. Se Amazon ML crea lo schema, verificare la presenza di assegnazioni errate e impostare tali attributi suCATEGORICAL.

Text (Testo)

Scegliere TEXT per un attributo che è una stringa di parole. Quando legge gli attributi di testo, Amazon ML li converte in token, delimitati da spazi.

Ad esempio, email subject diventa email e subject, mentre email-subject here diventa email-subject e here.

Se il tipo di dati di una variabile nello schema di addestramento non corrisponde al tipo di dati per tale variabile nello schema di valutazione, Amazon ML modifica il tipo di dati di valutazione in base al tipo di dati di addestramento. Ad esempio, se lo schema dei dati di allenamento assegna un tipo di dati diTEXTalla variabileage, ma lo schema di valutazione assegna un tipo di datiNUMERICaage, quindi Amazon ML tratta le età dei dati di valutazione comeTEXTvariabili invece diNUMERIC.

Per informazioni sulle statistiche associate a ogni tipo di dati, consultare Statistiche descrittive.

Fornire uno schema ad Amazon ML

Ogni origine dati richiede uno schema. È possibile scegliere tra due modi per fornire uno schema ad Amazon ML:

  • Consentire ad Amazon ML di dedurre i tipi di dati di ogni attributo dal file di dati di input e di creare automaticamente uno schema per l'utente.

  • Fornire un file di schema al caricamento dei dati Amazon Simple Simple Storage Service (Amazon S3).

Consentire ad Amazon ML di creare uno schema

Quando si utilizza la console di Amazon ML per creare un'origine dati, Amazon ML utilizza regole semplici, basate sui valori delle variabili, per creare lo schema. È consigliabile rivedere lo schema creato da Amazon ML e correggere i tipi di dati, se non sono corretti.

Fornire uno schema

Dopo aver creato il file di schema, è necessario renderlo disponibile per Amazon ML. Sono disponibili due opzioni:

  1. Fornire lo schema utilizzando la console Amazon ML.

    Utilizzare la console per creare l'origine dati e includere il file di schema aggiungendo l'estensione .schema al nome del file dei dati di input. Ad esempio, se l'URI di Amazon Simple Storage Service (Amazon Simple Storage Service) per i dati di input è s3: //my-bucket-name/data/input.csv, l'URI dello schema sarà s3: //my-bucket-name/data/input.csv.schema. Amazon ML individua automaticamente il file di schema fornito invece di tentare di dedurre lo schema dai dati.

    Per usare una directory di file come dati di input per Amazon ML, aggiungere l'estensione .schema al percorso della directory. Ad esempio, se i file di dati si trovano nel percorso s3://examplebucket/path/to/data/, l'URI dello schema sarà s3://examplebucket/path/to/data/.schema.

  2. Fornire lo schema utilizzando l'API Amazon ML API.

    Se si prevede di richiamare l'API Amazon ML per creare l'origine dati, è possibile caricare il file di schema in Amazon S3 e quindi fornire l'URI a tale file nelDataSchemaLocationS3attributo delCreateDataSourceFromS3API. Per ulteriori informazioni, consultare CreateDataSourceFromS3.

    È possibile fornire lo schema direttamente nel payload diCreateDataSource*APIsinvece di salvarlo prima in Amazon S3. Per farlo è sufficiente collocare l'intera stringa dello schema nell'attributo DataSchema delle API CreateDataSourceFromS3, CreateDataSourceFromRDSo CreateDataSourceFromRedshift. Per ulteriori informazioni, consultare la pagina relativa alla documentazione di riferimento delle API di Amazon Machine Learning.