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,targetAttributeName
identifica 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 ID
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 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 esempioyes
ono
.Ad esempio, l'attributo
isNew
, per verificare se una persona è un nuovo cliente, potrà avere un valoretrue
per indicare che la persona è un nuovo cliente e un valorefalse
per indicare che non è un nuovo cliente.I valori negativi validi sono
0
,n
,no
,f
efalse
.I valori positivi validi sono
1
,y
,yes
,t
etrue
.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 ML0
e1
per 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 cliente124552
, ma una ponderazione di10
indica che tale attributo è più pesante di un attributo con una ponderazione di5
. 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 il
Numeric
tipo 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
diventaemail
esubject
, mentreemail-subject here
diventaemail-subject
ehere
.
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 diTEXT
alla variabileage
, ma lo schema di valutazione assegna un tipo di datiNUMERIC
aage
, quindi Amazon ML tratta le età dei dati di valutazione comeTEXT
variabili 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:
-
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.
-
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 nel
DataSchemaLocationS3
attributo delCreateDataSourceFromS3
API. Per ulteriori informazioni, consultare CreateDataSourceFromS3.È possibile fornire lo schema direttamente nel payload di
CreateDataSource
*APIs
invece di salvarlo prima in Amazon S3. Per farlo è sufficiente collocare l'intera stringa dello schema nell'attributoDataSchema
delle APICreateDataSourceFromS3
,CreateDataSourceFromRDS
oCreateDataSourceFromRedshift
. Per ulteriori informazioni, consultare la pagina relativa alla documentazione di riferimento delle API di Amazon Machine Learning.