Interface de entrada e saída para o CatBoost algoritmo - SageMaker IA da Amazon

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Interface de entrada e saída para o CatBoost algoritmo

O aumento de gradiente trabalha em dados tabulares: as linhas representam as observações, uma coluna representa a variável de destino ou rótulo, e as demais colunas representam os atributos.

A implementação de SageMaker IA do CatBoost suporta CSV para treinamento e inferência:

  • Para treinamento ContentType, as entradas válidas devem ser text/csv.

  • Para inferência ContentType, as entradas válidas devem ser text/csv.

nota

Para treinamento de CSV, o algoritmo de treinamento pressupõe que a variável de destino está na primeira coluna e que o CSV não tem um registro de cabeçalho.

Para inferência de CSV, o algoritmo pressupõe que a entrada do CSV não tem a coluna de rótulo.

Formato de entrada para dados de treinamento, dados de validação e atributos categóricos

Lembre-se de como formatar seus dados de treinamento para serem inseridos no CatBoost modelo. Você precisa fornecer o caminho para um bucket do Amazon S3 que contenha seus dados de treinamento e validação. Você também pode incluir uma lista de atributos categóricos. Use os canais training e validation para fornecer seus dados de entrada. Como alternativa, você pode usar somente o canal training.

Use ambos os canais training e validation

Você pode fornecer seus dados de entrada por meio de dois caminhos S3, um para o canal training e outro para o canal validation. Cada caminho do S3 pode ser um prefixo do S3 que aponta para um ou mais arquivos CSV ou um caminho completo do S3 apontando para um arquivo CSV específico. As variáveis de destino devem estar na primeira coluna do seu arquivo CSV. As variáveis preditoras (atributos) devem estar nas colunas restantes. Se vários arquivos CSV forem fornecidos para os validation canais training ou, o CatBoost algoritmo concatena os arquivos. Os dados de validação são usados para calcular uma pontuação de validação no final de cada iteração de reforço. A interrupção antecipada é aplicada quando a pontuação de validação para de melhorar.

Se seus preditores incluírem atributos categóricos, você poderá fornecer um arquivo JSON nomeado categorical_index.json no mesmo local do arquivo ou arquivos de dados de treinamento. Se você fornecer um arquivo JSON para atributos categóricos, seu canal training deverá apontar para um prefixo S3 e não para um arquivo CSV específico. Esse arquivo deve conter um dicionário Python em que a chave é a string "cat_index_list" e o valor é uma lista de números inteiros exclusivos. Cada número inteiro na lista de valores deve indicar o índice da coluna dos atributos categóricos correspondentes em seu arquivo CSV de dados de treinamento. Cada valor deve ser um número inteiro positivo (maior que zero porque zero representa o valor alvo), menor que o Int32.MaxValue (2147483647) e menor que o número total de colunas. Só deve haver um arquivo JSON de índice categórico.

Use somente o canal training:

Como alternativa, você pode fornecer seus dados de entrada por meio de um único caminho S3 para o canal training. Esse caminho do S3 deve apontar para um diretório com um subdiretório chamado training/ que contém um ou mais arquivos CSV. Opcionalmente, você pode incluir outro subdiretório no mesmo local chamado validation/ que também tenha um ou mais arquivos CSV. Se os dados de validação não forem fornecidos, 20% dos seus dados de treinamento serão amostrados aleatoriamente para servir como dados de validação. Se seus preditores incluírem atributos categóricos, você poderá fornecer um arquivo JSON nomeado categorical_index.json no mesmo local dos seus subdiretórios.

nota

Para o modo de entrada de treinamento CSV, a memória total disponível para o algoritmo (contagem de instância multiplicada pela memória disponível no InstanceType) deve ser capaz de conter o conjunto de dados de treinamento.

SageMaker A IA CatBoost usa os catboost.CatBoostRegressor módulos catboost.CatBoostClassifier e para serializar ou desserializar o modelo, que pode ser usado para salvar ou carregar o modelo.

Para usar um modelo treinado com SageMaker IA CatBoost com catboost
  • Use o seguinte código do Python:

    import tarfile from catboost import CatBoostClassifier t = tarfile.open('model.tar.gz', 'r:gz') t.extractall() file_path = os.path.join(model_file_path, "model") model = CatBoostClassifier() model.load_model(file_path) # prediction with test data # dtest should be a pandas DataFrame with column names feature_0, feature_1, ..., feature_d pred = model.predict(dtest)