Não estamos mais atualizando o serviço Amazon Machine Learning nem aceitando novos usuários para ele. Essa documentação está disponível para usuários existentes, mas não estamos mais atualizando-a. Para obter mais informações, consulte O que é o Amazon Machine Learning.
Criar um esquema de dados para o Amazon ML
Um esquema é composto de todos os atributos nos dados de entrada e os tipos de dados correspondentes. Ele permite que o Amazon ML entenda os dados na fonte de dados. O Amazon ML usa as informações no esquema para ler e interpretar os dados de entrada, calcular estatísticas, aplicar as transformações de atributo corretas e ajustar seus algoritmos de aprendizagem. Se você não fornecer um esquema, o Amazon ML deduzirá dos dados.
Esquema de exemplo
Para que o Amazon ML leia os dados de entrada corretamente e gere previsões precisas, cada atributo deve ser atribuído ao tipo de dados correto. O exemplo mostra como tipos de dados são atribuídos a atributos e como os atributos e os tipos de dados são incluídos em um esquema. Nosso exemplo se chama "Campanha do cliente" porque queremos prever as respostas dos clientes a nossa campanha de e-mail. Nosso arquivo de entrada é um arquivo .csv com nove colunas:
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
Este é o esquema para esses dados:
{ "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" } ] }
No arquivo de esquema deste exemplo, o valor de rowId
é customerId
:
"rowId": "customerId",
O atributo willRespondToCampaign
está definido como o atributo de destino:
"targetAttributeName": "willRespondToCampaign ",
O atributo customerId
e o tipo de dados CATEGORICAL
estão associados à primeira coluna, o atributo jobId
e o tipo de dados CATEGORICAL
estão associados à segunda coluna, o atributo jobDescription
e o tipo de dados TEXT
estão associados à terceira coluna, o atributo education
e o tipo de dados CATEGORICAL
estão associados à quarta coluna e assim sucessivamente. A nona coluna está associada ao atributo willRespondToCampaign
com um tipo de dados BINARY
. Esse atributo também está definido como o atributo de destino.
Usar o campo targetAttributeName
O valor targetAttributeName
é o nome do atributo que você deseja prever. Você deve atribuir um targetAttributeName
ao criar ou avaliar um modelo.
Quando você está treinando ou avaliando um modelo de ML, targetAttributeName
identifica o nome do atributo nos dados de entrada que contêm as respostas "corretas" para o atributo de destino. O Amazon ML usa o destino, que inclui as respostas corretas, para descobrir padrões e gerar um modelo de ML.
Quando você está avaliando seu modelo, o Amazon ML usa o destino para verificar a precisão de suas previsões. Depois de criar e avaliar o modelo de ML, você pode usar os dados com um targetAttributeName
não atribuído para gerar previsões com o modelo de ML.
Você define o atributo de destino no console do Amazon ML quando cria uma fonte de dados ou em um arquivo de esquema. Se você criar seu próprio arquivo de esquema, use esta sintaxe para definir o atributo de destino:
"targetAttributeName": "exampleAttributeTarget",
Neste exemplo, exampleAttributeTarget
é o nome do atributo em seu arquivo de entrada que é o atributo de destino.
Usar o campo rowID
row ID
é uma indicação opcional associada a um atributo nos dados de entrada. Se especificado, o atributo marcado como row ID
é incluído na saída de previsão. Esse atributo facilita a associação de qual previsão corresponde a qual observação. Um exemplo de um bom row ID
é um ID de cliente ou um atributo exclusivo semelhante.
nota
O ID de linha é apenas para referência. O Amazon ML não o usa durante o treinamento de um modelo de ML. Se um atributo for selecionado como um ID de linha, ele não será usado para o treinamento de um modelo de ML.
Defina o row ID
no console do Amazon ML quando criar uma fonte de dados ou em um arquivo de esquema. Se você estiver criando seu próprio arquivo de esquema, use esta sintaxe para definir row ID
:
"rowId": "exampleRow",
No exemplo anterior, exampleRow
é o nome do atributo no arquivo de entrada definido como o ID de linha.
Ao gerar previsões em lote, você pode obter a saída a seguir:
tag,bestAnswer,score 55,0,0.46317 102,1,0.89625
Neste exemplo, RowID
representa o atributo customerId
. Por exemplo, prevê-se que customerId 55
vai responder a nossa campanha de e-mail com pouca confiança (0,46317), mas prevê-se que customerId
102
vai responder a nossa campanha de e-mail com muita confiança (0,89625).
Usar o campo AttributeType
No Amazon ML, há quatro tipos de dados para atributos:
- Binário
-
Escolha
BINARY
para um atributo que tem apenas dois estados possíveis, comoyes
ouno
.Por exemplo, o atributo
isNew
, que controla se uma pessoa é um novo cliente, teria um valortrue
para indicar que o indivíduo é um novo cliente, e um valorfalse
para indicar que não é um novo cliente.Os valores negativos válidos são
0
,n
,no
,f
efalse
.Os valores positivos válidos são
1
,y
,yes
,t
etrue
.O Amazon ML ignora o caso de entradas binárias e elimina os espaços em branco adjacentes. Por exemplo,
" FaLSe "
é um valor binário válido. Você pode combinar os valores binários usados na mesma fonte de dados, por exemplo, usandotrue
,no
e1
. O Amazon ML produz apenas as saídas0
e1
para atributos binários. - Categóricos
-
Escolha
CATEGORICAL
um atributo que aceita em um número limitado de valores de strings exclusivos. Por exemplo, um ID de usuário, o mês e um CEP são valores categóricos. Os atributos categóricos são tratados como uma única string e não são ainda mais indexados. - Numeric
-
Escolha
NUMERIC
para um atributo que aceita uma quantidade como um valor.Por exemplo, temperatura, peso e taxa de clique são valores numéricos.
Nem todos os atributos que aceitam números são numéricos. Os atributos categóricos, como dias do mês e IDs, geralmente são representados como números. Para ser considerado numérico, um número deve ser comparável a outro número. Por exemplo, o ID do cliente
664727
não informa nada sobre o ID do cliente124552
, mas um peso de10
informa que esse atributo é mais pesado do que um atributo com peso de5
. Os dias do mês não são numéricos porque o primeiro dia de um mês pode ocorrer antes ou depois do segundo dia de outro mês.nota
Quando você usa o Amazon ML para criar seu esquema, ele atribui o tipo de dados
Numeric
a todos os atributos que usam números. Se o Amazon ML cria seu esquema, verifique se há atribuições incorretas e defina esses atributos comoCATEGORICAL
. - Texto
-
Escolha
TEXT
para um atributo que é uma string de palavras. Ao ler atributos de texto, o Amazon ML os converte em tokens, delimitados por espaços em branco.Por exemplo,
email subject
se tornaemail
esubject
, eemail-subject here
passa a seremail-subject
ehere
.
Se o tipo de dados de uma variável no esquema de treinamento não corresponde ao tipo de dados dessa variável no esquema de avaliação, o Amazon ML altera o tipo de dados de avaliação para que corresponda ao tipo de dados de treinamento. Por exemplo, se o esquema de dados de treinamento atribuir o tipo de dados TEXT
à variável age
, mas o esquema de avaliação atribuir o tipo de dados NUMERIC
a age
, o Amazon ML tratará as idades nos dados de avaliação como variáveis TEXT
em vez de NUMERIC
.
Para obter informações sobre as estatísticas associadas a cada tipo de dados, consulte Estatísticas descritivas.
Fornecer um esquema ao Amazon ML
Toda fonte de dados precisa de um esquema. Há duas maneiras disponíveis para fornecer um esquema ao Amazon ML:
-
Permitir que o Amazon ML deduza os tipos de dados de cada atributo no arquivo de dados de entrada e crie automaticamente um esquema para você.
-
Fornecer um arquivo de esquema ao fazer upload dos dados do Amazon Simple Storage Service (Amazon S3).
Permitir que o Amazon ML crie seu esquema
Quando você usa o console do Amazon ML para criar uma fonte de dados, o Amazon ML usa regras simples com base nos valores de suas variáveis para criar seu esquema. Recomendamos enfaticamente que você examine o esquema criado pelo Amazon ML e corrija os tipos de dados se eles não forem precisos.
Fornecer um esquema
Depois de criar o arquivo de esquema, você precisa torná-lo disponível para o Amazon ML. Você tem duas opções:
-
Fornecer o esquema usando o console do Amazon ML.
Use o console para criar sua fonte de dados e inclua o arquivo de esquema anexando a extensão .schema ao nome do seu arquivo de dados de entrada. Por exemplo, se o URI do Amazon Simple Storage Service (Amazon S3) para seus dados de entrada for s3://my-bucket-name/data/input.csv, o URI do esquema será s3://my-bucket-name/data/input.csv.schema. O Amazon ML localiza automaticamente o arquivo de esquema que você fornecer, em vez de tentar deduzir o esquema de seus dados.
Para usar um diretório de arquivos como entrada de dados para o Amazon ML, anexe a extensão .schema ao caminho do diretório. Por exemplo, se os arquivos de dados residem no local s3://examplebucket/path/to/data/, o URI de seu esquema será s3://examplebucket/path/to/data/.schema.
-
Fornecer o esquema usando a API do Amazon ML.
Se você pretender chamar a API do Amazon ML para criar a fonte de dados, poderá fazer upload do arquivo de esquema no Amazon S3 e fornecer o URI desse arquivo no atributo
DataSchemaLocationS3
da APICreateDataSourceFromS3
. Para obter mais informações, consulte CreateDataSourceFromS3.Você pode fornecer o esquema diretamente na carga de
CreateDataSource
em vez de primeiro salvá-lo no Amazon S3. Para fazer isso, coloque a string do esquema completa no atributoDataSchema
das APIsCreateDataSourceFromS3
,CreateDataSourceFromRDS
ouCreateDataSourceFromRedshift
. Para obter mais informações, consulte Referência da API do Amazon Machine Learning.