“Em vez de se concentrar no código, as empresas devem se concentrar no desenvolvimento de práticas sistemáticas de engenharia para melhorar os dados de maneira confiável, eficiente e sistemática. Em outras palavras, as empresas precisam passar de uma abordagem centrada no modelo para uma abordagem centrada nos dados”. – André Ng
Uma abordagem de IA centrada em dados envolve a construção de sistemas de IA com dados de qualidade envolvendo preparação de dados e engenharia de recursos. Essa pode ser uma tarefa tediosa envolvendo coleta de dados, descoberta, criação de perfil, limpeza, estruturação, transformação, enriquecimento, validação e armazenamento seguro dos dados.
Gerenciador de dados do Amazon SageMaker é um serviço em Estúdio Amazon SageMaker que fornece uma solução completa para importar, preparar, transformar, caracterizar e analisar dados usando pouca ou nenhuma codificação. Você pode integrar um fluxo de preparação de dados do Data Wrangler em seus fluxos de trabalho de aprendizado de máquina (ML) para simplificar o pré-processamento de dados e a engenharia de recursos, levando a preparação de dados para a produção mais rapidamente sem a necessidade de criar código PySpark, instalar Apache Spark ou ativar clusters.
Para cenários em que você precisa adicionar seus próprios scripts personalizados para transformações de dados, você pode escrever sua lógica de transformação em Pandas, PySpark, PySpark SQL. O Data Wrangler agora suporta bibliotecas NLTK e SciPy para criar transformações personalizadas para preparar dados de texto para ML e executar otimização de restrição.
Você pode se deparar com cenários em que precisa adicionar seus próprios scripts personalizados para transformação de dados. Com o recurso de transformação personalizada do Data Wrangler, você pode escrever sua lógica de transformação em Pandas, PySpark, PySpark SQL.
Nesta postagem, discutimos como você pode escrever sua transformação personalizada em NLTK para preparar dados de texto para ML. Também compartilharemos alguns exemplos de transformação de código personalizado usando outras estruturas comuns, como NLTK, NumPy, SciPy e scikit-learn, bem como AWS AI Services. Para o propósito deste exercício, usaremos o Conjunto de dados do Titanic, um conjunto de dados popular na comunidade ML, que agora foi adicionado como um amostra de conjunto de dados no Data Wrangler.
Visão geral da solução
O Data Wrangler fornece mais de 40 conectores integrados para importar dados. Depois que os dados são importados, você pode criar sua análise de dados e transformações usando mais de 300 transformações integradas. Você pode então gerar pipelines industrializados para enviar os recursos para Serviço de armazenamento simples da Amazon (Amazon S3) ou Loja de recursos Amazon SageMaker. O diagrama a seguir mostra a arquitetura de alto nível de ponta a ponta.
Pré-requisitos
O Data Wrangler é um recurso do SageMaker disponível em Estúdio Amazon SageMaker. Você pode seguir o processo de integração do Studio para ativar o ambiente Studio e os notebooks. Embora você possa escolher entre alguns métodos de autenticação, a maneira mais simples de criar um domínio do Studio é seguir as instruções Instruções de início rápido. O Início rápido usa as mesmas configurações padrão da configuração padrão do Studio. Você também pode optar por integrar usando Centro de identidade do AWS IAM (sucessor do AWS Single Sign-On) para autenticação (consulte Integração no domínio do Amazon SageMaker usando o IAM Identity Center).
Importar o conjunto de dados do Titanic
Inicie seu ambiente Studio e crie um novo Fluxo do Data Wrangler. Você pode importar seu próprio conjunto de dados ou usar um conjunto de dados de amostra (Titanic), conforme mostrado na captura de tela a seguir. O Data Wrangler permite importar conjuntos de dados de diferentes fontes de dados. Para nosso caso de uso, importamos o conjunto de dados de amostra de um bucket S3.
Depois de importado, você verá dois nós (o nó de origem e o nó de tipo de dados) no fluxo de dados. O Data Wrangler identifica automaticamente o tipo de dados para todas as colunas no conjunto de dados.
Transformações personalizadas com NLTK
Para preparação de dados e engenharia de recursos com o Data Wrangler, você pode usar mais de 300 transformações integradas ou criar suas próprias transformações personalizadas. Transformações personalizadas podem ser escritos como etapas separadas no Data Wrangler. Eles se tornam parte do arquivo .flow no Data Wrangler. O recurso de transformação personalizada oferece suporte a Python, PySpark e SQL como etapas diferentes em trechos de código. Depois que os arquivos de notebook (.ipynb) são gerados a partir do arquivo .flow ou o arquivo .flow é usado como receitas, os trechos de código de transformação personalizados persistem sem exigir nenhuma alteração. Esse design do Data Wrangler permite que transformações personalizadas se tornem parte de uma tarefa de processamento do SageMaker para processar conjuntos de dados massivos com transformações personalizadas.
O conjunto de dados do Titanic tem alguns recursos (nome e home.dest) que contêm informações de texto. Nós usamos NLTK para dividir a coluna de nome e extrair o sobrenome e imprimir a frequência dos sobrenomes. NLTK é uma plataforma líder para a construção de programas Python para trabalhar com dados de linguagem humana. Ele fornece interfaces fáceis de usar para mais de 50 corpora e recursos lexicais como WordNet, juntamente com um conjunto de bibliotecas de processamento de texto para classificação, tokenização, lematização, marcação, análise e raciocínio semântico, e wrappers para bibliotecas de processamento de linguagem natural (NLP) de força industrial.
Para adicionar uma nova transformação, conclua as seguintes etapas:
- Escolha o sinal de mais e escolha Adicionar transformação.
- Escolha Adicionar Etapa e escolha Transformação personalizada.
Você pode criar uma transformação personalizada usando Pandas, PySpark, funções definidas pelo usuário do Python e SQL PySpark.
- Escolha Python (pandas) e adicione o seguinte código para extrair o sobrenome da coluna de nome:
- Escolha visualização para revisar os resultados.
A captura de tela a seguir mostra o last_name
coluna extraída.
- Adicione outra etapa de transformação personalizada para identificar a distribuição de frequência dos sobrenomes, usando o seguinte código:
- Escolha visualização para rever os resultados da frequência.
Transformações personalizadas com serviços de IA da AWS
Os serviços de IA pré-treinados da AWS fornecem inteligência pronta para seus aplicativos e fluxos de trabalho. Os serviços de IA da AWS se integram facilmente aos seus aplicativos para atender a muitos casos de uso comuns. Agora você pode usar os recursos dos serviços de IA da AWS como uma etapa de transformação personalizada no Data Wrangler.
Amazon Comprehend usa NLP para extrair insights sobre o conteúdo dos documentos. Ele desenvolve insights reconhecendo as entidades, frases-chave, linguagem, sentimentos e outros elementos comuns em um documento.
Usamos o Amazon Comprehend para extrair as entidades da coluna de nome. Conclua as seguintes etapas:
- Adicione uma etapa de transformação personalizada.
- Escolha Python (pandas).
- Digite o seguinte código para extrair as entidades:
- Escolha visualização e visualizar os resultados.
Agora adicionamos três transformações personalizadas no Data Wrangler.
- Escolha Fluxo de dados para visualizar o fluxo de dados de ponta a ponta.
Transformações personalizadas com NumPy e SciPy
NumPy é uma biblioteca de código aberto para Python que oferece funções matemáticas abrangentes, geradores de números aleatórios, rotinas de álgebra linear, transformadas de Fourier e muito mais. SciPy é uma biblioteca Python de código aberto usada para computação científica e computação técnica, contendo módulos para otimização, álgebra linear, integração, interpolação, funções especiais, transformação rápida de Fourier (FFT), processamento de sinal e imagem, solucionadores e muito mais.
As transformações personalizadas do Data Wrangler permitem combinar Python, PySpark e SQL como etapas diferentes. No seguinte fluxo do Data Wrangler, diferentes funções de pacotes Python, NumPy e SciPy são aplicadas no conjunto de dados do Titanic como várias etapas.
transformações NumPy
A coluna de tarifa do conjunto de dados do Titanic tem tarifas de embarque de diferentes passageiros. O histograma da coluna tarifária mostra distribuição uniforme, exceto para o último bin. Aplicando transformações NumPy como log ou raiz quadrada, podemos alterar a distribuição (conforme mostrado pela transformação de raiz quadrada).
Veja o seguinte código:
transformações SciPy
As funções do SciPy, como z-score, são aplicadas como parte da transformação personalizada para padronizar a distribuição de tarifas com média e desvio padrão.
Veja o seguinte código:
Otimização de restrições com NumPy e SciPy
As transformações personalizadas do Data Wrangler podem lidar com transformações avançadas, como otimização de restrição, aplicando funções de otimização SciPy e combinando SciPy com NumPy. No exemplo a seguir, a tarifa em função da idade não mostra nenhuma tendência observável. No entanto, a otimização de restrição pode transformar a tarifa em função da idade. A condição de restrição neste caso é que a nova tarifa total permaneça igual à antiga tarifa total. As transformações customizadas do Data Wrangler permitem que você execute a função de otimização SciPy para determinar o coeficiente ideal que pode transformar a tarifa em função da idade sob condições de restrição.
Definição de otimização, definição de objetivo e várias restrições podem ser mencionadas como funções diferentes ao formular a otimização de restrição em uma transformação personalizada do Data Wrangler usando SciPy e NumPy. As transformações personalizadas também podem trazer diferentes métodos de resolução que estão disponíveis como parte do pacote de otimização SciPy. Uma nova variável transformada pode ser gerada multiplicando o coeficiente ideal pela coluna original e adicionada às colunas existentes do Data Wrangler. Veja o seguinte código:
O recurso de transformação personalizada do Data Wrangler tem a capacidade de interface do usuário para mostrar os resultados das funções otimizadas do SciPy, como o valor do coeficiente ideal (ou múltiplos coeficientes).
Transformações personalizadas com scikit-learn
scikit-learn é um módulo Python para aprendizado de máquina construído sobre o SciPy. É uma biblioteca de ML de código aberto que oferece suporte ao aprendizado supervisionado e não supervisionado. Ele também fornece várias ferramentas para ajuste de modelo, pré-processamento de dados, seleção de modelo, avaliação de modelo e muitos outros utilitários.
Discretização
Discretização (também conhecido como quantização or arquivamento) fornece uma maneira de particionar recursos contínuos em valores discretos. Certos conjuntos de dados com recursos contínuos podem se beneficiar da discretização, porque a discretização pode transformar o conjunto de dados de atributos contínuos em um com apenas atributos nominais. Recursos discretizados codificados em um único ponto podem tornar um modelo mais expressivo, mantendo a interpretabilidade. Por exemplo, o pré-processamento com um discretizador pode introduzir não linearidade em modelos lineares.
No código a seguir, usamos KBinsDiscretizer
para discretizar a coluna de idade em 10 categorias:
Você pode ver as bordas da caixa impressas na captura de tela a seguir.
Codificação única
Os valores nas colunas Embarked são valores categóricos. Portanto, temos que representar essas strings como valores numéricos para realizar nossa classificação com nosso modelo. Também poderíamos fazer isso usando uma transformação de codificação one-hot.
Existem três valores para Embarked: S, C e Q. Nós os representamos com números. Veja o seguinte código:
limpar
Quando você não estiver usando o Data Wrangler, é importante encerrar a instância na qual ele é executado para evitar taxas adicionais.
O Data Wrangler salva automaticamente seu fluxo de dados a cada 60 segundos. Para evitar a perda de trabalho, salve seu fluxo de dados antes de desligar o Data Wrangler.
- Para salvar seu fluxo de dados no Studio, escolha Envie o, Em seguida, escolha Salvar fluxo do Data Wrangler.
- Para encerrar a instância do Data Wrangler, no Studio, escolha Executando instâncias e kernels.
- Debaixo APLICATIVOS DE CORRIDA, escolha o ícone de desligamento ao lado do aplicativo sagemaker-data-wrangler-1.0.
- Escolha Desligar tudo para confirmar.
O Data Wrangler é executado em uma instância ml.m5.4xlarge. Esta instância desaparece de INSTÂNCIAS EM EXECUÇÃO quando você desliga o aplicativo Data Wrangler.
Depois de encerrar o aplicativo Data Wrangler, ele precisa ser reiniciado na próxima vez que você abrir um arquivo de fluxo do Data Wrangler. Isso pode levar alguns minutos.
Conclusão
Nesta postagem, demonstramos como você pode usar transformações personalizadas no Data Wrangler. Usamos as bibliotecas e a estrutura do contêiner do Data Wrangler para estender os recursos integrados de transformação de dados. Os exemplos neste post representam um subconjunto dos frameworks usados. As transformações no fluxo do Data Wrangler agora podem ser dimensionadas para um pipeline para DataOps.
Para saber mais sobre como usar fluxos de dados com o Data Wrangler, consulte Criar e usar um fluxo do Data Wrangler e Preços do Amazon SageMaker. Para começar a usar o Data Wrangler, consulte Prepare dados de ML com o Amazon SageMaker Data Wrangler. Para saber mais sobre o Autopilot e o AutoML no SageMaker, visite Automatize o desenvolvimento de modelos com o Amazon SageMaker Autopilot.
Sobre os autores
Meenakshisundaram Thandavarayan é especialista sênior em IA/ML da AWS. Ele ajuda contas estratégicas de alta tecnologia em sua jornada de IA e ML. Ele é muito apaixonado por IA orientada a dados.
Sovik Kumar Nath é um arquiteto de soluções AI/ML da AWS. Ele tem uma vasta experiência em projetos e soluções de ponta a ponta para aprendizado de máquina; análise de negócios em análise financeira, operacional e de marketing; assistência médica; cadeia de mantimentos; e IoT. Fora do trabalho, Sovik gosta de viajar e assistir a filmes.
Abigail é um engenheiro de desenvolvimento de software no Amazon SageMaker. Ela é apaixonada por ajudar os clientes a preparar seus dados no DataWrangler e construir sistemas distribuídos de aprendizado de máquina. Em seu tempo livre, Abigail gosta de viajar, fazer caminhadas, esquiar e cozinhar.
- Conteúdo com tecnologia de SEO e distribuição de relações públicas. Seja amplificado hoje.
- Platoblockchain. Inteligência Metaverso Web3. Conhecimento Ampliado. Acesse aqui.
- Cunhando o Futuro com Adryenn Ashley. Acesse aqui.
- Fonte: https://aws.amazon.com/blogs/machine-learning/authoring-custom-transformations-in-amazon-sagemaker-data-wrangler-using-nltk-and-scipy/
- :tem
- :é
- $UP
- 1
- 10
- 100
- 7
- 8
- 9
- a
- Sobre
- Contas
- adicionado
- Adicional
- endereço
- avançado
- Depois de
- Idade
- AI
- Serviços de IA
- AI / ML
- Todos os Produtos
- permite
- juntamente
- Apesar
- Amazon
- Amazon Comprehend
- Amazon Sage Maker
- Gerenciador de dados do Amazon SageMaker
- análise
- analítica
- analisar
- e
- Andrew
- Outro
- qualquer
- apache
- app
- aplicações
- aplicado
- Aplicando
- abordagem
- arquitetura
- SOMOS
- AS
- At
- atributos
- Autenticação
- autor
- autoria
- automaticamente
- AutoML
- disponível
- AWS
- BE
- Porque
- tornam-se
- sido
- antes
- beneficiar
- BIN
- embarque
- trazer
- construir
- Prédio
- construído
- construídas em
- negócio
- by
- CAN
- capacidades
- casas
- casos
- certo
- cadeia
- alterar
- Alterações
- Escolha
- classificação
- código
- Codificação
- coleção
- Coluna
- colunas
- combinar
- combinando
- comum
- comunidade
- Empresas
- completar
- compreender
- compreensivo
- computação
- condição
- condições
- Confirmar
- Desvantagens
- restrições
- não contenho
- Recipiente
- conteúdo
- contínuo
- poderia
- Casal
- crio
- personalizadas
- Clientes
- dados,
- análise de dados
- Preparação de dados
- orientado por dados
- conjuntos de dados
- Padrão
- demonstraram
- Design
- projetos
- Determinar
- em desenvolvimento
- Desenvolvimento
- desenvolve
- desvio
- diferente
- descoberta
- discutir
- distribuído
- distribuição
- documento
- INSTITUCIONAIS
- Não faz
- domínio
- down
- facilmente
- fácil de usar
- eficiente
- ou
- elementos
- end-to-end
- engenheiro
- Engenharia
- enriquecedor
- entidades
- entidade
- Meio Ambiente
- avaliação
- Cada
- exemplo
- exemplos
- Exceto
- Exercício
- existente
- vasta experiência
- expressivo
- estender
- extenso
- Experiência Extensiva
- extrato
- RÁPIDO
- mais rápido
- Característica
- Funcionalidades
- Taxas
- poucos
- Envie o
- Arquivos
- financeiro
- apropriado
- fluxo
- Fluxos
- Foco
- focando
- seguir
- seguinte
- Escolha
- formulação
- Quadro
- enquadramentos
- Gratuito
- Frequência
- da
- Diversão
- função
- funções
- gerar
- gerado
- geradores
- ter
- manipular
- Ter
- he
- saúde
- ajuda
- ajuda
- Hi-Tech
- de alto nível
- Início
- Como funciona o dobrador de carta de canal
- Contudo
- HTML
- http
- HTTPS
- humano
- ÍCONE
- identifica
- identificar
- Identidade
- imagem
- importar
- importante
- importador
- melhorar
- in
- Em outra
- INFORMAÇÕES
- insights
- instalar
- instância
- integrar
- integração
- Inteligência
- interfaces de
- introduzir
- iot
- IT
- Trabalho
- viagem
- jpg
- Chave
- conhecido
- língua
- Sobrenome
- principal
- APRENDER
- aprendizagem
- bibliotecas
- Biblioteca
- como
- pequeno
- perder
- máquina
- aprendizado de máquina
- Manter
- fazer
- muitos
- Marketing
- maciço
- matemático
- Posso..
- mencionado
- métodos
- poder
- Minutos
- ML
- modelo
- modelos
- Módulo
- Módulos
- mais
- mover
- Filmes
- múltiplo
- multiplicando
- nome
- nomes
- natural
- Processamento de linguagem natural
- você merece...
- Novo
- Próximo
- PNL
- nó
- nós
- caderno
- número
- números
- numpy
- objetivo
- of
- oferecendo treinamento para distância
- Velho
- on
- A bordo
- Onboarding
- ONE
- aberto
- open source
- operacional
- ideal
- otimização
- Otimize
- ordem
- original
- Outros
- de outra forma
- A Nossa
- lado de fora
- Acima de
- próprio
- pacote
- pacotes
- pandas
- parte
- apaixonado
- Realizar
- Frases
- oleoduto
- plataforma
- platão
- Inteligência de Dados Platão
- PlatãoData
- mais
- Popular
- Publique
- práticas
- Preparar
- Impressão
- em processamento
- Produção
- profiling
- Programas
- fornecer
- fornece
- propósito
- Empurrar
- Python
- qualidade
- Links
- acaso
- Cru
- confiável
- permanece
- representar
- resposta
- Resultados
- retorno
- rever
- raiz
- Execute
- s
- sábio
- mesmo
- Conjunto de dados de amostra
- Salvar
- cenários
- científico
- scikit-learn
- Scripts
- segundo
- firmemente
- doadores,
- senior
- separado
- serviço
- Serviços
- Configurações
- instalação
- Partilhar
- rede de apoio social
- mostrar
- mostrando
- Shows
- Encerre
- encerramento
- assinar
- Signal
- simples
- simplificar
- solteiro
- Software
- desenvolvimento de software
- solução
- Soluções
- alguns
- fonte
- Fontes
- Faísca
- especial
- especialista
- Spin
- divisão
- quadrado
- padrão
- começo
- começado
- stats
- Passo
- Passos
- armazenamento
- armazenar
- Estratégico
- estruturação
- estudo
- tal
- suíte
- supply
- cadeia de suprimentos
- suportes
- sistemas
- mesa
- Tire
- tomar
- Tarefa
- Dados Técnicos:
- que
- A
- A fonte
- deles
- assim sendo
- Este
- três
- tempo
- para
- token
- tokenization
- Tokens
- ferramentas
- topo
- Total
- Transformar
- Transformação
- transformações
- transformado
- transformando
- Viagens
- Trend
- ui
- para
- usar
- caso de uso
- usava
- utilitários
- valor
- Valores
- vário
- Visite a
- assistindo
- Caminho..
- maneiras
- BEM
- qual
- enquanto
- precisarão
- de
- dentro
- sem
- palavras
- Atividades:
- fluxos de trabalho
- escrever
- escrito
- Vocês
- investimentos
- zefirnet