Categorias
Algoritmo Análise de Dados Inteligência Artificial

Copa do Mundo, algoritmos e previsões: é possível usar inteligência artificial para descobrir quem será o campeão?

Quando a Copa do Mundo começa, bilhões de olhos se voltam para os gramados. Torcedores fazem suas apostas, comentaristas apontam favoritos e especialistas analisam elencos, táticas e retrospectos.

Mas existe outra competição acontecendo fora dos estádios. Em universidades, centros de pesquisa, empresas de análise de dados e até bancos de investimento, cientistas, estatísticos e especialistas em inteligência artificial travam uma disputa silenciosa: desenvolver modelos capazes de prever o desempenho das seleções e estimar quem tem mais chances de levantar a taça.

A pergunta parece simples: É possível usar ciência de dados para prever o campeão da Copa do Mundo? 

A resposta é muito mais interessante do que um simples “sim” ou “não” e nos leva a uma fascinante combinação de estatística, aprendizado de máquina, simulações computacionais e teoria das probabilidades.

Quando a ciência entrou em campo

A ideia de prever resultados esportivos não é nova. Há décadas, pesquisadores utilizam métodos estatísticos para analisar o desempenho de equipes e estimar resultados futuros. Nas últimas décadas, porém, a quantidade de dados disponíveis transformou completamente esse cenário. 

Hoje, cada partida produz uma enorme quantidade de informações: posse de bola, finalizações, passes, desempenho individual dos atletas, histórico de confrontos, rankings internacionais e indicadores de desempenho físico e técnico.

Com esse volume de dados, cientistas passaram a desenvolver modelos capazes de estimar a força relativa de cada seleção e calcular probabilidades para os diferentes cenários de um torneio. 

O objetivo não é adivinhar o futuro. É algo mais sofisticado: medir a probabilidade de que determinados eventos aconteçam. 

Nessa imensidão de dados, a Copa do Mundo passou a ser vista também como um grande laboratório para cientistas de dados.

Entre os grupos mais conhecidos nessa área estão pesquisadores da TU Dortmund University, na Alemanha, e da University of Innsbruck, na Áustria. Há anos, esses pesquisadores desenvolvem modelos estatísticos para prever resultados de grandes competições internacionais, combinando estatística clássica, aprendizado de máquina e simulações computacionais.

O estatístico Achim Zeileis, da University of Innsbruck, integra uma das equipes acadêmicas mais conhecidas por desenvolver modelos de previsão para Copas do Mundo.

Mas as universidades não estão sozinhas. Instituições financeiras como o Goldman Sachs também publicam previsões para a Copa do Mundo, utilizando modelos próprios baseados em rankings e probabilidades. Para a Copa de 2026, por exemplo, o banco utilizou uma versão aprimorada do sistema Elo para calcular as chances de cada seleção conquistar o título.

Durante muitos anos, outro protagonista importante foi o site esportivo FiveThirtyEight, que se tornou referência mundial por suas previsões baseadas em dados para eleições, esportes e eventos diversos. Seus modelos para Copas do Mundo ficaram conhecidos pela transparência metodológica e pela riqueza das análises apresentadas ao público. 

O que exatamente esses modelos tentam prever?

Ao contrário do que muita gente imagina, os pesquisadores não tentam responder apenas à pergunta “quem será campeão?”. Na verdade, essa é apenas uma das dezenas de previsões produzidas pelos modelos. 

Antes mesmo do início da competição, é comum que eles estimem:

  • Probabilidade de classificação na fase de grupos;
  • Probabilidade de chegar às oitavas de final;
  • Probabilidade de alcançar as quartas;
  • Probabilidade de disputar as semifinais;
  • Probabilidade de chegar à final;
  • Probabilidade de conquistar o título.

Alguns pesquisadores vão além. Modelos estatísticos também já foram utilizados para analisar a justiça dos sistemas de classificação para a Copa do Mundo, calcular probabilidades de qualificação de seleções e avaliar o impacto de mudanças no formato do torneio. Ou seja, a ciência de dados não se limita a prever resultados. Ela também ajuda a compreender a própria estrutura das competições. 

O ranking que nasceu no xadrez e conquistou o futebol

Uma das ferramentas mais importantes na previsão esportiva surgiu com o xadrez. 

Na década de 1960, o físico e enxadrista americano Arpad Elo desenvolveu um método para medir a força relativa dos jogadores. A lógica era simples. Se um jogador forte derrota um adversário fraco, o resultado era esperado e gera poucos ajustes na pontuação. Mas, quando um jogador considerado inferior vence um favorito, a pontuação sofre uma mudança significativa.

Com o tempo, essa ideia foi adaptada para diversas modalidades esportivas, incluindo o futebol.

Hoje, o sistema Elo é um dos pilares de inúmeros modelos de previsão da Copa do Mundo. Ele permite estimar a força relativa das seleções com base em seus resultados recentes, considerando também a qualidade dos adversários enfrentados.

Um exemplo pode ser visto na imagem abaixo. Nela, pesquisadores analisaram partidas de Brasil e Alemanha antes da Copa de 2018 para verificar como a força dos adversários, medida pelo sistema Elo, se relacionava com o número de gols marcados e sofridos. Nos gráficos superiores, cada ponto representa uma partida e mostra a relação entre o rating Elo do adversário e os gols marcados pela seleção. Nos gráficos inferiores, a mesma análise é feita para os gols sofridos. As linhas pretas indicam a tendência estimada pelo modelo estatístico. De forma geral, observa-se que, à medida que a qualidade do adversário aumenta, o número de gols marcados tende a diminuir, enquanto a quantidade de gols sofridos pode aumentar. Esse tipo de relação ajuda os modelos a estimar o desempenho esperado de uma seleção diante de diferentes oponentes. 

Relação entre o rating Elo dos adversários e o desempenho ofensivo e defensivo de Brasil e Alemanha. Fonte: Gilch e Müller (2018), On Elo Based Prediction Models for the FIFA World Cup 2018.

O sistema Elo atribui uma pontuação para cada equipe com base em seus resultados anteriores. Vencer uma seleção forte gera mais pontos do que vencer uma seleção considerada mais fraca. 

Esse método não serve apenas para classificar seleções. Ele também fornece informações que ajudam os modelos a estimar quantos gols uma equipe tende a marcar ou sofrer contra adversários de diferentes níveis. 

Ao longo do tempo, esse mecanismo produz uma estimativa bastante consistente da força relativa de cada seleção.

Quando a estatística encontra a inteligência artificial

O Elo é apenas o ponto de partida. Os modelos mais modernos combinam diferentes técnicas estatísticas e de aprendizado de máquina.

Em um estudo desenvolvido para a Copa de 2018, pesquisadores liderados por Andreas Groll compararam diversas abordagens, incluindo regressões estatísticas, métodos de ranking e algoritmos de Random Forest. O resultado mostrou que a combinação de diferentes técnicas produzia previsões mais precisas do que qualquer método isolado.

Mais recentemente, pesquisadores desenvolveram modelos híbridos que combinam:

  • Modelos lineares generalizados;
  • Random Forest;
  • Extreme Gradient Boosting (XGBoost);
  • Rankings de seleções;
  • Dados históricos de partidas;
  • Avaliações individuais de jogadores.

Essa combinação ilustra uma tendência cada vez mais comum na ciência de dados; em vez de buscar um único algoritmo perfeito, os pesquisadores combinam diferentes modelos para aproveitar os pontos fortes de cada abordagem. 

A técnica que simula milhares de Copas do Mundo

Imagine que você pudesse assistir à mesma Copa do Mundo cem mil vezes.

Em algumas versões, o Brasil seria eliminado precocemente 😫. Outros cenários mostrariam o país chegando à final. Certas simulações resultariam em uma seleção considerada favorita conquistando o título. Em outras, ocorreria uma zebra histórica.

É exatamente isso que os computadores fazem. Depois de estimar as probabilidades de cada partida, os pesquisadores utilizam um método conhecido como Simulação de Monte Carlo.

Nesse processo, o torneio inteiro é reproduzido milhares, ou até centenas de milhares, de vezes virtualmente. Ao repetir esse processo milhares de vezes, o modelo calcula com que frequência cada cenário ocorre. O resultado não é um único campeão previsto, mas uma distribuição de probabilidades.  

Os resultados dessas simulações permitem calcular a frequência com que cada cenário acontece. Por exemplo: se uma seleção vencer 18 mil vezes em um conjunto de 100 mil simulações, seu modelo atribuirá aproximadamente 18% de chance de título.

Probabilidade de conquista da Copa do Mundo de 2026 estimada por modelos de aprendizado de máquina e simulações estatísticas. Os percentuais foram obtidos a partir de milhares de simulações do torneio. Observe que, mesmo entre as seleções favoritas, as chances de título permanecem relativamente baixas, refletindo a elevada incerteza característica da competição. Fonte: Zeileis et al. (2026), Football meets machine learning: Forecasting the 2026 FIFA World Cup.

Perceba algo importante. Mesmo a seleção favorita costuma ter probabilidades relativamente baixas. 

E isso nos leva a uma das principais lições da ciência de dados.

O maior erro de interpretação sobre previsões

Quando uma previsão aponta uma seleção com 18% de chance de ser campeã, muitas pessoas interpretam isso como: 

“O modelo está dizendo que ela será campeã.”

Mas não é isso que significa. Na verdade, o modelo está afirmando justamente o contrário. Ele está dizendo que existe 82% de chance de outro cenário acontecer.

A ciência de dados não trabalha com certezas. Ela trabalha com probabilidades.

Por isso, os pesquisadores frequentemente alertam que o objetivo dos modelos não é eliminar a incerteza, mas quantificá-la.

O estatístico Andreas Groll, um dos pesquisadores mais conhecidos nessa área, costuma destacar que até mesmo os favoritos raramente ultrapassam a marca de 20% de probabilidade de título em torneios internacionais.

Isso ajuda a explicar por que o futebol continua sendo tão difícil de prever. 

Quando os modelos acertam…

Ao longo dos anos, diversos sistemas de previsão ganharam notoriedade por apontar corretamente algumas seleções campeãs entre os favoritos.

Antes da Copa de 2014, a Alemanha aparecia entre os principais candidatos em diversos modelos. Em 2018, a França figurava consistentemente entre os favoritos. Em 2022, a Argentina também aparecia entre as seleções com maiores probabilidades de conquista do torneio em diferentes sistemas de previsão.

A Alemanha aparecia entre as principais favoritas em diversos modelos estatísticos antes da Copa de 2014 e acabou conquistando o título.

Esses acertos frequentemente chamam atenção da imprensa e ajudam a popularizar os modelos. 

Mas a história não termina aí.

…e quando eles erram feio

A Copa do Mundo também está cheia de exemplos que mostram os limites da previsão estatística.

Em 2018, alguns modelos acadêmicos apontavam a Alemanha como favorita ao título. Um estudo baseado em rankings Elo e simulações de Monte Carlo indicava os alemães como os candidatos mais fortes ao troféu.

O que aconteceu? A Alemanha foi eliminada ainda na fase de grupos.

Foi uma das maiores surpresas da história recente do torneio e um lembrete poderoso de que o futebol continua sendo um ambiente altamente imprevisível.

Apesar de figurar entre as favoritas em alguns modelos de previsão, a Alemanha foi eliminada ainda na fase de grupos da Copa de 2018.

Lesões, expulsões, erros de arbitragem, decisões táticas e até fatores psicológicos podem alterar completamente o destino de uma competição. Nenhum modelo consegue capturar tudo.

A Copa do Mundo como laboratório da incerteza

Talvez seja justamente por isso que tantos pesquisadores se interessam pelo tema.

Para Achim Zeileis, pesquisador da University of Innsbruck e colaborador de diversos projetos de previsão esportiva, grandes torneios representam uma oportunidade única para aproximar o público dos conceitos de probabilidade e estatística. Afinal, poucas situações ilustram tão bem a diferença entre possibilidade e certeza quanto uma Copa do Mundo.

Uma seleção pode ser a favorita, mas isso não significa que ela vencerá. Uma equipe pode ter apenas 5% de chance de conquistar o título, mas isso não significa que seja impossível.

Na linguagem da ciência de dados, ambos os cenários são perfeitamente compatíveis.

Muito além do futebol

No fundo, a história dos algoritmos que tentam prever a Copa do Mundo não é apenas uma história sobre esporte. Ela é uma história sobre como lidamos com a incerteza.

Os mesmos conceitos utilizados para estimar as chances de uma seleção chegar à final também aparecem em áreas como saúde, economia, logística e segurança pública.

Em todos esses contextos, o objetivo não é prever o futuro com perfeição, é compreender padrões, medir riscos e tomar decisões melhores com base nos dados disponíveis.

Talvez por isso a Copa do Mundo seja tão fascinante para cientistas de dados, porque ela nos lembra de algo fundamental: mesmo em uma era de algoritmos avançados, aprendizado de máquina e IA, ainda existem acontecimentos que escapam das previsões.

Mas diante da incerteza, conhecimento e probabilidade costumam ser aliados muito mais valiosos do que qualquer palpite.

Categorias
Combate à violência de gênero Direitos humanos Eventos Inteligência Artificial

Insight Lab e UFC apoiam o XXV Congresso da FIFCJ

Na semana do dia 27 de maio de 2025, a cidade de Brasília/DF sediou o XXV Congresso da Federação Internacional de Mulheres de Carreira Jurídica (FIFCJ). Com o tema “Inteligência Artificial e Gênero”, o evento reuniu especialistas de diversas áreas para discutir os impactos e os desafios da tecnologia sob uma perspectiva de gênero.

Organizado pela Associação Brasileira de Mulheres de Carreira Jurídica (ABMCJ) em parceria com a FIFCJ, o congresso ofereceu uma programação extensa e contou com painéis, conferências e mesas-redondas que abordaram temas como ética na inteligência artificial, inclusão de mulheres em carreiras tecnológicas e a interseção entre tecnologia, justiça e direitos humanos.

A palestra de abertura ficou a cargo da Ministra Cármen Lúcia, atual Presidente do Tribunal Superior Eleitoral (TSE), que abordou os desafios éticos da inteligência artificial e sua relação com a democracia e os direitos fundamentais. Sua participação deu início aos debates com uma reflexão profunda sobre o papel do Judiciário em tempos de transformação digital.

Ministra Cármen Lúcia durante a palestra de abertura do XXV Congresso da FIFCJ

Participação do Insight Lab

Durante o evento, a pesquisadora do Insight Lab, Drª. Rebeca Quezado, representou o laboratório e debateu com representantes das mais variadas instituições os projetos premiados da nossa equipe, destacando as contribuições da ciência de dados e da inteligência artificial para o enfrentamento de questões sociais complexas.

Além disso, o congresso contou com o apoio institucional do Insight Lab e da Universidade Federal do Ceará (UFC), fortalecendo a conexão entre o meio acadêmico e os debates contemporâneos sobre tecnologia e equidade de gênero.

A pesquisadora Rebeca Quezado o Insight Lab durante o XXV Congresso da FIFCJ

Organização e destaque institucional

O congresso teve como presidente a Drª. Manoela Gonçalves Silva e foi organizado pela Drª. Alice Bianchini, duas referências na área jurídica que vêm promovendo espaços de diálogo entre diferentes campos do conhecimento.

Com a participação no evento, o Insight Lab reafirma seu compromisso com o desenvolvimento de pesquisas de impacto social e com a promoção de um ecossistema científico mais diverso, inclusivo e interdisciplinar.

Categorias
Inteligência Artificial

Inteligência Artificial e Redes de Informação: reflexões de Yuval Noah Harari em Nexus

Yuval Noah Harari, conhecido por suas obras amplamente discutidas como Sapiens e Homo Deus, oferece em Nexus: Uma breve história das redes de informação, da Idade da Pedra à inteligência artificial uma abordagem profunda e esclarecedora sobre o papel das redes de informação na evolução da humanidade. Combinando a narrativa histórica com a análise de dados, Harari explora como a comunicação e o compartilhamento de informações moldaram civilizações e continuam a influenciar o mundo atual, em especial com a ascensão da inteligência artificial.

Redes de Informação: da Pré-História ao digital

Harari traça o desenvolvimento das redes de informação desde as primeiras formas de comunicação entre tribos nômades, passando pela invenção da escrita, até os sistemas modernos de comunicação digital. Ele argumenta que o compartilhamento de informações sempre foi uma peça-chave para a evolução social e tecnológica. As civilizações que dominaram a criação e manutenção de redes eficientes prosperaram, enquanto aquelas que não conseguiram acompanhar ficaram para trás. No contexto contemporâneo, Harari destaca o impacto das plataformas digitais e algoritmos, que organizam e distribuem uma quantidade colossal de dados diariamente.

A ascensão da Inteligência Artificial e o futuro das redes

Um ponto central do livro é a análise de como a inteligência artificial está redefinindo as redes de informação. Harari aborda o conceito de que as IAs, além de processar dados de maneira mais eficiente, também estão moldando como interagimos com a informação, afetando a privacidade, a autonomia e as tomadas de decisão em diversas áreas, como saúde, trabalho e política. Ele sugere que o domínio das redes de IA pode se tornar o próximo grande diferencial de poder entre nações e corporações no século XXI.

Impacto para o futuro da Ciência de Dados

Para pesquisadores e profissionais da área de ciência de dados, Nexus oferece insights valiosos sobre a evolução histórica e as possíveis tendências futuras da coleta e análise de dados. O livro reforça a importância do entendimento não só das ferramentas e técnicas envolvidas, mas também das implicações sociais e éticas que acompanham a manipulação de grandes volumes de informação.

Yuval Noah Harari em Nexus nos convida a refletir sobre a importância crescente das redes de informação e como a humanidade tem moldado e sido moldada por elas ao longo dos milênios. Com uma narrativa rica e acessível, o livro é uma leitura essencial para todos que desejam entender o papel dos dados e da inteligência artificial no futuro da sociedade global. O livro traz reflexões cruciais sobre o uso ético e estratégico dos dados no desenvolvimento de tecnologias que podem impactar a vida cotidiana.

 

Categorias
Aplicativo Inteligência Artificial Machine Learning Processamento de Linguagem Natural

De Google Gemini a Claude 3: as melhores alternativas ao ChatGPT em 2024

Quando o ChatGPT foi lançado, as pessoas ficaram impressionadas com as possibilidades que ele oferecia, desde a escrita de um simples e-mail até o desenvolvimento de códigos complexos. A inauguração da ferramenta marcou um grande avanço na inteligência artificial, superando expectativas com sua habilidade de gerar respostas mais precisas e contextualmente relevantes. 

Mas no fervilhante e imparável mundo da inteligência artificial, diversas ferramentas têm surgido como alternativas ao ChatGPT, cada uma com suas características e benefícios específicos. 

Neste artigo vamos explorar algumas das melhores opções disponíveis em 2024, destacando suas funcionalidades, integrações e diferenças principais. Se você está procurando uma IA que se integre perfeitamente ao ecossistema do Google, uma ferramenta poderosa para criação de conteúdo, ou uma solução focada em privacidade, aqui você encontrará a alternativa ideal para suas necessidades.

 

Google Gemini (anteriormente Bard)

Esta IA se destaca por integrar-se ao ecossistema do Google. Gemini aproveita o vasto conjunto de dados e capacidades de pesquisa do Google,  tornando-se uma ferramenta poderosa para aqueles que usam Google Docs, Sheets, Gmail e Slides, por exemplo.  As principais funcionalidades incluem entrada por voz e integração com serviços do Google. No entanto, enfrenta dificuldades em oferecer respostas criativas e realizar tarefas de raciocínio complexo​​.

 

Microsoft Copilot

Incorporado no Windows 11 e no Edge, o Copilot utiliza o GPT-4 em combinação com a pesquisa do Bing. Oferece acesso em tempo real à internet, geração de imagens e resultados interativos. É especialmente útil para usuários do ecossistema Microsoft. As principais desvantagens incluem anúncios ocasionais nas respostas e dificuldade de acessar o histórico de conversas​.

 

Claude 3

Desenvolvido pela Anthropic, o Claude oferece interações complexas e sensíveis ao contexto. Entre suas habilidades, suporta o upload e a análise de documentos. O Claude se destaca na escrita criativa e na manutenção de um estilo consistente, mas carece de recursos avançados como geração de imagens e interpretação de código​​.

Writesonic 

Focado na criação de conteúdo, o Writesonic fornece conteúdo otimizado para SEO para blogs, anúncios e postagens em redes sociais. Executado no GPT-4, oferece funcionalidades como geração de imagens e conversas baseadas em tendências, sendo ideal para equipes de marketing. Os problemas incluem consistência de memória​.

 

Meta AI

Utilizando o modelo Llama 3, o Meta AI está disponível em plataformas como WhatsApp, Instagram e Messenger. Suporta geração de imagens e tem um bom desempenho em várias tarefas, mas está limitado a certas regiões e requer uma conta no Facebook​​.

 

ClickUp Brain

 Integrado na plataforma ClickUp, esta ferramenta de IA é projetada para gestão de projetos e contextos empresariais. Oferece funcionalidades de IA baseadas em funções, resumos de tarefas e perguntas e respostas contextuais, sendo uma ferramenta valiosa para equipes. Está disponível em planos pagos e respeita controles de acesso rigorosos​​.

 

AnonChatGPT

Oferece acesso anônimo ao ChatGPT sem necessidade de login. Encaminha prompts para os servidores da OpenAI, proporcionando os benefícios básicos do ChatGPT sem compartilhar informações pessoais. No entanto, só é possível manter uma conversa por vez e necessita de recursos avançados como acesso à internet​​.

 

Copy.ai

Conhecido pela sumarização de texto, o Copy.ai é útil para processar textos longos, gerar ideias de conteúdo e escrever descrições para redes sociais. Suporta vários idiomas e oferece planos gratuitos e pagos. A ferramenta é robusta, mas possui uma curva de aprendizado​.

 

Character.AI

Melhor para conversas baseadas em personagens, esta ferramenta permite que os usuários interajam com chatbots inspirados em livros e outros meios. Salva o histórico de conversas com cada personagem e pode ser usada sem uma conta. No entanto, é menos prática para tarefas gerais​.

 

Principais Diferenças

Cada uma das ferramentas apresentadas aqui têm pontos fortes distintos, o que faz com que a necessidade do usuário defina qual a melhor ferramenta. Veja a seguir qual a melhor inteligência artificial em diferentes contextos.

Integração com Ecossistemas: Google Gemini e Microsoft Copilot se destacam pela integração perfeita com seus respectivos ecossistemas, sendo ideais para usuários já investidos em produtos Google ou Microsoft.

Criação de Conteúdo: Writesonic se destaca na geração de conteúdo otimizado para SEO para fins de marketing, enquanto Copy.ai foca na sumarização de texto e criação de conteúdo para redes sociais.

Acesso Anônimo e Simplificado: AnonChatGPT oferece uma vantagem única para usuários que priorizam privacidade e simplicidade, permitindo acesso sem necessidade de conta.

Interações Criativas e Baseadas em Personagens: Character.AI e Claude 3 são mais adequados para escrita criativa e interações baseadas em personagens, oferecendo uma experiência conversacional mais personalizada.

Gestão de Projetos e Contextos Empresariais: ClickUp Brain fornece funcionalidades de IA específicas para negócios, sendo útil para gestão de projetos e colaboração em equipe.

Versatilidade Geral: ChatGPT permanece uma opção versátil, continuamente atualizada para lidar com uma ampla gama de tarefas, desde conversas casuais até a resolução de problemas complexos.

Essas alternativas atendem a diferentes necessidades, permitindo que os usuários escolham com base em seus requisitos específicos e preferências de ecossistema.

 

 

 

 

 

Categorias
Bolsas Ciência de Dados Inteligência Artificial Não categorizado

Vagas no projeto Anamnese Assistida por Inteligência Artificial para bolsistas de mestrado e doutorado da UFC

O Insight está com inscrições abertas para bolsistas de mestrado e doutorado para o projeto de pesquisa Anamnese Assistida por Inteligência Artificial. Venha fazer parte do nosso time e contribuir com o desenvolvimento de tecnologias de ponta aplicadas aos problemas da sociedade e das organizações. 

Os bolsistas serão  selecionados por mérito acadêmico, tendo em vista o perfil esperado e os requisitos necessários para realização da pesquisa.

 

Projeto Anamnese Assistida por Inleligência Artificial do Centro de Referência em Inteligência Artificial (CEREIA).

O objetivo do centro é desenvolver pesquisas voltadas ao uso da inteligência artificial para a resolução de problemas na área da saúde, bem como promover a formação de profissionais para atender esse mercado. O CEREIA foi inaugurado no dia 20 de março pela FAPESP e o Grupo Hapvida NotreDame Intermédica e ocupará uma área de 380 metros quadrados no quinto andar do Condomínio de Empreendedorismo e Inovação da UFC.

No Brasil são realizadas mais de um bilhão de consultas médicas por ano. Neste contexto, anamnese é uma atividade essencial no atendimento médico. Nela são investigados e documentados episódios e fatos relacionados ao paciente, resumindo suas queixas e provendo um ponto inicial para um diagnóstico e por conseguinte um tratamento. Na maioria dos ambientes de atendimento ao paciente, a anamnese é feita de maneira rudimentar: a investigação depende exclusivamente da habilidade do profissional, a documentação é feita através de textos livres e desestruturados e o possível diagnóstico é também manual e dependente do conhecimento do profissional.

As informações da anamnese e exames complementares são importantes para possíveis diagnósticos. O reconhecimento de padrões (pattern recognition) e de critérios de diagnóstico (combinação de sintomas, sinais e resultados de exames) é usado na determinação de um diagnóstico correto. Dessa forma, é essencial a concepção e o desenvolvimento de soluções baseadas em inteligência artificial para auxiliar os profissionais da área da saúde com o objetivo de melhorar o atendimento e a segurança do paciente, assim como reduzir custos.

Saiba mais sobre o projeto nos portais: FAPESP, UFC e revista Veja Saúde.

Sediado na Universidade Federal do Ceará, grupo pretende desenvolver projetos voltados à aplicação de internet das coisas, big data, transformação digital e tecnologias de ponta na prevenção, diagnóstico e terapias de baixo custo (foto: divulgação/Hapvida NotreDame Intermédica)

Número de Vagas
  • 2 bolsas para Mestrado;
  • 1 bolsa para Doutorado;

 

Período de duração da bolsa

Até 24 meses para bolsa de mestrado e até 48 meses para bolsa de doutorado

 

Modalidade de Contratação

Os valores das bolsas concedidas pela FAPESP estão disponíveis em https://fapesp.br/valores/bolsasnopais;

 

Requisitos:
  • Estar regularmente matriculado no Programa de Mestrado e Doutorado em Ciência da Computação (MDCC) da UFC; 
  • Não ter nenhuma outra bolsa de instituições de fomento, uma vez que não é permitido o acúmulo de bolsas.
  • As bolsas da FAPESP são concedidas em regime de dedicação integral à pesquisa, ficando o Bolsista impedido de:
    • Exercer profissionalmente qualquer outra atividade, remunerada ou não, que não esteja relacionada à execução do projeto de pesquisa aprovado;
    • Ser sócio-gerente ou participar da administração de sociedade privada.

 

Etapas da seleção
Envio do formulário, até: 28/05
Resultado da análise de currículo e histórico 30/05
Resultado final 31/05

 

Inscrição

Acesse o  ➡️ formulário de inscrição para registrar seus dados, enviar seu currículo e histórico escolar. Fique atento às datas e ao seu e-mail.

Categorias
Inteligência Artificial Não categorizado UX/UI Designer Vagas

Vaga para Designer UI/UX no Insight Lab

Venha fazer parte do time Insight! Estão abertas as inscrições para o processo seletivo destinado à contratação de Designer para atuar no Projeto CEIAS/CRIA HEALTH & WELL-BEING

Quem somos?

O Insight Lab é um laboratório de pesquisa aplicada em Ciência de Dados e Inteligência Artificial da Universidade Federal do Ceará, envolvendo mais de 100 pessoas, entre pesquisadores, alunos de graduação, mestrado, doutorado e especialistas associados.

 

O que é o projeto?

O projeto  CEIAS/CRIA HEALTH & WELL-BEING  é fruto da parceria entre o Insight Data Science Lab, a Fundação Cetrede, o Centro de Referência em Inteligência Artificial (Cria) e a Samsung, e tem como objetivo promover soluções tecnológicas no âmbito da inteligência artificial aplicada à saúde.

 

Qual o perfil dos nossos colaboradores?

Procuramos por pessoas

  • com paixão por criar, aprender e testar novas tecnologias;
  • altamente criativas e curiosas sobre os assuntos, produtos, serviços e pesquisas científicas do Insight Lab;
  • que tenham habilidades interpessoais e de comunicação;
  • que trabalharem bem em equipe e com uma gama de pessoas criativas;
  • que saibam gerenciar demandas de trabalho de forma eficaz e organizada;

 

Vagas disponíveis

Temos uma vaga para Designer, além de cadastro de reserva.

 

Você será responsável por
  • Planejar e elaborar as interfaces dos sistemas e experiência dos usuários.

 

Modalidade de Contratação

CLT / Home Office

Carga Horária

40 horas semanais

 

Etapas da seleção
Envio de currículo para pré-seleção 11/04/23 a 13/04/23
Entrevista online 14/04/23 a 17/04/23
Resultado 18/04/23

 

Perfil da vaga
Procuramos por pessoas
  • Altamente criativas e curiosas sobre os assuntos, produtos, serviços e pesquisas científicas abordadas no Insight Lab;
  • Que saibam trabalhar bem em equipe e com uma gama de pessoas criativas;
  • Que saibam gerenciar demandas de trabalho de forma eficaz e organizada;
  • Autônomas, autogerenciáveis e proativas.

 

Requisitos
  • Usabilidade;
  • Experiência com UI/UX;
  • Prototipação de alta fidelidade;
  • Análise Heurística;
  • Mindset focado no cliente;
  • Conhecimentos em técnicas de linguagem simples.

 

Você deve possuir conhecimentos nas seguintes ferramentas:
  • Adobe XD, Illustrator, Figma, Sketch ou similares;
  • Zeplin.

 

Você se destacará se:
  • Tiver experiência com desenvolvimento mobile.

 

Inscrição

Interessado(a)? Acesse o link do formulário para registrar seus dados e enviar seu currículo aqui.

Categorias
Dados Inteligência Artificial Machine Learning

6 passos Para Criar Seu Primeiro Projeto de Machine Learning

Aqui você verá as várias etapas envolvidas em um projeto de Machine Learning (ML). Existem etapas padrões que você deve seguir para um projeto de Ciência de Dados. Para qualquer projeto, primeiro, temos que coletar os dados de acordo com nossas necessidades de negócios. A próxima etapa é limpar os dados como remover valores, remover outliers, lidar com conjuntos de dados desequilibrados, alterar variáveis ​​categóricas para valores numéricos, etc.

Depois do treinamento de um modelo, use vários algoritmos de aprendizado de máquina e aprendizado profundo. Em seguida, é feita a avaliação do modelo usando diferentes métricas, como recall, pontuação f1, precisão, etc. Finalmente, a implantação do modelo na nuvem e retreiná-lo. Então vamos começar:

Fluxo de trabalho do projeto de Aprendizado de Máquina

1. Coleta de dados

Perguntas a serem feitas: 

  • Que problema deve ser resolvido?
  • Que dados existem? 
  • Onde você pode obter esses dados? São públicos? 
  • Existem preocupações com a privacidade?
  • É estruturado ou não estruturado?

Tipos de dados

Dados estruturados: aparecem em formato tabular (estilo linhas e colunas, como o que você encontraria em uma planilha do Excel). Ele contém diferentes tipos de dados, por exemplo: numéricos, categóricos, séries temporais.

  • Nominal / categórico – Uma coisa ou outra (mutuamente exclusivo). Por exemplo, para balanças de automóveis, a cor é uma categoria. Um carro pode ser azul, mas não branco. Um pedido não importa.
  • Numérico: qualquer valor contínuo em que a diferença entre eles importa. Por exemplo, ao vender casas o valor de R$ 107.850,00 é maior do que R$ 56.400,00.
  • Ordinal: Dados que têm ordem, mas a distância entre os valores é desconhecida. Por exemplo, uma pergunta como: como você classificaria sua saúde de 1 a 5? 1 sendo pobre, 5 sendo saudável. Você pode responder 1,2,3,4,5, mas a distância entre cada valor não significa necessariamente que uma resposta de 5 é cinco vezes melhor do que uma resposta de 1.
  • Séries temporais: dados ao longo do tempo. Por exemplo, os valores históricos de venda de Bulldozers de 2012-2018.

Dados não estruturados: dados sem estrutura rígida (imagens, vídeo, fala, texto em linguagem natural)

2. Preparação de dados

2.1 Análise Exploratória de Dados (EDA), aprendendo sobre os dados com os quais você está trabalhando 

  • Quais são as variáveis ​​de recursos (entrada) e as variáveis de destino (saída)? Por exemplo, para prever doenças cardíacas, as variáveis ​​de recursos podem ser a idade, peso, frequência cardíaca média e nível de atividade física de uma pessoa. E a variável de destino será a informação se eles têm ou não uma doença.
  • Que tipo de dado você tem? Estruturado, não estruturado, numérico, séries temporais. Existem valores ausentes? Você deve removê-los ou preenchê-los com imputação de recursos.
  • Onde estão os outliers? Quantos deles existem? Por que eles estão lá? Há alguma pergunta que você possa fazer a um especialista de domínio sobre os dados? Por exemplo, um médico cardiopata poderia lançar alguma luz sobre seu dataset de doenças cardíacas?

2.2 Pré-processamento de dados, preparando seus dados para serem modelados.

  • Imputação de recursos: preenchimento de valores ausentes, um modelo de aprendizado de máquina não pode aprender com dados que não estão lá.
  1. Imputação única: Preencha com a média, uma mediana da coluna;
  2. Múltiplas imputações: modele outros valores ausentes e com o que seu modelo encontrar;
  3. KNN (k-vizinhos mais próximos): Preencha os dados com um valor de outro exemplo semelhante;
  4. Imputação aleatória, última observação transportada (para séries temporais), janela móvel e outros.
  •  Codificação de recursos (transformando valores em números). Um modelo de aprendizado de máquina exige que todos os valores sejam numéricos.
  • Uma codificação rápida:  Transforme todos os valores exclusivos em listas de 0 e 1, onde o valor de destino é 1 e o resto são 0s. Por exemplo, quando as cores de um carro são verdes, vermelhas, azuis, verdes, o futuro das cores de um carro seria representado como [1, 0 e 0] e um vermelho seria [0, 1 e 0].
  • Codificador de rótulo: Transforme rótulos em valores numéricos distintos. Por exemplo, se suas variáveis ​​de destino forem animais diferentes, como cachorro, gato, pássaro, eles podem se tornar 0, 1 e 2, respectivamente.
  • Codificação de incorporação: aprenda uma representação entre todos os diferentes pontos de dados. Por exemplo, um modelo de linguagem é uma representação de como palavras diferentes se relacionam entre si. A incorporação também está se tornando mais amplamente disponível para dados estruturados (tabulares).
  • Normalização de recursos (dimensionamento) ou padronização: quando suas variáveis ​​numéricas estão em escalas diferentes (por exemplo, number_of_bathroom está entre 1 e 5 e size_of_land entre 500 e 20000 pés quadrados), alguns algoritmos de aprendizado de máquina não funcionam muito bem. O dimensionamento e a padronização ajudam a corrigir isso.
  •  Engenharia de recursos: transforma os dados em uma representação (potencialmente) mais significativa, adicionando conhecimento do domínio.
  1. Decompor;
  2. Discretização: transformando grandes grupos em grupos menores;
  3. Recursos de cruzamento e interação: combinação de dois ou mais recursos;
  4. Características do indicador: usar outras partes dos dados para indicar algo potencialmente significativo.
  • Seleção de recursos:  selecionar os recursos mais valiosos de seu dataset para modelar. Potencialmente reduzindo o overfitting e o tempo de treinamento (menos dados gerais e menos dados redundantes para treinar) e melhorando a precisão.
  1. Redução de dimensionalidade: Um método comum de redução de dimensionalidade, PCA ou análise de componente principal, toma um grande número de dimensões (recursos) e usa álgebra linear para reduzi-los a menos dimensões. Por exemplo, digamos que você tenha 10 recursos numéricos, você poderia executar o PCA para reduzi-los a 3;
  2. Importância do recurso (pós-modelagem): ajuste um modelo a um dataset, inspecione quais recursos foram mais importantes para os resultados e remova os menos importantes;
  3. Os métodos Wrapper geram um subconjunto “candidato”, contendo atributos selecionados no conjunto de treinamento, e utilizam a precisão resultante do classificador para avaliar o subconjunto de atributos “candidatos”.
  •  Lidando com desequilíbrios: seus dados têm 10.000 exemplos de uma classe, mas apenas 100 exemplos de outra?
  1. Colete mais dados (se puder);
  2. Use o pacote scikit-learn-contrib imbalanced- learn;
  3. Use SMOTE: técnica de sobreamostragem de minoria sintética. Ele cria amostras sintéticas de sua classe secundária para tentar nivelar o campo de jogo.

2.3 Divisão de dados

  • Conjunto de treinamento: geralmente  o modelo aprende com 70-80% dos dados;
  • Conjunto de validação: normalmente os hiperparâmetros do modelo são ajustados com 10-15% dos dados;
  • Conjunto de teste: geralmente o desempenho final dos modelos é avaliado com 10-15% dos dados. Se você fizer certo os resultados no conjunto de teste fornecerão uma boa indicação de como o modelo deve funcionar no mundo real. Não use este dataset para ajustar o modelo.

3. Treinamento e Otimização do Modelo

Escolha de algoritmos

  1.  Algoritmos supervisionados – Regressão Linear, Regressão Logística, KNN, SVMs, Árvore de decisão e florestas aleatórias, AdaBoost / Gradient Boosting Machine (boosting);
  2. Algoritmos não supervisionadosClustering, redução de dimensionalidade (PCA, Autoencoders, t-SNE), Uma detecção de anomalia.

 Tipos de aprendizagem

  1. Aprendizagem em lote;
  2. Aprendizagem online;
  3. Aprendizagem de transferência;
  4. Aprendizado ativo;
  5. Ensembling.

Plataforma para detecção e segmentação de objetos.

  • Engenharia de atributos
  • Seleção de atributos
  1. Tipos de Algoritmos e Métodos: Filter Methods, Wrapper Methods, Embedded Methods;
  2. Seleção de Features com Python;
  3. Testes estatísticos: podem ser usados para selecionar os atributos que possuem forte relacionamento com a variável que estamos tentando prever. Os métodos disponíveis são:
  4. f_classif: é adequado quando os dados são numéricos e a variável alvo é categórica.
  5. mutual_info_classif é mais adequado quando não há uma dependência linear entre as features e a variável alvo.
  6. f_regression aplicado para problemas de regressão.
  7. Chi2: Mede a dependência entre variáveis estocásticas, o uso dessa função “elimina” os recursos com maior probabilidade de serem independentes da classe e, portanto, irrelevantes para a classificação;
  8. Recursive Feature Elimination – RFE: Remove recursivamente os atributos e constrói o modelo com os atributos remanescentes, ou seja, os modelos são construídos a partir da remoção de features;
  9. Feature Importance: Métodos ensembles como o algoritmo Random Forest, podem ser usados para estimar a importância de cada atributo. Ele retorna um score para cada atributo, quanto maior o score, maior é a importância desse atributo.

Ajuste e regularização

  1.  Underfitting – acontece quando seu modelo não funciona tão bem quanto você gostaria. Tente treinar para um modelo mais longo ou mais avançado.
  2. Overfitting – acontece quando sua perda de validação começa a aumentar ou quando o modelo tem um desempenho melhor no conjunto de treinamento do que no conjunto de testes.
  3. Regularização: uma coleção de tecnologias para prevenir / reduzir overfitting (por exemplo, L1, L2, Dropout, Parada antecipada, Aumento de dados, normalização em lote).

Ajuste de hiperparâmetrosexecute uma série de experimentos com configurações diferentes e veja qual funciona melhor.

 

4. Análise / Avaliação

Avaliação de métricas

  1. Classificação – Acurácia, precisão, recall, F1, matriz de confusão, precisão média (detecção de objeto);
  2. Regressão – MSE, MAE, R ^ 2;
  3. Métrica baseada em tarefas – por exemplo, para um carro que dirige sozinho, você pode querer saber o número de desengates.

  • Engenharia de atributos
  • Custo de treinamento / inferência.

 

5. Modelo de Serviço (implantação de um modelo) 

 Coloque o modelo em produção;

  1.  Ferramentas que você pode usar: TensorFlow Servinf, PyTorch Serving, Google AI Platform, Sagemaker;
  2.  MLOps: onde a engenharia de software encontra o aprendizado de máquina, basicamente toda a tecnologia necessária em torno de um modelo de aprendizado de máquina para que funcione na produção.

  • Usar o modelo para fazer previsões;
  • Reavaliar.

 

6. Modelo de retreinamento

O modelo ainda é válido para novas cargas de trabalho?

  1. Veja o desempenho do modelo após a veiculação (ou antes da veiculação) com base em várias métricas de avaliação e reveja as etapas acima conforme necessário. Lembre-se de que o aprendizado de máquina é muito experimental, então é aqui que você deverá rastrear seus dados e experimentos;
  2.  Você também verá que as previsões do seu modelo começam a “envelhecer” ou “flutuar”, como quando as fontes de dados mudam ou atualizam (novo hardware, etc.). É quando você deverá retreiná-lo.

Ferramentas de Aprendizado de Máquina

Fonte: Analytics Vidhya

O que você achou desse guia? Contribua, deixe uma sugestão nos comentários!

Categorias
Inteligência Artificial Machine Learning Processamento de Linguagem Natural

PLN – Processamento de Linguagem Natural para Iniciantes

PLN ou Processamento de Linguagem Natural é a forma como as máquinas entendem e lidam com as linguagens humanas. Esta técnica lida com dados não estruturados de texto e embora seja difícil de dominá-la é fácil de entender seus conceitos.

Cientes disso, devemos entender que a disponibilidade e geração de dados são complexidades envolvidas, em geral, com qualquer tipo de caso de uso de Machine Learning (ML). Mas o PLN é o campo onde esse problema é relativamente menos pronunciado, pois há muitos dados de texto ao nosso redor. Os e-mails que escrevemos, os comentários que postamos, os blogs que escrevemos são alguns exemplos.

Tipos:

1) Reconhecimento de entidade nomeada 

O processo de extração de entidades de nomeadas no texto, nome de pessoas, países, organizações, extrai informações úteis que podem ser usadas para vários fins como: classificação, recomendação, análise de sentimento, entre outros. 

Um chatbot é o exemplo de uso mais comum. A consulta do usuário é entendida por meio das entidades no texto e respondida de acordo com elas.

2) Resumo do texto 

É onde os conceitos-chave do texto são extraídos e o resumo parafraseado é construído em torno dele. Isso pode ser útil em resultados de pesquisas extensos.

3) Tradução 

Conversão de texto de uma linguagem para outra. O tradutor do Google é o exemplo mais comum que temos.

4) Fala em texto

Converte voz em dados de texto, sendo o exemplo mais comum os assistentes em nossos smartphones.

5) NLU 

Natural Language Understanding é uma forma de entender as palavras e frases no que diz respeito ao contexto. Eles são úteis na análise de sentimento dos comentários de usuários e consumidores. Modelos NLU são comumente usados na criação de chatbot.

6) NLG 

Natural Language Generation vai além do processamento da máquina ou da compreensão do texto. Essa é a capacidade das máquinas de escrever conteúdo por si mesmas. Uma rede profunda, usando Transformers GTP-3, escreveu este artigo.

Iniciando

Os insights sobre como o Machine Learning lida com dados não estruturados de texto são apresentados por meio de um exemplo básico de classificação de texto.

Entrada:

Uma coluna de ‘texto’ com comentários de revisão por usuário. Uma coluna de ‘rótulo’ com um sinalizador para indicar se é um comentário positivo ou negativo.

Saída:

A tarefa é classificar os comentários com base no sentimento como positivos ou negativos.

Etapas de pré-processamento

Um pré-processamento será feito para transformar os dados em algoritmos de ML. Como o texto não pode ser tratado diretamente por máquinas, ele é convertido em números. Dessa forma, os dados não estruturados são convertidos em dados estruturados.

NLTK é uma biblioteca Python que pode ajudar você nos casos de uso de PLN e atende muito bem às necessidades de pré-processamento.

1) Remoção de palavras irrelevantes

Palavras irrelevantes ocorrem com frequência e não acrescentam muito significado ao texto. Os mecanismos de pesquisa também são programados para ignorar essas palavras. Podemos citar como exemplo as palavras: de, o, isso, tem, seu, o quê, etc.

A remoção dessas palavras ajuda o código a se concentrar nas principais palavras-chave do texto que adicionam mais contexto.

 

Código de explicação:

import nltk
nltk.download(‘stopwords’)
from nltk.corpus import stopwords
stop = stopwords.words(‘english’)
print(stop)

 

Saída:

[‘i’, ‘me’, ‘my’, ‘myself’, ‘we’, ‘our’, ‘ours’, ‘ourselves’, ‘you’, “you’re”, “you’ve”, “you’ll”, “you’d”, ‘your’, ‘yours’,…]

 

Código de implementação:

Aplicando a remoção de palavras irrelevantes a um data frame do Pandas com uma coluna de ‘texto’.

input_df[‘text’] = input_df[‘text’].apply(lambda x: “ “.join(x for x in x.split() if x not in stop))

 

2) Remoção de emojis e caracteres especiais

Os comentários do usuário são carregados de emojis e caracteres especiais. Eles são representados como caracteres Unicode no texto, denotados como U +, variando de U + 0000 a U + 10FFFF.

Código de referência:

 

import re
def remove_emoji(text):
        emoji_pattern = re.compile("["
        u"U0001F600-U0001F64F"  # emoticons
        u"U0001F300-U0001F5FF"  # symbols & pictographs
        u"U0001F680-U0001F6FF"  # transport & map symbols
        u"U0001F1E0-U0001F1FF"  # flags (iOS)
        u"U0001F1F2-U0001F1F4"  # Macau flag
        u"U0001F1E6-U0001F1FF"  # flags
        u"U0001F600-U0001F64F"
        u"U00002702-U000027B0"
        u"U000024C2-U0001F251"
        u"U0001f926-U0001f937"
        u"U0001F1F2"
        u"U0001F1F4"
        u"U0001F620"
        u"u200d"
        u"u2640-u2642"
        "]+", flags=re.UNICODE)

return emoji_pattern.sub(r”, text)
sample_text= ‘That was very funny ?. Have a lovely day ? ‘
remove_emoji(sample_text)

Saída:
‘That was very funny . Have a lovely day ‘

Código de implementação:

input_df[‘text’] = input_df[‘text’].apply(lambda x: remove_emoji(x))

3)  Flexão

Flexão é a modificação de uma palavra para expressar diferentes categorias gramaticais como tempo verbal, voz, aspecto, pessoa, número, gênero e humor. Por exemplo, as derivações de ‘venha’ são ‘veio’, ‘vem’. Para obter o melhor resultado, as flexões de uma palavra devem ser tratadas da mesma maneira. Para lidar com isso usamos a lematização.

A lematização resolve as palavras em sua forma de dicionário (conhecida como lema), para a qual requer dicionários detalhados nos quais o algoritmo pode pesquisar e vincular palavras aos lemas correspondentes.

Por exemplo, as palavras “correr”, “corre” e “correu” são todas formas da palavra “correr”, portanto “correr” é o lema de todas as palavras anteriores.

    a) Stemming

Stemming é uma abordagem baseada em regras que converte as palavras em sua palavra raiz (radical) para remover a flexão sem se preocupar com o contexto da palavra na frase. Isso é usado quando o significado da palavra não é importante. A palavra raiz pode ser uma palavra sem sentido em si mesma.

 

Código de explicação:

from nltk.stem import PorterStemmer</span> <span style="font-weight: 400;" data-mce-style="font-weight: 400;">porter = PorterStemmer()

 

Amostra 1:

print(porter.stem('trembling'),
porter.stem('tremble'),
porter.stem('trembly'))

 

Saída:

trembl trembl trembl

 

Amostra 2:

print(porter.stem('study'),
porter.stem('studying'),
porter.stem('studies'))

 

Saída:

studi studi studi

 

Código de implementação

def stemming_text(text):
    stem_words = [porter.stem(w) for w in w_tokenizer.tokenize(text)]
    return ‘ ‘.join(stem_words)
input_df[‘text’] = input_df[‘text’].apply(lambda x: stemming_text(x))

 

    b) Lematização

A lematização, ao contrário de Stemming, reduz as palavras flexionadas adequadamente, garantindo que a palavra raiz (lema) pertence ao idioma. Embora a lematização seja mais lenta em comparação com a Stemming, ela considera o contexto da palavra levando em consideração a palavra anterior, o que resulta em melhor precisão.

 

Código de explicação:

w_tokenizer = nltk.tokenize.WhitespaceTokenizer()
lemmatizer = nltk.stem.WordNetLemmatizer()
def lemmatize_text(text):
    lemma_words = [lemmatizer.lemmatize(w) for w in w_tokenizer.tokenize(text)]
    return ‘ ‘.join(lemma_words)
print(lemmatize_text('study'),
     lemmatize_text('studying') ,
     lemmatize_text('studies'))

 

Saída:

study studying study

print(lemmatize_text('trembling'),
     lemmatize_text('tremble') ,
     lemmatize_text('trembly'))

 

Saída:

trembling tremble trembly

 

Código de implementação:

input_df[‘text’] = input_df[‘text’].apply(lemmatize_text)

 

4) Vetorizador

Esta é a etapa em que as palavras são convertidas em números, que podem ser processados ​​pelos algoritmos. Esses números resultantes estão na forma de vetores, daí o nome.

    1) Modelo Bag of words

Este é o mais básico dos vetorizadores. O vetor formado contém palavras no texto e sua frequência. É como se as palavras fossem colocadas em um saco. A ordem das palavras não é mantida.

 

Código de explicação:

from sklearn.feature_extraction.text import CountVectorizer
bagOwords = CountVectorizer()
print(bagOwords.fit_transform(text).toarray())
print('Features:', bagOwords.get_feature_names())

 

Entrada:

text = [“I like the product very much. The quality is very good.”,

“The product is very very good”,

“Broken product delivered”,

“The product is good, but overpriced product”,

“The product is not good”]

 

Saída:

array([[0, 0, 0, 1, 1, 1, 1, 0, 0, 1, 1, 2, 2],

[0, 0, 0, 1, 1, 0, 0, 0, 0, 1, 0, 1, 1],

[1, 0, 1, 0, 0, 0, 0, 0, 0, 1, 0, 0, 0],

[0, 1, 0, 1, 1, 0, 0, 0, 1, 2, 0, 1, 0],

[0, 0, 0, 1, 1, 0, 0, 1, 0, 1, 0, 1, 0]])

Features: [‘broken’, ‘but’, ‘delivered’, ‘good’, ‘is’, ‘like’, ‘much’, ‘not’, ‘overpriced’, ‘product’, ‘quality’, ‘the’, ‘very’]

 

Os vetores dos textos 2 e 5 (ao contrário do que se espera), por serem de sentidos opostos, não diferem tanto. A matriz retornada é esparsa.

    2) n-gramas

Ao contrário da abordagem do saco de palavras, a abordagem de n-gram depende da ordem das palavras para derivar seu contexto. O n-gram é uma sequência contígua de “n” itens em um texto, portanto, o conjunto de recursos criado com o recurso n-grams terá um número n de palavras consecutivas como recursos. O valor para “n” pode ser fornecido como um intervalo.

 

Código de explicação:

count_vec = CountVectorizer(analyzer='word', ngram_range=(1, 2))
print('Features:', count_vec.get_feature_names())
print(count_vec.fit_transform(text).toarray())

 

Saída:

[[0 0 0 0 0 1 0 1 0 0 1 1 1 1 1 0 0 0 0 1 0 0 1 1 1 2 1 1 2 1 1]

[0 0 0 0 0 1 0 1 0 0 1 0 0 0 0 0 0 0 0 1 0 1 0 0 0 1 1 0 1 1 0]

[1 1 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0]

[0 0 1 1 0 1 1 1 1 0 0 0 0 0 0 0 0 1 1 2 0 1 0 0 0 1 1 0 0 0 0]

[0 0 0 0 0 1 0 1 0 1 0 0 0 0 0 1 1 0 0 1 0 1 0 0 0 1 1 0 0 0 0]]

Features: [‘broken’, ‘broken product’, ‘but’, ‘but overpriced’, ‘delivered’, ‘good‘, ‘good but’, ‘is’, ‘is good’, ‘is not’, ‘is very’, ‘like’, ‘like the’, ‘much’, ‘much the’, ‘not’, ‘not good’, ‘overpriced’, ‘overpriced product’, ‘product’, ‘product delivered’, ‘product is’, ‘product very’, ‘quality’, ‘quality is’, ‘the’, ‘the product’, ‘the quality’, ‘very’, ‘very good’, ‘very much’]

 

    3) TF-IDF

Só porque uma palavra aparece com alta frequência não significa que a palavra acrescenta um efeito significativo sobre o sentimento que procuramos. A palavra pode ser comum a todos os textos de amostra. Por exemplo, a palavra ‘product’ em nossa amostra é redundante e não fornece muitas informações relacionadas ao sentimento. Isso apenas aumenta a duração do recurso.

Frequência do termo (TF) – é a frequência das palavras em um texto de amostra.

Frequência inversa do documento (IDF) – destaca a frequência das palavras em outros textos de amostra. Os recursos são raros ou comuns nos textos de exemplo é a principal preocupação aqui.

Quando usamos ambos os TF-IDF juntos (TF * IDF), as palavras de alta frequência em um texto de exemplo que tem baixa ocorrência em outros textos de exemplo recebem maior importância.

 

Código de explicação

from sklearn.feature_extraction.text import TfidfVectorizer
tf_idf_vec = TfidfVectorizer(use_idf=True,
                        smooth_idf=False,
                        ngram_range=(1,1))
print(tf_idf_vec.fit_transform(text).toarray())
print('Features:', tf_idf_vec.get_feature_names())

 

Saída

No terceiro texto de exemplo, as palavras de valores ‘broken e delivered‘ são raras em todos os textos e recebem pontuação mais alta do que ‘product, que é uma palavra recorrente.

 

Código de implementação      

tfidf_vec = TfidfVectorizer(use_idf=True)
                    tfidf_vec.fit(input_df[‘text’])
                    tfidf_result = tfidf_vec.transform(input_df[‘text’])

 

5) Desequilíbrio de classe

Geralmente, esse tipo de cenário terá um desequilíbrio de classe. Os dados de texto incluíam mais casos de sentimento positivo do que negativo. A maneira mais simples de lidar com o desequilíbrio de classe é aumentando os dados com cópias exatas da classe minoritária (neste caso, os cenários de sentimento negativo). Essa técnica é chamada de sobreamostragem.

Algoritmo de Machine Learning

Após a conclusão das etapas de processamento, os dados estão prontos para serem passados ​​para um algoritmo de ML para ajuste e previsão. Este é um processo iterativo no qual um algoritmo adequado é escolhido e o ajuste do hiperparâmetro é feito.

Um ponto a ser observado aqui é que, aparentemente, como qualquer outro problema de ML, as etapas de pré-processamento devem ser tratadas após a divisão de treinamento e teste.

 

Código de implementação

from sklearn.ensemble import RandomForestClassifier
from sklearn.metrics import f1_score
rnd_mdl = RandomForestClassifier()
rnd_mdl.fit(tfidf_result, input_df[‘label’])
#Using the fitted model to predict from the test data
#test_df is the test data and tfidf_result_test is the preprocessed test text data
output_test_pred = rnd_mdl.predict(tfidf_result_test)
#finding f1 score for the generated model 
test_f1_score = f1_score(test_df[‘label’], output_test_pred)

 

Biblioteca pré-construída

Há uma biblioteca pré-construída em NLTK que pontua os dados de texto com base no sentimento. Ele não precisa dessas etapas de pré-processamento. É denominado nltk.sentiment.SentimentAnalyzer.

Finalizando

Existem muitos modelos avançados de Deep Learning pré-treinados disponíveis para PLN. O pré-processamento envolvido, ao usar essas redes profundas, varia consideravelmente da abordagem de ML fornecida aqui.

Esta é uma introdução simples ao interessante mundo da PLN! É um vasto espaço em constante evolução!

Traduzido de analyticsvidhya.com

Categorias
Deep Learning Inteligência Artificial Keras Python

5 Passos para criar seu 1º Projeto de Deep Learning com Python e Keras

Keras é uma biblioteca aberta de Deep Learning implementada utilizando TensorFlow para diversas linguagens/plataformas, como Python e R, como foco na sua facilidade para utilização. Ela permite modelar e treinar modelos de redes neurais com poucas linhas de código, como você verá no tutorial a seguir.

Nesse tutorial, vamos utilizar o Keras para criar um modelo capaz de classificar se membros de uma população indígena possuem ou não diabetes.

Preparações

Para seguir esse projeto, você precisará ter instalados:

  • Python 3;
  • Bibliotecas SciPy e Numpy;
  • Bibliotecas TensorFlow e Keras;
  • Jupyter Notebook;

Alternativamente, você pode realizar este tutorial na plataforma Google Colab, que já possui todas as dependências instaladas e prontas para que você execute o tutorial no seu navegador.

Após isso, basta criar um novo notebook com o título “projeto_deep_learning” (ou qualquer outro nome), e iniciar o tutorial.

 

1. Carregando os dados

Em uma célula, importe as seguintes bibliotecas Python: 

from numpy import loadtxt
import numpy as np
from keras.models import Sequential
from keras.layers import Dense

Na célula seguinte, carregue os dados da base Pima Indians Diabetes. Essa base possui inicialmente 9 colunas, sendo as 8 primeiras as entradas e a última o resultado esperado. Todas as entradas dessa base são numéricas, assim como as saídas, o que facilita a computação dos dados por modelos de Deep Learning.

 # carregue a base de dados
dataset = loadtxt('https://raw.githubusercontent.com/jbrownlee/Datasets/master/pima-indians-diabetes.data.csv', delimiter=',')

 

Em seguida, utilizando a funcionalidade de slice do Python, separe o conjunto de dados entre “Entradas” (X) e “Saídas” (y).

# separe os dados entre entradas (X) e saídas (y)
X = dataset[:,0:8]
y = dataset[:,8]

 

2. Criar o modelo utilizando Keras

Agora que nossos dados foram carregados e ajustados entre entradas e saídas, podemos definir nosso modelo utilizando a biblioteca Keras.

Modelos Keras são definidos como uma sequência de camadas. Nesse tutorial, vamos criar um modelo sequencial e adicionar uma camada de cada.

Primeiramente, precisamos garantir que a camada de entrada tem a quantidade correta de inputs de entrada. Isso pode ser especificado no Keras utilizando o argumento input_dim e o ajustando para 8, nosso número de entradas.

Para esse tutorial, vamos utilizar camadas completamente conectadas, que são definidas no Keras pela classe Dense. Esse projeto utilizará 3 camadas, as quais as duas primeiras utilizarão a função de ativação ReLU e a função Sigmoid na última. Podemos especificar o número de neurônios no primeiro argumento, e a função de ativação com o parâmetro activation.

# definir o modelo com keras
# inicializar o modelo sequencial
model = Sequential()
# inicializar a primeira camada, com 12 neurônios, 8 entradas utilizando a função ReLU
model.add(Dense(12, input_dim=8, activation='relu'))
# inicializar a segunda camada com 8 neurônios e a função ReLU
model.add(Dense(8, activation='relu'))
# inicializar a última camada (camada de saída) com um neurônio e a função Sigmoid
model.add(Dense(1, activation='sigmoid'))

 

3. Compilando o modelo

Com nosso modelo definido, precisamos compilá-lo. A compilação ocorre utilizando bibliotecas como Theano ou TensorFlow, onde a melhor forma de representar a rede para treinar e fazer predições utilizando o hardware disponível é selecionada.

Ao compilar, precisamos especificar algumas propriedades, como a função de perda, otimizador e a métrica que será utilizada para avaliar o modelo. Foge ao escopo do tutorial apresentar esses conceitos, mas vamos utilizar a função de perda de Entropia Cruzada Binária, o otimizador Adam (que utiliza o gradiente descendente) e acurácia como métrica.

# compile the keras model
model.compile(loss='binary_crossentropy', optimizer='adam', metrics=['accuracy'])

 

4. Treinando o modelo

Como nosso modelo definido e compilado, precisamos treiná-lo, ou seja, executar o modelo utilizando nossos dados. Para treinar o modelo, basta chamar a função fit() para o modelo.

O treinamento ocorre através de épocas, e cada época é dividida em lotes, onde uma época é uma passagem por todas as linhas do conjunto de testes, e um lote é composto de uma ou mais amostras (quantidade definida pelo usuário) consideradas pelo modelo antes que seja feita a atualização dos seus pesos.  Aqui, vamos executar 150 épocas com lotes de tamanho 10 (um número considerado pequeno). 

# treinar o modelo keras
model.fit(X, y, epochs=150, batch_size=10)

5. Avaliando o modelo

Agora que estamos com nosso modelo treinado, precisamos avaliá-lo. Essa avaliação vai dizer o quão bem o modelo foi construído utilizando o conjunto de dados de treinamento. Esse pequeno projeto foi construído para ser simples, mas você pode separar os dados entre dados de treinamento e de teste para avaliar o desempenho do modelo com novos dados.

Para avaliar como o modelo se comportou para os dados de treinamento, basta passar os mesmos dados de entrada e saída para a função evaluate() . Essa função retorna uma lista com a perda e a acurácia do modelo para o conjunto de dados.

# avaliando o modelo keras
_, accuracy = model.evaluate(X, y)
print('Acurácia: %.2f' % (accuracy*100))

Conclusão

Com esse tutorial, podemos acompanhar em 5 passos o ciclo de vida de um modelo de Deep Learning, da sua concepção até a sua avaliação. Você pode expandir o que foi feito neste tutorial para, por exemplo, ajustar o modelo (é possível obter uma acurácia maior do que a obtida?), salvar o modelo (para utilização em outros projetos), plotar a curva de aprendizado, entre outras ideias.

 

Para mais tutoriais, continue atento ao nosso Blog.

 

Este texto foi baseado no tutorial disponibilizado em: Your First Deep Learning Project in Python with Keras Step-By-Step

 

 

Categorias
Deep Learning Dica de Leitura Inteligência Artificial

As superpotências de inteligência artificial sob o olhar de Kai-Fuu Lee

“Hoje, o Insight indica o livro “Inteligência Artificial” (AI Superpowers – China, Silicon Valley, and the New World Order), escrito por uma das maiores autoridade de IA, Kai-Fuu Lee.


Esse livro nos ajuda a entender as grandes transformações positivas que a inteligência artificial pode trazer e como as maiores potências do mundo, EUA e China, estão desenvolvendo essa ciência dentro de realidades e posições específicas.

 

As posições de liderança ocupadas por China e Estados Unidos em muitos momentos ganham o contorno de confronto. E isso se reflete nas palavras usadas pelo autor quando afirma que a grande quantidade de engenheiros de IA consistentes será tão importante quanto a qualidade de pesquisadores de elite, e “a China está treinando exatamente esse exército“.


Também é destacado que, apesar dos Estados Unidos serem pioneiros na IA, hoje a China já é um superpotência na área. Isso é resultado, afirma Lee, de aspectos específicos do país asiático, como “dados abundantes, empreendedores tenazes, cientistas de IA bem treinados e um ambiente político favorável”.


No entanto, como alertado em artigo do The Washington Post, “alguns leriam ‘dados abundantes’ como ‘vigilância` e ‘um ambiente de política favorável’ como ‘tomada de decisão de cima para baixo que não é impedida pela opinião pública.’”


Kai-Fuu Lee compartilha conosco uma reflexão sobre o processo desta corrida desenvolvimentista entre Estado Unidos e China e suas implicações. Uma das preocupações destacadas é que o domínio dessas duas potências gere desigualdade global também no campo de IA. Os dois países já são lideranças massivas no resto do mundo, e isso pode se aprofundar se esse poder tecnológico permanecer tão concentrado.


Além disso, o livro trata da antiga e a cada dia renovada preocupação sobre o papel que a IA ocupará no mundo. E isso significa pensar qual lugar nós ocuparemos num mundo tão automatizado por essas máquinas, muito mais adequadas que os seres humanos para certas tarefas, mas frutos da criatividade e inteligência humana. 

 

O autor*

Imagem: vídeo – Como a IA pode salvar nossa humanidade (TED)

 

 

 

 

 

 

 

 

 

 

 

Kai-Fu Lee tem uma perspectiva única na indústria de tecnologia global, tendo trabalhado extensivamente entre os Estados Unidos e a China pesquisando, desenvolvendo e investindo em inteligência artificial há mais de 30 anos. Ele é um dos maiores investidores em tecnologia da China, realizando um trabalho pioneiro no campo da IA e trabalhando com vários gigantes da tecnologia dos EUA.

 

Lee já foi presidente do Google China e ocupou cargos executivos na Microsoft, SGI e Apple, e fundou a Microsoft Research China. Mais tarde renomeado “Microsoft Research Asia”, este instituto treinou a maioria dos líderes de IA na China, incluindo chefes de IA da Baidu, Tencent, Alibaba, Lenovo, Huawei e Haier. Enquanto estava na Apple, Lee liderou projetos de IA em fala e linguagem natural que foram destaques na mídia americana.

 

Atualmente, Kai-Fuu Lee é o presidente e CEO da Sinovation Ventures, empresa líder de investimentos em tecnologia com foco no desenvolvimento de companhias chinesas de alta tecnologia.

 

*Informações retiradas do perfil de Kai-Fu Lee no site TED.

 

Sair da versão mobile