Reorganização de dados - Amazon Machine Learning

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.

Reorganização de dados

A funcionalidade de reorganização de dados permite criar uma fonte de dados baseada em apenas uma parte dos dados de entrada para os quais ela aponta. Por exemplo, quando você cria um modelo de ML usando o assistente Criar modelo de ML no console do Amazon ML e escolhe a opção de avaliação padrão, o Amazon ML reserva automaticamente 30% dos dados para a avaliação do modelo de ML e usa os outros 70% para treinamento. Essa funcionalidade é habilitada pelo recurso Reorganização de dados do Amazon ML.

Se você está usando a API do Amazon ML para criar fontes de dados, pode especificar qual parte dos dados de entrada servirá de base para uma nova fonte de dados. É possível fazer isso passando instruções no parâmetro DataRearrangement para as APIs CreateDataSourceFromS3, CreateDataSourceFromRedshift ou CreateDataSourceFromRDS. O conteúdo da string DataRearrangement é uma string JSON que contém os locais de início e término dos dados, expressos como porcentagens, um sinalizador complementar e uma estratégia de divisão. Por exemplo, a string DataRearrangement a seguir especifica que os primeiros 70% dos dados serão usados para criar a fonte de dados:

{ "splitting": { "percentBegin": 0, "percentEnd": 70, "complement": false, "strategy": "sequential" } }

Parâmetros de DataRearrangement

Para alterar como o Amazon ML cria uma fonte de dados, use os parâmetros a seguir.

PercentBegin (opcional)

Use percentBegin para indicar onde começam os dados da fonte de dados. Se você não incluir percentBegin e percentEnd, o Amazon ML incluirá todos os dados ao criar a fonte de dados.

Os valores válidos vão de 0 a 100, inclusive.

PercentEnd (opcional)

Use percentEnd para indicar onde terminam os dados da fonte de dados. Se você não incluir percentBegin e percentEnd, o Amazon ML incluirá todos os dados ao criar a fonte de dados.

Os valores válidos vão de 0 a 100, inclusive.

Complement (opcional)

O parâmetro complement instrui o Amazon ML a usar os dados não incluídos no intervalo de percentBegin a percentEnd para criar uma fonte de dados. O parâmetro complement é útil quando você precisa criar fontes de dados complementares para treinamento e avaliação. Para criar uma fonte de dados complementar, use os mesmos valores para percentBegin e percentEnd, juntamente com o parâmetro complement.

Por exemplo, as duas fontes de dados a seguir não compartilham nenhum dado e podem ser usadas para treinar e avaliar um modelo. A primeira fonte de dados tem 25% dos dados, e a segunda tem 75%.

Fonte de dados para avaliação:

{ "splitting":{ "percentBegin":0, "percentEnd":25 } }

Fonte de dados para treinamento:

{ "splitting":{ "percentBegin":0, "percentEnd":25, "complement":"true" } }

Os valores válidos são true e false.

Strategy (opcional)

Para alterar como o Amazon ML divide os dados para uma fonte de dados, use o parâmetro strategy.

O valor padrão do parâmetro strategy é sequential, o que significa que o Amazon ML leva todos os registros de dados entre os parâmetros percentBegin e percentEnd para a fonte de dados, na ordem em que os registros aparecem nos dados de entrada

As duas linhas DataRearrangement a seguir são exemplos de fontes de dados e de avaliação de treinamento em sequência ordenada:

Fonte de dados para avaliação: {"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential"}}

Fonte de dados para treinamento: {"splitting":{"percentBegin":70, "percentEnd":100, "strategy":"sequential", "complement":"true"}}

Para criar uma fonte de dados a partir de uma seleção aleatória de dados, defina o parâmetro strategy com random e forneça uma string que seja usada como valor de propagação para a divisão aleatória de dados (por exemplo, você pode usar o caminho do S3 para seus dados como a string de propagação aleatória). Se você escolher a estratégia de divisão aleatória, o Amazon ML atribuirá a cada linha de dados um número pseudoaleatório e, em seguida, selecionará as linhas que têm um número atribuído entre percentBegin e percentEnd. Números pseudoaleatórios são atribuídos com o uso de deslocamento de bytes como propagação, portanto, a alteração dos dados gera uma divisão diferente. A ordenação existente é mantida. A estratégia de divisão aleatória garante que as variáveis nos dados de treinamento e avaliação sejam distribuídas de maneira semelhante. Ela é útil nos casos em que os dados de entrada podem ter uma ordem de classificação implícita, o que pode resultar em fontes de dados e avaliação de treinamento contendo registros de dados diferentes.

As duas linhas DataRearrangement a seguir são exemplos de fontes de dados e de avaliação de treinamento sem sequência ordenada:

Fonte de dados para avaliação:

{ "splitting":{ "percentBegin":70, "percentEnd":100, "strategy":"random", "strategyParams": { "randomSeed":"RANDOMSEED" } } }

Fonte de dados para treinamento:

{ "splitting":{ "percentBegin":70, "percentEnd":100, "strategy":"random", "strategyParams": { "randomSeed":"RANDOMSEED" } "complement":"true" } }

Os valores válidos são sequential e random.

(Opcional) Strategy:RandomSeed

O Amazon ML usa o randomSeed para dividir os dados. A propagação padrão para a API é uma string vazia. Para especificar uma propagação para a estratégia de divisão aleatória, passe uma string. Para obter mais informações sobre sementes aleatórias, consulte Dividir dados aleatoriamente no Guia do desenvolvedor do Amazon Machine Learning.

Para um código de exemplo que demonstra como usar validações cruzadas com o Amazon ML, acesse Github Machine Learning Samples.