Você está na página 1de 43

Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof.

Achiles Júnior

Super Resumo
Esta edição do Super Resumo é o arquivo 01 de uma série de 08 arquivos que cobrem todo o
conteúdo específico do edital conteúdo específico do edital de Analista Legislativo Atribuição:
Informática Legislativa da Câmara dos Deputados. Este arquivo cobre os assuntos “9 Ciência de
Dados - 9.2 Inteligência Artificial” do tópico de ARQUITETURA DE SISTEMAS DA INFORMAÇÃO.
Todo o conteúdo é focado no padrão de cobrança da banca FGV. Utilizamos uma abordagem concisa
e direta ao ponto para te ajudar a economizar tempo de estudo e ao mesmo tempo garantir pontos
importantes neste concurso.

Conheça nossa série de SUPER RESUMOS para a Reta Final – Câmara dos Deputados:

Conheça também nosso projeto de Questões Discursivas para a Câmara dos Deputados:

Preparamos um COMBO com um desconto caso você tenha interesse em adquirir os


dois materiais e ter uma preparação completa para a prova objetiva e para a prova
discursiva deste concurso. (Obs.: O valor com desconto fica visível na página de pagamento)
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Cronograma de Liberação dos Materiais


Em função da grande quantidade de itens específicos do edital, os itens foram
agrupados em 08 arquivos para facilitar o controle de liberações. Cada arquivo é
composto por um conjunto de itens do edital. Ao final do dia 23/10/2023, é previsto
que o material cobrindo todos os itens específicos do edital esteja liberado. A seguir,
apresentamos o cronograma detalhado.

Tema Tópico Arquivo Data Liberação


9. Ciência de Dados. (Achiles)
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO GRÁTIS 1 23/09/2023
10 Gestão de projetos e riscos e
governança de Tecnologia da
Informação. (Alexandre)
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO GRÁTIS 1 23/09/2023
1. Domínio dos padrões arquiteturais
de modo a projetar soluções
estratégicas de TI com os recursos
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO disponíveis: (Alexandre) 2 28/09/2023
2. Domínio no desenvolvimento de
front-end, back-end e full stack:
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO (Achiles) 2 28/09/2023
3. Soluções propostas integradas
por meio de serviços aos sistemas
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO existentes: (Alexandre) 2 28/09/2023
3. Fundamentos de Modelagem,
implementação e automação de
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO testes: (Achiles) 3 01/10/2023
4. Fundamentos de autenticação
Oauth e segurança de código:
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO (Alexandre) 3 01/10/2023
5. Fundamentos de Sistemas de
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO Mensageria: (Achiles) 3 01/10/2023
6. Fundamentos de monitoramento
de aplicações e análise de
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO desempenho: (Achiles) 4 05/10/2023
7. Domínio de uso de ambientes
com sistemas em containers:
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO (Achiles) 4 05/10/2023
8. Experiência do usuário e
ARQUITETURA DE SISTEMAS DA INFORMAÇÃO acessibilidade digital. (Alexandre) 4 05/10/2023
ARQUITETURA DE INFRAESTRUTURA DE
TECNOLOGIA DA INFORMAÇÃO E
COMUNICAÇÃO 1 Fundamentos. (Achiles) 5 08/10/2023
ARQUITETURA DE INFRAESTRUTURA DE 2 Automação de Infraestrutura de
TECNOLOGIA DA INFORMAÇÃO E Tecnologia da Informação e
COMUNICAÇÃO Comunicação. (Achiles) 5 08/10/2023
ARQUITETURA DE INFRAESTRUTURA DE
TECNOLOGIA DA INFORMAÇÃO E
COMUNICAÇÃO 3 Storage e Backup. (Alexandre) 5 08/10/2023
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

ARQUITETURA DE INFRAESTRUTURA DE
TECNOLOGIA DA INFORMAÇÃO E
COMUNICAÇÃO 4 Rede de Computadores. (Achiles) 6 12/10/2023
ARQUITETURA DE INFRAESTRUTURA DE
TECNOLOGIA DA INFORMAÇÃO E 5 Infraestrutura de Aplicações.
COMUNICAÇÃO (Achiles) 6 12/10/2023
ARQUITETURA DE INFRAESTRUTURA DE
TECNOLOGIA DA INFORMAÇÃO E
COMUNICAÇÃO 6 Banco de Dados. (Alexandre) 6 12/10/2023
ARQUITETURA DE INFRAESTRUTURA DE 7 Monitoramento de Infraestrutura
TECNOLOGIA DA INFORMAÇÃO E de Tecnologia da Informação e
COMUNICAÇÃO Comunicação. (Achiles) 6 12/10/2023
1 Sistemas de criptografia simétrica
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO e assimétrica. (Alexandre) 7 15/10/2023
2 Estruturas de gestão de riscos,
como NIST (National Institute of
Standards and Technology) RMF
(Risk Management Framework).
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO (Alexandre) 7 15/10/2023
3 Sistema de gestão de segurança
da informação, nos termos da
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO (Alexandre) 7 15/10/2023
4 Gerenciamento de Riscos em
Tecnologia da Informação e
Comunicação (TIC) de acordo com a
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO norma ISO/IEC 27005. (Alexandre) 7 15/10/2023
5 Avaliação de segurança em
produtos de Tecnologia da
Informação e Comunicação (TIC) de
acordo com a norma ISO/IEC 15408.
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO (Alexandre) 7 15/10/2023
6 Frameworks de segurança da
informação e segurança cibernética,
como MITRE ATT&CK, Cyber
Security Body Of Knowledge
(CyBOK) e NIST Cybersecurity
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO Framework. (Alexandre) 7 15/10/2023
7 Gestão de incidentes de
segurança, nos termos do NIST SP
800-61 e do SANS Incident
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO Handler’s Handbook. (Alexandre) 8 22/10/2023
8 Gestão de identidades e acesso;
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO (Alexandre) 8 22/10/2023
9 Múltiplos Fatores de Autenticação
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO (MFA). (Alexandre) 8 22/10/2023
10 Gestão de continuidade de
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO negócio. (Alexandre) 8 22/10/2023
11 Privacidade e segurança por
SEGURANÇA CIBERNÉTICA E DA INFORMAÇÃO padrão. (Alexandre) 8 22/10/2023
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Apresentação do Professor
Prof. Alexandre Martins

Auditor Fiscal de TI da SEFAZ BA aprovado em 3º lugar.


Maior nota na discursiva do concurso de Auditor Fiscal da
Sefaz BA de 2019.

Aprovado em 3º lugar no cargo de Especialista em Políticas


Públicas do município de Salvador (2019). Aprovado em 29º
lugar no cargo de Especialista em Políticas Públicas e
Gestão Governamental do Estado de Sergipe (2018).

Bacharel em Sistemas de Informação pela Universidade do


Estado da Bahia (Uneb). Bacharel em Administração (IFBA).

Seguem minhas redes sociais caso queira entrar em contato:

Telegram: t.me/profalexandremartins

Instagram: @prof_alexandremartins

Prof. Achiles Júnior

Aprovações:
● Auditor Fiscal do Estado da Bahia (SEFAZ BA)
aprovado em 5º lugar na área de Tecnologia da Informação.
● Auditor Fiscal da Receita Estadual (SEFAZ MG)
aprovado em 44º lugar na área de Tecnologia da Informação.

Mestre em Ciência da Computação pela Universidade Federal


de Minas Gerais (UFMG).

@pratique.concursos

Feedback sobre o Material


Encontrou algum erro no material? Não entendeu alguma parte? Tem alguma ideia de
melhoria? Sentiu falta de algum conteúdo? Mande suas observações no formulário que vou deixar a
seguir e assim vamos conseguir sempre aperfeiçoar o material, pensando nas necessidades de quem
está se preparando para as provas de concursos.

Deixe seu feedback sobre este material:

Avaliar o Material e Ver Avaliações

Você também pode nos enviar uma mensagem no Instagram @pratique.concursos e/ou um e-mail
para contato@pratiqueconcursos.com.br
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Sumário
1. Ciência de Dados ...................................................................................................... 8
2. Inteligência Artificial ................................................................................................. 8
2.1. Subcampos da Inteligência Artificial ..................................................................... 9
2.2. Considerações Éticas e Desafios na IA ............................................................... 9
2.3. Responsible AI (IA Responsável) ......................................................................... 9
2.4. Explainable AI (IA Explicável) .............................................................................10
2.5. Mapa Mental Inteligência Artificial .......................................................................10
3. Aprendizado de Máquina ........................................................................................ 11
3.1. Mapa Mental Aprendizado de Máquina ...............................................................12
4. Classificação ............................................................................................................12
4.1. Tipos de Classificação ........................................................................................12
4.2. Algoritmos de Classificação ................................................................................13
4.3. Mapa Mental Classificação .................................................................................14
4.4. Avaliação de Modelos de Classificação ..............................................................15
5. Regressão ................................................................................................................17
5.1. Regressão Linear ...............................................................................................18
5.2. Regressão Logística ...........................................................................................19
6. Regras de Associação .............................................................................................20
6.1. Algoritmos de Regra de Associação ...................................................................20
6.2. Métricas de Suporte e Confiança ........................................................................21
6.3. Algumas Aplicações e Limitações dos Algoritmos de Regras de Associação ......21
6.4. Diagrama Regras de Associação ........................................................................21
7. Agrupamento (Clusterização) .................................................................................22
7.1. Aplicações de Agrupamento (Clusterização).......................................................22
7.2. Principais Métodos de Agrupamento (Clusterização) ..........................................22
7.3. Tipos de Algoritmos de Agrupamento (Clusterização) .........................................23
7.4. Diagrama de Tipos de Algoritmos de Agrupamento (Clusterização) ....................23
7.5. Tabela Algoritmos de Agrupamento ....................................................................24
8. Redução de Dimensionalidade ...............................................................................25
8.1. Outras Técnicas de Redução de Dimensionalidade ............................................25
8.2. Tabela Redução de Dimensionalidade ................................................................26
9. Redes Neurais Artificiais .........................................................................................26
9.1. Arquitetura ..........................................................................................................26
9.2. Funções de Ativação ..........................................................................................27
9.3. Otimização..........................................................................................................27
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

9.4. Métodos de Regularização .................................................................................27


9.5. CNN (Redes Neurais Convolucionais) ................................................................27
10. Deep Learning (Aprendizado Profundo) ................................................................27
10.1. Processo de Aprendizado em Deep Learning .................................................28
10.2. Tipos de Redes Neurais Profundas .................................................................28
10.3. Mapa Mental Deep Learning ...........................................................................28
11. Visão Computacional ..............................................................................................29
11.1. Tarefas em Visão Computacional ....................................................................29
11.2. Algoritmos Aplicáveis Visão Computacional ....................................................30
12. Processamento de Linguagem Natural (PLN)........................................................31
12.1. Principais tópicos em PLN ..............................................................................31
12.2. Abordagens e técnicas em PLN ......................................................................32
12.3. Técnicas em PLN ............................................................................................32
12.4. Aplicações do PLN ..........................................................................................33
12.5. Desafios no PLN .............................................................................................33
12.6. Mapa Mental Processamento de Linguagem Natural (PLN) ............................34
13. Transfer Learning ....................................................................................................34
14. Python ......................................................................................................................35
14.1. Sintaxe Básica ................................................................................................35
14.2. Tipos de Dados ...............................................................................................36
14.3. Operações Aritméticas ....................................................................................37
14.4. Operações em Strings.....................................................................................37
14.5. Controle de Fluxo ............................................................................................38
14.6. Classes e Objetos ...........................................................................................40
14.7. Modificadores em Python ................................................................................40
14.8. Métodos ..........................................................................................................40
14.9. Herança ..........................................................................................................41
14.10. Polimorfismo ...................................................................................................41
14.11. Manipulação de Estruturas de Dados..............................................................41
14.12. Exemplo Prático: Contagem de Palavras em uma Frase ................................42
14.13. Exemplo Prático: Método Iterativo do Fibonacci ..............................................42
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

1. Ciência de Dados
A ciência de dados é um campo interdisciplinar que utiliza métodos, processos, algoritmos e
sistemas para extrair conhecimento e insights a partir de dados estruturados e não estruturados. Ela
combina técnicas de estatística, análise de dados, aprendizado de máquina e visualização de dados
para ajudar a tomar decisões informadas e resolver problemas complexos. Algumas etapas do
processo de ciência de dados envolvem:
• Coleta de Dados: A coleta de dados é o processo de reunir informações relevantes para o
problema em questão. Isso pode envolver a obtenção de dados de várias fontes, como bancos
de dados, APIs, arquivos CSV, planilhas ou até mesmo a coleta manual de informações. A
qualidade dos dados coletados é fundamental para a eficácia da análise subsequente e a
tomada de decisões.
• Limpeza e Preparação de Dados: Uma vez coletados, os dados geralmente precisam ser
limpos e preparados para análise. Isso pode incluir a remoção de dados duplicados, a correção
de erros de digitação, a conversão de formatos de dados e a manipulação de dados ausentes.
A preparação de dados também pode envolver a engenharia de recursos, que é o processo de
criar novas variáveis a partir dos dados existentes para melhorar a análise e a modelagem.
• Análise Exploratória de Dados: A análise exploratória de dados é uma abordagem para
analisar conjuntos de dados para resumir suas características principais, geralmente com
métodos visuais. A AED é usada para identificar padrões, tendências e relações nos dados,
bem como para detectar anomalias e outliers. Isso pode envolver a criação de gráficos, como
histogramas, gráficos de dispersão e gráficos de caixa, e o cálculo de estatísticas descritivas,
como média, mediana, moda e desvio padrão.
• Aprendizado de Máquina: O aprendizado de máquina é um subcampo da inteligência artificial
que envolve o desenvolvimento de algoritmos que podem aprender a partir de e fazer previsões
ou tomar decisões com base em dados. Na ciência de dados, o aprendizado de máquina é
usado para criar modelos preditivos e classificatórios, bem como para identificar padrões e
estruturas nos dados. Existem três tipos principais de aprendizado de máquina:
o Aprendizado supervisionado: O algoritmo é treinado em um conjunto de dados
rotulado, onde a variável de interesse (ou "alvo") é conhecida. Exemplos de algoritmos
de aprendizado supervisionado incluem regressão linear, árvores de decisão e
máquinas de vetores de suporte.
o Aprendizado não supervisionado: O algoritmo é treinado em um conjunto de dados não
rotulado, onde a variável de interesse não é conhecida. Exemplos de algoritmos de
aprendizado não supervisionado incluem clustering (agrupamento), como o K-means,
e redução de dimensionalidade, como a análise de componentes principais (PCA).
o Aprendizado por reforço: O algoritmo aprende a tomar decisões com base em
recompensas e punições, a fim de maximizar algum objetivo de longo prazo. Exemplos
de algoritmos de aprendizado por reforço incluem Q-learning e Deep Q-Networks
(DQNs).
• Visualização de Dados: A visualização de dados é a representação gráfica de informações e
dados. Ela usa elementos visuais, como gráficos, mapas e gráficos, para exibir informações
complexas de maneira clara e intuitiva. A visualização de dados é uma parte importante da
ciência de dados, pois ajuda a comunicar os resultados da análise e a tomar decisões
informadas.
• Comunicação dos Resultados: A comunicação dos resultados permite que os tomadores de
decisão compreendam os insights obtidos a partir da análise e os apliquem em suas estratégias
e processos de negócios. O processo pode envolver a criação de relatórios, apresentações,
painéis interativos ou outras formas de comunicação visual. A comunicação eficaz dos
resultados requer habilidades de narrativa e design, bem como a capacidade de adaptar a
mensagem ao público-alvo.

2. Inteligência Artificial
8 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

A Inteligência Artificial (IA) é o ramo da ciência da computação que visa simular a capacidade
humana de raciocinar, perceber, aprender, comunicar e tomar decisões. Basicamente, a IA é a teoria
e o desenvolvimento de sistemas de computador capazes de executar tarefas que normalmente
requerem inteligência humana.
O livro "Artificial Intelligence: A Modern Approach", de Peter Norvig e Stuart Russell,
descreve quatro objetivos principais da IA:
• Criar sistemas que agem como humanos: Isso envolve automação de atividades associadas
ao pensamento humano, como tomada de decisão, resolução de problemas, aprendizado e
adaptação.
• Criar sistemas que pensam como humanos: Esta é a área do estudo da inteligência artificial
que se relaciona com a psicologia. Trata-se de construir sistemas que reproduzem a cognição
humana.
• Criar sistemas que agem racionalmente: Envolve a criação de sistemas que agem de
maneira ideal, ou seja, agem de forma a atingir o melhor resultado possível.
• Criar sistemas que pensam racionalmente: Este objetivo envolve a criação de sistemas que
são capazes de simular o pensamento lógico racional.

2.1. Subcampos da Inteligência Artificial


A IA é composta de vários subcampos, incluindo:
• Aprendizado de Máquina (Machine Learning): É um método de análise de dados que
automatiza a construção de modelos analíticos. Permite que os computadores aprendam a
partir dos dados sem serem explicitamente programados.
• Redes Neurais Artificiais (Artificial Neural Networks): São sistemas de computação
vagamente inspirados na estrutura neural do cérebro humano. Eles são usados para estimar
ou aproximar funções que podem depender de um grande número de entradas e são
geralmente desconhecidas.
• Processamento de Linguagem Natural (Natural Language Processing): É uma área da IA
que se concentra na interação entre computadores e linguagens humanas, em particular como
programar computadores para processar e analisar grandes quantidades de dados de
linguagem natural.
• Sistemas Especialistas (Expert Systems): São programas de computador que são
construídos para imitar a capacidade de tomada de decisão de um especialista humano. Eles
são projetados para resolver problemas complexos, fornecendo conselhos ou sugestões.

2.2. Considerações Éticas e Desafios na IA


Com o avanço da IA, vários desafios e considerações éticas surgem, incluindo:
Viés Algorítmico: O viés algorítmico ocorre quando um sistema de computador reflete os
preconceitos implícitos dos humanos envolvidos em seu projeto e implementação, resultando em
resultados injustos ou discriminatórios.
Privacidade de Dados: À medida que os sistemas de IA tornam-se mais integrados em nossas
vidas diárias, as preocupações com a privacidade de dados aumentam. É crucial que os dados
utilizados para treinar e operar esses sistemas sejam manuseados de maneira segura e ética.
Automatização de Empregos: A IA tem o potencial de automatizar muitos empregos
atualmente realizados por humanos, o que pode resultar em deslocamento significativo de
trabalhadores.

2.3. Responsible AI (IA Responsável)

9 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

IA Responsável refere-se à prática de criar e implementar algoritmos de inteligência artificial de


uma maneira ética e responsável. Isso envolve várias considerações importantes, incluindo:
• Transparência: Ser aberto e claro sobre como os modelos de IA são desenvolvidos e operam.
• Fairness (Justiça): Garantir que os sistemas de IA não discriminem ou favoreçam
injustamente determinados grupos ou indivíduos.
• Privacidade e Segurança: Proteger os dados dos usuários e garantir que a IA seja usada de
forma a respeitar a privacidade e a confidencialidade.
• Responsabilidade: Ter mecanismos de responsabilização em vigor para identificar e corrigir
qualquer uso indevido ou impacto negativo da IA.
• Sustentabilidade: Desenvolver e usar IA de maneira a respeitar o meio ambiente e os recursos
naturais.
A IA Responsável enfatiza a necessidade de uma abordagem holística que considere o impacto
social, ético e ambiental da IA.

2.4. Explainable AI (IA Explicável)


IA Explicável é um campo focado em tornar os modelos de inteligência artificial compreensíveis
e transparentes para os seres humanos. Isso envolve:
• Interpretabilidade: Criar modelos que podem ser entendidos em termos humanos, permitindo
que as pessoas vejam como as decisões são feitas.
• Comunicação Clara: Fornecer explicações claras e compreensíveis para as decisões
tomadas por modelos de IA.
• Confiança: Ao tornar a IA mais transparente e compreensível, ajuda a construir confiança entre
os usuários e os sistemas de IA.
• Conformidade Legal: A capacidade de explicar as decisões da IA pode ser essencial para
cumprir regulamentações e leis, como o GDPR na Europa.
A IA Explicável ajuda a garantir que os modelos de IA não sejam "caixas-pretas"
incompreensíveis, mas sim sistemas que possam ser questionados, entendidos e responsabilizados.
Isso é especialmente importante em áreas críticas como saúde, finanças e justiça, onde a compreensão
das decisões da IA é crucial.

2.5. Mapa Mental Inteligência Artificial


A seguir, apresentamos um mapa mental sobre inteligência artificial.

10 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

3. Aprendizado de Máquina

11 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Aprendizado de máquina, conforme definido no livro "Artificial Intelligence: A Modern


Approach", é um campo de estudo que dá aos computadores a habilidade de aprender sem serem
explicitamente programados. Esta subárea da Inteligência Artificial concentra-se no desenvolvimento
de algoritmos que podem aprender a partir e fazer previsões ou decisões baseadas em dados.
Existem vários tipos principais de aprendizado de máquina: aprendizado
supervisionado, aprendizado não supervisionado, aprendizado semi-supervisionado,
e aprendizado por reforço.
Aprendizado supervisionado envolve a aprendizagem a partir de um conjunto de dados de
treinamento rotulado, onde a resposta correta é conhecida. O algoritmo faz previsões baseadas nestes
rótulos e, com o tempo, aprende a fazer previsões precisas em novos dados.
Aprendizado não supervisionado envolve a aprendizagem a partir de um conjunto de dados
sem rótulos pré-existentes. O algoritmo deve encontrar por si só padrões e relações nos dados. Isso é
comumente usado para tarefas como agrupamento e detecção de anomalias.
Aprendizado semi-supervisionado é um meio termo entre aprendizado supervisionado e não
supervisionado. Aqui, um pequeno conjunto de dados rotulados é usado para guiar o aprendizado em
um conjunto de dados maior que não é rotulado.
No aprendizado por reforço, um agente aprende a tomar decisões com base em
recompensas e punições. O agente toma uma ação, recebe feedback (na forma de uma recompensa
ou punição), e ajusta suas ações futuras de acordo.
Os modelos de aprendizado de máquina são usados em uma ampla gama de aplicações, desde
detecção de spam até sistemas de recomendação, reconhecimento de voz e diagnóstico médico.

3.1. Mapa Mental Aprendizado de Máquina


A seguir, apresentamos um mapa mental com um resumo sobre Aprendizado de Máquina

4. Classificação
A classificação é uma das tarefas fundamentais no aprendizado de máquina (machine
learning) e consiste em atribuir uma categoria ou classe a um objeto ou instância com base em suas
características. A classificação é um tipo de aprendizado supervisionado, o que significa que o
algoritmo de aprendizado é treinado com um conjunto de dados rotulados, onde cada instância possui
uma classe conhecida.

4.1. Tipos de Classificação

12 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Existem dois tipos principais de classificação:


• Classificação binária: Neste tipo de classificação, o algoritmo deve atribuir uma instância a
uma de duas classes possíveis. Um exemplo comum é a classificação de e-mails como spam
ou não spam.
• Classificação multiclasse: Neste caso, o algoritmo deve atribuir uma instância a uma de
várias classes possíveis. Um exemplo é a classificação de dígitos escritos à mão, onde cada
dígito pode pertencer a uma das 10 classes possíveis (0 a 9).

4.2. Algoritmos de Classificação


Existem diversos algoritmos de classificação, cada um com suas próprias características e
abordagens. Alguns dos algoritmos mais comuns incluem:
• Regressão Logística: Um algoritmo estatístico que modela a probabilidade de uma instância
pertencer a uma classe específica.
• K-Nearest Neighbors (KNN): Um algoritmo baseado em instância que classifica uma instância
com base na classe majoritária de seus k vizinhos mais próximos.
• Árvores de Decisão: Um algoritmo que constrói uma estrutura de árvore com base em regras
de decisão para classificar instâncias.
• Support Vector Machines (SVM): Um algoritmo que busca encontrar o hiperplano que melhor
separa as classes no espaço de características.
• Redes Neurais Artificiais: Um algoritmo que simula o funcionamento do cérebro humano
através de neurônios artificiais interconectados, capaz de aprender padrões complexos e não
lineares.
• Random Forests:Método de aprendizado de máquina para classificação, regressão e outras
tarefas que operam pela construção de uma infinidade de árvores de decisão durante o
treinamento e produzindo a classe que é o modo das classes ou previsão média das árvores
individuais.
• Naive Bayes:Uma técnica de classificação baseada no teorema de Bayes com uma suposição
de independência entre os preditores. Em termos simples, um classificador Naive Bayes
assume que a presença de uma característica particular em uma classe não está relacionada
à presença de qualquer outra característica.
A seguir, apresentamos uma tabela resumo com algumas das características dos algoritmos
de classificação.
Algoritmo Descrição Vantagens Desvantagens

Pode gerar árvores muito


Modelo que utiliza uma estrutura de Fácil interpretação, boa complexas e
Árvore de árvore para classificar dados a partir performance em sobreajustadas, baixa
Decisão de uma série de decisões baseadas conjuntos de dados performance em
em atributos. pequenos e médios. conjuntos de dados
grandes.

Pode sofrer com a


Fácil interpretação, boa
Modelo que utiliza uma função presença de outliers, não
Regressão performance em
logística para estimar a probabilidade é indicado para
Logística conjuntos de dados
de um evento ocorrer. problemas de
grandes.
classificação não linear.

Modelo que classifica novos dados a Pode sofrer com a


K-NN partir da distância entre eles e os Fácil implementação,
presença de atributos
dados de treinamento mais próximos. boa performance em irrelevantes, baixa

13 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Algoritmo Descrição Vantagens Desvantagens

problemas de performance em
classificação não linear. conjuntos de dados
grandes.

Boa performance em
problemas de Pode sofrer com a
Modelo que encontra o hiperplano
classificação não linear, presença de outliers,
SVM que melhor separa os dados de
pode lidar com pode ser difícil de
diferentes classes.
conjuntos de dados interpretar.
grandes.

Boa performance em
Pode ser difícil de
Modelo que simula o funcionamento problemas de
Redes interpretar, pode sofrer
do cérebro humano para classificar classificação não linear
Neurais com a presença de
dados. e em conjuntos de
atributos irrelevantes.
dados grandes.

Método de aprendizado de máquina


para classificação, regressão e outras Alta performance, bom
tarefas que operam pela construção para conjuntos de dados Pode ser difícil de
Random de uma infinidade de árvores de grandes, menos interpretar, pode levar
Forests decisão durante o treinamento e propenso a overfitting mais tempo para treinar
produzindo a classe que é o modo (sobreajuste) do que a do que outros modelos.
das classes ou previsão média das árvore de decisão.
árvores individuais.

Uma técnica de classificação baseada


no teorema de Bayes com uma A suposição de
suposição de independência entre os Fácil implementação, independência entre as
preditores. Em termos simples, um rápido para treinar, bom características nem
Naive
classificador Naive Bayes assume desempenho em sempre é realista, pode
Bayes
que a presença de uma característica conjuntos de dados sofrer com a presença de
particular em uma classe não está pequenos. características
relacionada à presença de qualquer irrelevantes.
outra característica.

4.3. Mapa Mental Classificação


A seguir, apresentamos mapa mental com algumas das características dos algoritmos de
classificação.

14 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

4.4. Avaliação de Modelos de Classificação


Para avaliar a qualidade e o desempenho de um modelo de classificação, é necessário utilizar
métricas de avaliação. Algumas das métricas mais comuns incluem:
• Acurácia: A proporção de instâncias classificadas corretamente em relação ao total de
instâncias.
• Precisão: A proporção de instâncias classificadas corretamente como positivas em relação ao
total de instâncias classificadas como positivas.
• Recall (Sensibilidade): A proporção de instâncias classificadas corretamente como positivas
em relação ao total de instâncias verdadeiramente positivas.
• F1-Score: Uma média harmônica entre precisão e recall, fornecendo uma medida balanceada
de desempenho do modelo.
• Área sob a curva ROC (AUC-ROC): Uma métrica que mede a capacidade do modelo de
distinguir entre classes, considerando a taxa de verdadeiros positivos e a taxa de falsos
positivos.
Para ilustrar o cálculo das métricas de acurácia, precisão e recall, consideraremos um exemplo
de classificação binária em que um algoritmo tenta prever se uma mensagem é spam ou não spam.
Vamos supor que temos os seguintes resultados do algoritmo:
Verdadeiro Falso

Positivo 100 (VP) 30 (FP)

Negativo 20 (FN) 150 (VN)

Os valores na tabela acima são:


• Verdadeiros Positivos (VP): 100
• Falsos Positivos (FP): 30
• Falsos Negativos (FN): 20
• Verdadeiros Negativos (VN): 150

15 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

4.4.1. Acurácia
A acurácia é a proporção de previsões corretas em relação ao total de previsões feitas. Para
calcular a acurácia, usamos a fórmula:

Acurácia = (VP + VN) / (VP + FP + FN + VN)

Aplicando a fórmula aos nossos resultados, temos:

Acurácia = (100 + 150) / (100 + 30 + 20 + 150) = 250 / 300 = 0,8333 (83,33%)

4.4.2. Precisão
A precisão é a proporção de verdadeiros positivos em relação à soma de verdadeiros positivos
e falsos positivos. Para calcular a precisão, usamos a fórmula:

Precisão = VP / (VP + FP)

Aplicando a fórmula aos nossos resultados, temos:

Precisão = 100 / (100 + 30) = 100 / 130 = 0,7692 (76,92%)

4.4.3. Recall
O recall, também conhecido como sensibilidade ou taxa de verdadeiros positivos, é a proporção
de verdadeiros positivos em relação à soma de verdadeiros positivos e falsos negativos. Para calcular
o recall, usamos a fórmula:

Recall = VP / (VP + FN)

Aplicando a fórmula aos nossos resultados, temos:

Recall = 100 / (100 + 20) = 100 / 120 = 0,8333 (83,33%)

Neste exemplo, nosso algoritmo de classificação obteve os seguintes valores de métricas:


• Acurácia: 83,33%
• Precisão: 76,92%
• Recall: 83,33%
Essas métricas ajudam a avaliar o desempenho do algoritmo de classificação e a identificar
áreas em que ele pode ser melhorado. Por exemplo, uma precisão mais baixa indica que há mais falsos
positivos, enquanto um recall mais baixo indica que há mais falsos negativos. Ajustar o algoritmo ou os
dados de treinamento pode ajudar a melhorar essas métricas e, assim, melhorar o desempenho geral
do algoritmo.

4.4.4. Conceitos Relacionados a Overfitting e Underfitting


• Overfitting ocorre quando um modelo estatístico ou de aprendizado de máquina aprende os
detalhes e o ruído no conjunto de treinamento até o ponto em que ele se comporta mal em
novos dados. Isso acontece quando o modelo é excessivamente complexo em relação à
quantidade e ao ruído dos dados de treinamento.
• Underfitting ocorre quando um modelo estatístico ou de aprendizado de
máquina é muito simples para capturar a estrutura subjacente dos dados. Quando um modelo
está underfitting, o modelo não aprendeu o suficiente a partir dos dados de treinamento,
resultando em previsões imprecisas.

16 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

• Trade off entre variância e viés:


Refere-se ao equilíbrio entre overfitting (alta variância) e underfitting (alto viés). Um modelo
com alta variância se ajusta muito bem ao conjunto de treino, mas não generaliza bem para
novos dados. Por outro lado, um modelo com alto viés faz suposições simplistas sobre os
dados e pode não capturar a verdadeira relação subjacente. O objetivo é encontrar um
equilíbrio onde nem o viés nem a variância são excessivamente altos, resultando em um
modelo que generaliza bem.
• Regularização:
É uma técnica usada para prevenir o overfitting em modelos de aprendizado de máquina. Ela
adiciona uma penalidade à complexidade do modelo para restringir os coeficientes, tornando-
os mais generalizados. Exemplos comuns incluem a regularização L1 (Lasso) e L2 (Ridge).

4.4.5. Seleção de Modelos e Conjuntos de Testes


• A Validação Cruzada é uma técnica para avaliar a capacidade de um modelo estatístico de
generalizar a partir de seu treinamento. Ela faz isso dividindo os dados em subconjuntos que o
modelo treina e, em seguida, avalia em um subconjunto retido (o conjunto de "validação" ou "teste").

• Seleção de modelos:

Refere-se ao processo de escolher o modelo mais adequado para um problema específico,


considerando sua complexidade e desempenho. Essa escolha é baseada em métricas de desempenho,
como erro quadrático médio ou precisão, e pode envolver a comparação de diferentes algoritmos ou a
otimização de hiperparâmetros de um algoritmo específico.
• Validação cruzada:

Uma técnica usada para avaliar a capacidade de generalização de um modelo. Divide-se o


conjunto de dados em 'k' subconjuntos. Em cada iteração, um subconjunto é usado como conjunto de
teste, enquanto os restantes 'k-1' subconjuntos são usados para treinar o modelo. Este processo é
repetido 'k' vezes, de modo que cada subconjunto seja usado como conjunto de teste exatamente uma
vez. A performance média do modelo nas 'k' iterações é então utilizada como sua métrica de
desempenho.
• Conjunto de treino, validação e teste:

Estes são subconjuntos de dados usados para diferentes propósitos no aprendizado de


máquina. O conjunto de treino é usado para treinar o modelo, o conjunto de validação é usado para
ajustar hiperparâmetros e prevenir overfitting, e o conjunto de teste é usado para avaliar a performance
do modelo em dados não vistos anteriormente.

4.4.6. Aplicações da Classificação


A classificação tem uma ampla gama de aplicações em diversos domínios, como:
• Detecção de spam: Classificar e-mails como spam ou não spam.
• Reconhecimento de dígitos: Identificar dígitos escritos à mão em imagens.
• Diagnóstico médico: Classificar doenças com base em sintomas e resultados de exames.
• Reconhecimento de fala: Identificar palavras faladas e convertê-las em texto.
• Classificação de sentimentos: Determinar o sentimento expresso em um texto, como
positivo, negativo ou neutro.

5. Regressão
Regressão Linear e Regressão Logística são duas das técnicas de regressão. A seguir,
apresentamos detalhes sobre estas duas técnicas.

17 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

5.1. Regressão Linear


A Regressão Linear é uma das técnicas mais simples e amplamente utilizados
em Aprendizado de Máquina e Estatística. É uma técnica de modelagem que busca estabelecer uma
relação entre uma variável dependente e uma ou mais variáveis independentes, utilizando uma função
linear.

5.1.1. Componentes da Regressão Linear


Importante saber! Em TI para concursos esse nível de profundidade não costuma ser
aboardado. A regressão linear pode ser dividida em dois tipos principais: Regressão Linear
Simples e Regressão Linear Múltipla.
1. Regressão Linear Simples: Neste caso, temos apenas uma variável independente e uma
variável dependente. A relação entre as duas variáveis é representada por uma reta.
2. Regressão Linear Múltipla: Aqui, temos várias variáveis independentes e uma variável
dependente. A relação entre as variáveis é representada por um hiperplano.
A equação geral para a regressão linear é:
Y = β0 + β1X1 + β2X2 + ... + βnXn + ε
Onde:
• Y é a variável dependente (a ser prevista)
• X1, X2, ..., Xn são as variáveis independentes
• β0, β1, ..., βn são os coeficientes de regressão (parâmetros do modelo)
• ε é o erro aleatório (resíduo)

5.1.2. Objetivo da Regressão Linear


O objetivo principal da regressão linear é encontrar os coeficientes de regressão (β0, β1, ...,
βn) que minimizam a soma dos quadrados dos resíduos (erro quadrático). Isso é conhecido
como Minimização do Erro Quadrático Médio (MSE).

5.1.3. Coeficientes de Regressão


Existem várias abordagens para encontrar os coeficientes de regressão, como:
1. Método dos Mínimos Quadrados (OLS): Este é o método mais comum, que minimiza a soma
dos quadrados dos resíduos. Pode ser resolvido analiticamente ou numericamente.
2. Gradiente Descendente: É um algoritmo de otimização iterativo que ajusta os coeficientes de
regressão em cada etapa, minimizando a função de custo (MSE).
3. Regularização: Técnicas como Ridge Regression e Lasso Regression adicionam termos de
penalidade à função de custo para evitar o sobreajuste e melhorar a generalização do modelo.

5.1.4. Avaliação do Modelo


Para avaliar a qualidade do modelo de regressão linear, utilizamos métricas como:
1. Erro Quadrático Médio (MSE): É a média da soma dos quadrados dos resíduos. Quanto
menor o MSE, melhor o modelo.
2. Coeficiente de Determinação (R²): É uma medida estatística que indica a proporção da
variância na variável dependente que é previsível a partir das variáveis independentes. Varia
entre 0 e 1, sendo 1 o melhor valor possível.
3. Erro Absoluto Médio (MAE): É a média da soma dos valores absolutos dos resíduos. Também
é uma medida de desempenho do modelo.

18 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

5.1.5. Limitações da Regressão Linear


A regressão linear possui algumas limitações, por exemplo:
1. Linearidade: a regressão linear assume que a relação entre as variáveis é linear. Se a relação
for não linear, a regressão linear pode não ser a melhor escolha para modelar a relação entre
as variáveis.
2. Multicolinearidade: a regressão linear pode apresentar problemas quando há
multicolinearidade, ou seja, quando as variáveis independentes estão altamente
correlacionadas entre si. Nesses casos, pode ser difícil determinar o efeito isolado de cada
variável independente sobre a variável dependente.
3. Independência dos erros: a regressão linear assume que os erros (diferenças entre os valores
observados e os valores previstos) são independentes entre si. Se os erros estiverem
correlacionados, isso pode afetar a precisão das estimativas dos coeficientes.
4. Normalidade dos erros: a regressão linear assume que os erros seguem uma distribuição
normal. Se os erros não seguirem essa distribuição, as estimativas dos coeficientes podem ser
enviesadas.

5.2. Regressão Logística


A Regressão Logística é uma técnica de aprendizado de máquina supervisionado que é
usada para resolver problemas de classificação. É especialmente útil quando a variável de resposta é
categórica, ou seja, quando queremos prever a probabilidade de um evento ocorrer, como aprovação
ou reprovação de um aluno, ou a probabilidade de um cliente comprar ou não um produto.

5.2.1. Conceitos-chave
A seguir, apresentamos alguns conceitos-chave relacionados a Regressão Logística.

5.2.1.1. Função Logística (Sigmoid)


A função logística, também conhecida como função sigmoid, é uma função matemática que
mapeia qualquer valor real para um intervalo entre 0 e 1. A função logística é definida como:

f(x) = 1 / (1 + e^(-x))

A função logística é usada na regressão logística para transformar a saída do modelo linear em
uma probabilidade.

5.2.1.2. Modelo Linear


A regressão logística é uma extensão do modelo linear. O modelo linear é uma combinação
linear de variáveis independentes (features) e coeficientes (pesos), que é usada para prever a variável
dependente (target). A equação geral do modelo linear é:

y = b0 + b1 * x1 + b2 * x2 + ... + bn * xn

Onde y é a variável dependente, b0 é o coeficiente de interceptação, b1, b2, ..., bn são os


coeficientes das variáveis independentes x1, x2, ..., xn.

5.2.1.3. Modelo Logístico


O modelo logístico é uma combinação do modelo linear e da função logística. A equação geral
do modelo logístico é:

p(y=1) = 1 / (1 + e^(-(b0 + b1 * x1 + b2 * x2 + ... + bn * xn)))

19 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Onde p(y=1) é a probabilidade da variável dependente ser igual a 1, e os demais termos são
os mesmos que no modelo linear.

5.2.1.4. Estimativa dos Coeficientes


A estimativa dos coeficientes no modelo logístico é feita através do método de Maximum
Likelihood Estimation (MLE). O objetivo do MLE é encontrar os coeficientes que maximizam a
probabilidade de observar os dados dados os coeficientes.

5.2.1.5. Função de Custo (Log Loss)


A função de custo usada na regressão logística é chamada de Log Loss e é definida como:

Log Loss = - (y * log(p) + (1 - y) * log(1 - p))

Onde y é a variável dependente e p é a probabilidade prevista pelo modelo logístico.

5.2.2. Otimização
A otimização dos coeficientes na regressão logística é geralmente feita usando o algoritmo
de Gradiente Descendente (Gradient Descent) ou alguma variação dele, como o Gradiente
Descendente Estocástico (Stochastic Gradient Descent) ou o Mini-Batch Gradient Descent.
Esses algoritmos atualizam iterativamente os coeficientes para minimizar a função de custo.

5.2.3. Avaliação do Modelo


A avaliação do modelo de regressão logística pode ser feita usando várias métricas,
como acurácia, precisão, recall, F1-score e curva ROC-AUC. Essas métricas ajudam a entender o
desempenho do modelo em termos de classificação correta, falsos positivos e falsos negativos.

6. Regras de Associação
As regras de associação são um método popular de mineração de dados utilizado para
identificar padrões e relações entre itens ou eventos em grandes conjuntos de dados. Um exemplo de
utilização é a análise de cestas de compras, que visa descobrir quais produtos são frequentemente
comprados juntos.
As regras de associação são representadas na forma X ⇒ Y, onde X e Y são conjuntos de
itens. A regra indica que, quando os itens em X ocorrem juntos, os itens em Y também ocorrem
frequentemente. Por exemplo, uma regra de associação como {fraldas} ⇒ {cerveja} sugere que as
pessoas que compram fraldas também tendem a comprar cerveja.
A seguir, abordaremos os principais tópicos relacionados às regras de associação.

6.1. Algoritmos de Regra de Associação


O algoritmo Apriori é um dos algoritmos mais conhecidos para gerar regras de associação.
Ele funciona em duas etapas principais:
1. Identificação de conjuntos de itens frequentes: Nesta etapa, o algoritmo identifica todos os
conjuntos de itens que têm suporte maior ou igual a um limite mínimo pré-definido.
2. Geração de regras: A partir dos conjuntos de itens frequentes, o algoritmo gera regras de
associação que têm confiança maior ou igual a um limite mínimo pré-definido.
O algoritmo Apriori utiliza uma abordagem de "candidatos" para reduzir o número de conjuntos
de itens a serem verificados, aproveitando a propriedade de que todos os subconjuntos de um conjunto
de itens frequentes também devem ser frequentes.
O algoritmo Eclat é uma abordagem mais eficiente para encontrar conjuntos de itens
frequentes em comparação com o Apriori. Ele utiliza uma estrutura de dados chamada trie para
armazenar os conjuntos de itens e o suporte associado, o que permite uma busca mais rápida e reduz

20 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

a necessidade de varrer o conjunto de dados várias vezes. O Eclat também utiliza a técnica
de interseção de transações para calcular o suporte, o que é mais eficiente do que contar as
ocorrências de conjuntos de itens.
O algoritmo FP-Growth é outra abordagem eficiente para encontrar conjuntos de itens
frequentes. Ele constrói uma estrutura de dados chamada FP-tree (Frequent Pattern tree) a partir do
conjunto de dados, que armazena informações sobre conjuntos de itens frequentes de forma compacta.
O algoritmo, então, explora a FP-tree para encontrar conjuntos de itens frequentes sem a necessidade
de varrer o conjunto de dados várias vezes ou gerar candidatos a conjuntos de itens, como no Apriori.

6.2. Métricas de Suporte e Confiança


• O suporte é uma medida que indica a frequência com que uma regra de associação ocorre
em um conjunto de dados. Ele é calculado como a proporção de transações que contêm os
itens A e B juntos em relação ao total de transações. O suporte ajuda a identificar as regras de
associação que são significativas e não ocorrem por acaso. Por exemplo, se tivermos um
conjunto de dados com 100 transações e a regra "Se pão, então manteiga" ocorre em 30
dessas transações, o suporte dessa regra será 30/100 = 0,3 ou 30%. Em geral, um valor
mínimo de suporte é definido para filtrar regras de associação que ocorrem raramente e podem
não ser úteis para análise.
• A confiança é outra medida usada para avaliar a qualidade das regras de associação. Ela
indica a probabilidade de que a presença de A implique a presença de B. A confiança é
calculada como a proporção de transações que contêm A e B juntos em relação às transações
que contêm apenas A. Por exemplo, se tivermos um conjunto de dados com 100 transações,
30 transações contêm pão e manteiga juntos e 50 transações contêm pão, a confiança da regra
"Se pão, então manteiga" será 30/50 = 0,6 ou 60%. Um valor mínimo de confiança é geralmente
definido para filtrar regras de associação que têm baixa probabilidade de serem verdadeiras.

6.3. Algumas Aplicações e Limitações dos Algoritmos


de Regras de Associação
Os algoritmos de regras de associação têm várias aplicações práticas, como:
• Análise de cestas de compras para identificar produtos que são frequentemente comprados
juntos.
• Recomendação de produtos ou conteúdo com base nos interesses e comportamentos dos
usuários.
• Detecção de fraudes em transações financeiras ou de seguros.
• Análise de sequências genéticas para identificar padrões e relações entre genes.
Entretanto, esses algoritmos também têm algumas limitações:
• Eles podem gerar um grande número de regras, tornando difícil identificar as mais relevantes
e úteis.
• O desempenho pode ser afetado pela escolha dos limites de suporte e confidence, e ajustar
esses parâmetros pode ser um desafio.
• Algoritmos como o Apriori podem ser ineficientes em conjuntos de dados muito grandes ou com
conjuntos de itens frequentes muito longos.

6.4. Diagrama Regras de Associação


A seguir, apresentamos um diagrama resumo sobre as regras de associação:

21 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

7. Agrupamento (Clusterização)
A Técnica de Agrupamentos, também conhecida como Clusterização, é uma técnica de
aprendizado não supervisionado utilizada em mineração de dados e inteligência artificial. Seu principal
objetivo é dividir um conjunto de dados em grupos (clusters) de forma que os elementos dentro de um
mesmo grupo sejam mais semelhantes entre si do que com os elementos de outros grupos. Essa
semelhança é geralmente medida por meio de uma função de distância, como a distância euclidiana,
manhattan ou outras. Observação: em concursos, ambos os termos (agrupamento e clusterização) são
amplamente utilizados.

7.1. Aplicações de Agrupamento (Clusterização)


A análise de agrupamentos tem diversas aplicações práticas, como:
1. Segmentação de Mercado: Identificar grupos de clientes com comportamentos e preferências
similares para direcionar campanhas de marketing.
2. Detecção de Anomalias: Encontrar padrões incomuns em um conjunto de dados, como
fraudes em transações financeiras ou falhas em sistemas.
3. Agrupamento de Documentos: Organizar documentos em categorias com base em seu
conteúdo, facilitando a recuperação de informações.
4. Redução de Dimensionalidade: Agrupar variáveis altamente correlacionadas em um conjunto
de dados, simplificando a análise e melhorando a eficiência computacional.

7.2. Principais Métodos de Agrupamento


(Clusterização)
Existem diversos métodos de análise de agrupamentos, que podem ser divididos em algumas
categorias principais:
1. Métodos Particionais: Esses métodos dividem o conjunto de dados em um número pré-
definido de clusters não sobrepostos. O algoritmo mais popular dessa categoria é o K-Means,
que atribui cada ponto ao cluster cujo centroide (ponto médio) está mais próximo.
2. Métodos Hierárquicos: Esses métodos constroem uma hierarquia de clusters, que pode ser
representada por uma árvore dendrograma. Eles podem ser divididos em aglomerativos
(bottom-up) e divisivos (top-down). O algoritmo mais comum é o Agglomerative Hierarchical
Clustering, que começa com cada ponto como um cluster individual e, iterativamente, agrupa
os clusters mais próximos até que todos os pontos estejam em um único cluster.
3. Métodos Baseados em Densidade: Esses métodos agrupam pontos com base em áreas de
alta densidade, separadas por áreas de baixa densidade. O algoritmo mais conhecido dessa
categoria é o DBSCAN, que identifica clusters como áreas densas de pontos, separadas por
áreas de menor densidade.
4. Métodos Baseados em Grade: Esses métodos dividem o espaço de dados em um número
finito de células (grades) e agrupam as células com base na densidade de pontos em cada
célula. Exemplos de algoritmos dessa categoria incluem STING e CLIQUE.

22 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

7.3. Tipos de Algoritmos de Agrupamento


(Clusterização)
Existem vários algoritmos de clusterização, que podem ser classificados em diferentes
categorias, como:
1. Algoritmos Particionais: Esses algoritmos dividem os dados em um número pré-definido de
clusters, atribuindo cada ponto a um único cluster. Exemplos incluem o K-Means e o K-
Medoids.
2. Algoritmos Hierárquicos: Esses algoritmos constroem uma hierarquia de clusters, que pode
ser representada por uma árvore chamada dendrograma. Existem dois tipos
principais: aglomerativo (bottom-up) e divisivo (top-down). Exemplos incluem o Single
Linkage, Complete Linkage e Average Linkage.
3. Algoritmos Baseados em Densidade: Esses algoritmos agrupam os pontos com base na
densidade de pontos em uma região. Os clusters são formados em áreas de alta densidade,
separados por áreas de baixa densidade. Exemplos incluem o DBSCAN e o OPTICS.
4. Algoritmos Baseados em Grade: Esses algoritmos dividem o espaço de dados em uma grade
e agrupam os pontos com base na densidade de pontos em cada célula da grade. Exemplos
incluem o STING e o CLIQUE.

7.4. Diagrama de Tipos de Algoritmos de


Agrupamento (Clusterização)
A seguir, apresentamos um diagrama resumo ilustrando alguns dos tipos de algoritmos de
agrupamento (clusterização).

23 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Diagrama Tipos de Algoritmos de Agrupamento (Clusterização)

7.5. Tabela Algoritmos de Agrupamento


A seguir, apresentamos uma tabela resumo sobre alguns dos algoritmos de agrupamento
(clusterização).
Algoritmo Descrição

Divide os dados em k grupos, onde k é definido pelo usuário. Cada grupo é


K-means
representado por um centroide, que é atualizado a cada iteração do algoritmo.

Constrói uma hierarquia de grupos, onde cada grupo é formado pela união de
Hierarchical grupos menores. Pode ser aglomerativo (começa com cada ponto como um
clustering grupo e une os mais próximos) ou divisivo (começa com todos os pontos em
um grupo e divide em grupos menores).

Encontra grupos densos de pontos, definidos por uma distância máxima entre
DBSCAN
eles. Pontos que não pertencem a nenhum grupo são considerados outliers.

24 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Algoritmo Descrição

Misturas Gaussianas Modela os dados como uma mistura de distribuições gaussianas, onde cada
(Gaussian Mixture distribuição representa um grupo. A probabilidade de cada ponto pertencer a
Models) cada grupo é calculada.

8. Redução de Dimensionalidade
A redução de dimensionalidade é um conjunto de técnicas que é usado para reduzir a
quantidade de dados a serem processados, minimizando a perda de informações. É especialmente útil
para modelagem preditiva e visualização de dados.
Conjunto de dados (datasets) grandes e complexos podem ter centenas ou mesmo milhares
de dimensões, tornando o processamento e a análise de dados desafiadores. Isso é conhecido como
a maldição da dimensionalidade. Reduzir o número de dimensões pode acelerar o processamento e
simplificar a visualização dos dados, além de poder ajudar a mitigar o overfitting.
Ao considerar a redução de dimensionalidade, é importante lembrar que, embora essas
técnicas possam melhorar a eficiência, também há um risco de perda de informações. Portanto, a
escolha da técnica de redução de dimensionalidade deve ser cuidadosamente feita, com base nas
características específicas do dataset e no objetivo da análise de dados.
Existem duas principais técnicas de redução de dimensionalidade: técnicas de seleção de
recursos e técnicas de extração de recursos.
• Seleção de Recursos: envolve escolher um subconjunto das variáveis de entrada originais.
As técnicas incluem:
o Métodos univariados (usando estatísticas para avaliar a importância de cada recurso
individualmente)
o Métodos recursivos (usando um modelo para avaliar a importância dos recursos e
eliminar os menos importantes)
o Métodos de regularização (usando um modelo que inclui um termo de penalidade para
reduzir a importância dos recursos)
• Extração de Recursos: envolve a transformação do espaço de entrada, criando um novo
subconjunto de recursos a partir dos recursos originais. As técnicas incluem:
o Análise de Componentes Principais (PCA): PCA é uma técnica de redução de
dimensionalidade linear que procura maximizar a variância e minimizar a perda de
informações. Ele transforma os recursos originais em um novo conjunto de recursos
chamados componentes principais.
o Análise de Discriminante Linear (LDA): LDA é uma técnica de redução de
dimensionalidade que é usada principalmente para problemas de classificação.
Diferentemente do PCA, que ignora a classe dos objetos, o LDA busca maximizar a
separação entre as classes.
o Mapeamento auto-organizável (SOM): SOM é uma técnica de redução de
dimensionalidade não linear que procura preservar as relações topológicas dos dados
originais.

8.1. Outras Técnicas de Redução de


Dimensionalidade
Existem várias outras técnicas de redução de dimensionalidade que não foram abordadas em
detalhes aqui. Algumas dessas incluem:

25 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

• Autoencoders: Uma técnica de aprendizado de máquina que aprende automaticamente a


transformar dados em um espaço de menor dimensão e depois reconstruir os dados originais
a partir desta representação comprimida.
• t-SNE (t-Distributed Stochastic Neighbor Embedding): Uma técnica principalmente usada
para visualização de dados de alta dimensão, que converte as semelhanças entre os pontos
de dados em probabilidades conjuntas e tenta minimizar a divergência entre as probabilidades
conjuntas no espaço de alta dimensão e no espaço de baixa dimensão.
• UMAP (Uniform Manifold Approximation and Projection): Uma técnica recente que é muito
eficaz para visualização e também pode ser usada para tarefas gerais de redução de
dimensionalidade.

8.2. Tabela Redução de Dimensionalidade


A seguir, apresentamos uma tabela resumo sobre redução de dimensionalidade.
Técnica Descrição Aplicação

Útil quando algumas variáveis


Seleção de Identifica e seleciona as variáveis mais
são irrelevantes ou
Recursos importantes a partir do dataset original.
redundantes.

Transforma o conjunto de variáveis originais em Amplamente utilizada em


Análise de
um novo conjunto chamado componentes todas as áreas. Útil quando
Componentes
principais. Os componentes são calculados para as variáveis são
Principais (PCA)
capturar a maior parte da variabilidade dos dados. correlacionadas.

Análise
Busca encontrar um subespaço que maximize a Útil para problemas de
Discriminante
separação entre várias classes nos dados. classificação.
Linear (LDA)

Aprende automaticamente a transformar dados


Utilizado em aprendizado
em um espaço de menor dimensão e depois
Autoencoders profundo e com dados de alta
reconstruir os dados originais a partir desta
dimensão.
representação comprimida.

Converte as semelhanças entre os pontos de


dados em probabilidades conjuntas e tenta Principalmente usada para
t-SNE minimizar a divergência entre as probabilidades visualização de dados de alta
no espaço de alta dimensão e no espaço de baixa dimensão.
dimensão.

Técnica eficaz para visualização que também Útil para visualização e


UMAP pode ser usada para tarefas gerais de redução de tarefas gerais de redução de
dimensionalidade. dimensionalidade.

9. Redes Neurais Artificiais


Redes Neurais Artificiais (RNAs) são modelos computacionais inspirados pela maneira como
o cérebro humano funciona. São constituídas por unidades de processamento, denominadas
neurônios, que têm a capacidade de armazenar conhecimento adquirido por meio de um processo de
aprendizado.

9.1. Arquitetura

26 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

A arquitetura de uma RNA determina como os neurônios estão organizados em camadas e


como estão conectados entre si. As três camadas mais comuns são:
• Camada de entrada: Recebe os dados de entrada.
• Camada escondida: Processa os dados recebidos da camada de entrada.
• Camada de saída: Fornece o resultado final.

9.2. Funções de Ativação


As funções de ativação determinam a saída de um neurônio com base na soma ponderada
de suas entradas. Algumas funções de ativação comuns são:
• Função Sigmoide: Varia entre 0 e 1.
• Função ReLU (Rectified Linear Unit): Produz a entrada se for positiva, caso contrário, produz
zero.
• Função Tanh (Tangente Hiperbólica): Varia entre -1 e 1.

9.3. Otimização
Os métodos de otimização buscam ajustar os pesos da RNA de modo a minimizar o erro entre
as saídas previstas e as desejadas.
• Método do Gradiente: O método do gradiente atualiza os pesos em direção oposta ao
gradiente da função de custo com relação aos pesos, usando uma taxa de aprendizado fixa.
• Método do Gradiente Estocástico: No método do gradiente estocástico, os pesos são
atualizados a cada exemplo de treinamento, ao contrário do método do gradiente que usa todo
o conjunto de treinamento.
• Backpropagation: O backpropagation é um método utilizado para calcular o gradiente da
função de erro com respeito a cada peso da RNA. Ele propaga o erro da saída para trás, através
da rede, atualizando os pesos.

9.4. Métodos de Regularização


Os métodos de regularização previnem o sobreajuste da RNA, adicionando um termo de
penalização à função de custo.
A seguir, apresentamos detalhes sobre as Normas L1 e L2.
• Norma L1: Adiciona o valor absoluto dos pesos à função de custo.
• Norma L2: Adiciona o quadrado dos pesos à função de custo (também conhecida como
regularização de Ridge).

9.5. CNN (Redes Neurais Convolucionais)


CNNs são uma categoria especial de RNAs projetadas para processar dados com estrutura
semelhante a uma grade, como imagens. Eles são compostos por camadas convolucionais que aplicam
filtros a regiões da entrada, seguidos por camadas de pooling que reduzem a dimensionalidade dos
dados.

10. Deep Learning (Aprendizado Profundo)


O Deep Learning (Aprendizado Profundo) é uma subárea da Inteligência Artificial (IA) que
se concentra no uso de algoritmos chamados Redes Neurais Artificiais para aprender padrões e

27 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

representações de dados. O termo "deep" refere-se à quantidade de camadas ocultas em uma rede
neural, que pode ser grande, permitindo que o modelo aprenda representações mais complexas e
abstratas dos dados.
O Deep Learning tem sido aplicado com sucesso em uma ampla variedade de problemas e
domínios, incluindo:
• Reconhecimento de imagem: Classificação de imagens, detecção de objetos e segmentação
semântica.
• Processamento de linguagem natural: Tradução automática, geração de texto e análise de
sentimentos.
• Reconhecimento de voz: Transcrição de áudio e assistentes virtuais.
• Previsão de séries temporais: Previsão de demanda e análise de tendências.
• Reforço de aprendizado: Controle de robôs e jogos.

10.1. Processo de Aprendizado em Deep Learning


O aprendizado em Deep Learning envolve o ajuste dos pesos das conexões entre os neurônios
para minimizar o erro nas previsões do modelo. O processo de aprendizado geralmente segue estas
etapas:
• Propagação para frente (forward pass): Os dados de entrada são passados através da rede
neural, e uma previsão é gerada na camada de saída.
• Calculando o erro: O erro entre a previsão e o valor real é calculado usando uma função de
perda.
• Propagação para trás (backpropagation): O erro é propagado de volta pela rede, e os pesos
das conexões são ajustados para minimizar o erro.
• Otimização: Um algoritmo de otimização, como o Gradiente Descendente, é usado para
atualizar os pesos de forma eficiente.
Este processo é repetido várias vezes, usando um conjunto de dados de treinamento, até que
o modelo alcance um nível aceitável de precisão.

10.2. Tipos de Redes Neurais Profundas


Existem vários tipos de redes neurais profundas, cada uma com suas próprias características
e aplicações. Algumas das mais comuns incluem:
1. Redes Neurais Convolucionais (CNNs): Especialmente projetadas para processar imagens
e reconhecimento de padrões espaciais. As CNNs usam camadas convolucionais para aplicar
filtros locais aos dados de entrada, detectando características importantes, como bordas e
texturas.
2. Redes Neurais Recorrentes (RNNs): Projetadas para lidar com sequências de dados e
dependências temporais. As RNNs têm conexões recorrentes, permitindo que a informação
seja mantida ao longo do tempo, tornando-as adequadas para tarefas como previsão de séries
temporais e processamento de linguagem natural.
3. Autoencoders: Usados para aprendizado não supervisionado e redução de dimensionalidade.
Os autoencoders aprendem a comprimir e reconstruir os dados de entrada, capturando as
características mais importantes.

10.3. Mapa Mental Deep Learning


A seguir, apresentamos um mapa mental sobre os conceitos de Deep Learning.

28 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Mapa Mental Deep Learning

11. Visão Computacional


A Visão Computacional é um campo interdisciplinar da ciência da computação que busca ensinar
aos computadores como interpretar e compreender o mundo visual. Ela combina técnicas de
processamento de imagem, aprendizado de máquina e inteligência artificial para analisar e extrair
informações úteis a partir de imagens e vídeos digitais.

A visão computacional tem uma ampla gama de aplicações em diversos campos, incluindo:
• Medicina: Análise de imagens médicas para diagnóstico e tratamento.
• Automóveis autônomos: Detecção e rastreamento de objetos, como pedestres e outros
veículos, para navegação segura.
• Robótica: Navegação e manipulação de objetos por robôs.
• Reconhecimento facial: Identificação e verificação de pessoas com base em suas
características faciais.
• Inspeção industrial: Detecção de defeitos e monitoramento de processos de fabricação.
• Análise de vídeo: Rastreamento de objetos e análise de comportamento em vídeos de
vigilância ou esportes.

11.1. Tarefas em Visão Computacional


• Aquisição de imagens: é o processo de capturar uma imagem do mundo real e convertê-la
em uma representação digital. Isso geralmente envolve o uso de câmeras e outros sensores
ópticos para capturar a luz refletida pelos objetos e convertê-la em uma matriz de pixels, onde
cada pixel representa a intensidade da luz em um determinado ponto da imagem.
• Pré-processamento de Imagens: uma etapa crucial na visão computacional, pois ajuda a
melhorar a qualidade das imagens e a remover ruídos e distorções. Algumas técnicas comuns
de pré-processamento incluem:
o Redimensionamento: Alterar o tamanho da imagem para reduzir a complexidade
computacional ou padronizar as dimensões da imagem.
o Equalização de histograma: Ajustar o contraste da imagem para melhorar a
visibilidade de detalhes.

29 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

o Filtragem: Aplicar filtros para suavizar a imagem, remover ruídos ou realçar bordas.
• Detecção de Características: o processo de identificar pontos de interesse ou padrões
distintos em uma imagem. Essas características podem ser usadas para comparar e
reconhecer objetos, bem como para rastrear seu movimento ao longo do tempo. Alguns
exemplos de características incluem:
o Pontos de interesse: Pontos na imagem que são facilmente detectáveis e têm uma
aparência única, como cantos ou pontos de interseção de bordas.
o Descritores de textura: Medidas estatísticas ou estruturais que descrevem a
aparência de uma região da imagem, como a rugosidade ou a orientação das bordas.
• Segmentação de Imagens: o processo de dividir uma imagem em várias regiões
homogêneas, geralmente com base em propriedades como cor, intensidade ou textura. O
objetivo é simplificar a representação da imagem e facilitar a análise posterior. Algumas
técnicas comuns de segmentação incluem:
o Limiarização: Separar os pixels da imagem com base em um valor de intensidade de
limiar.
o Segmentação baseada em região: Agrupar pixels com base em critérios de
similaridade, como cor ou textura.
o Segmentação baseada em borda: Detectar bordas entre regiões e usar essas bordas
para dividir a imagem.
• Reconhecimento de Objetos: a tarefa de identificar e classificar objetos em uma imagem.
Isso geralmente envolve a comparação de características extraídas da imagem com um
conjunto de modelos ou exemplos conhecidos. Algumas abordagens comuns para o
reconhecimento de objetos incluem:
o Correspondência de características: Comparar as características da imagem com
as características de objetos conhecidos e encontrar a melhor correspondência.
o Aprendizado de máquina: Treinar um modelo de classificação, como uma rede
neural, para reconhecer objetos com base em exemplos rotulados.

11.2. Algoritmos Aplicáveis Visão Computacional


É possível treinar modelos de aprendizado de máquina para reconhecer ou classificar objetos
em imagens. Alguns algoritmos populares incluem:
• K-Nearest Neighbors (KNN): Um algoritmo de classificação que classifica um objeto com
base nos k vizinhos mais próximos no espaço de recursos.
• Support Vector Machines (SVM): Um algoritmo de classificação e regressão que encontra o
hiperplano que melhor divide um conjunto de dados em classes.
• Redes Neurais Artificiais (ANN): Modelos computacionais inspirados na estrutura e
funcionamento do cérebro humano, capazes de aprender a partir de dados de entrada e
ajustar-se a novos padrões.
• Redes Neurais Convolucionais (CNN): Uma classe especial de ANN projetada para
reconhecimento de imagem, que utiliza filtros convolucionais para capturar características
hierárquicas na imagem.

11.2.1. Redes Neurais Convolucionais (CNN)


A seguir, apresentamos mais detalhes sobre as Redes Neurais Convolucionais (CNN), que têm
sido exploradas em questões de concurso relacionadas a Visão Computacional.
• Redes Neurais Convolucionais (CNN): Uma Rede Neural Convolucional (CNN) é um tipo de
rede neural artificial profundamente aprendida com uma arquitetura especializada para

30 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

processar dados de entrada em grade, tornando-a adequada para tarefas de processamento


de imagens.
• Arquitetura da CNN: Uma CNN é composta por uma ou mais camadas convolucionais,
seguidas por uma ou mais camadas totalmente conectadas, como em uma rede neural
multicamadas (MLP). A arquitetura é projetada para tirar proveito da estrutura 2D dos dados de
entrada. Ao contrário das camadas totalmente conectadas de MLPs, as camadas
convolucionais têm neurônios dispostos em três dimensões: largura, altura e profundidade.
• Camadas Convolucionais: Na camada convolucional, a CNN aplica várias matrizes de filtros
ou "kernels" aos dados de entrada para produzir um mapa de características. Cada filtro é
pequeno espacialmente (ao longo da largura e altura), mas se estende pela profundidade
completa dos dados de entrada. Durante o processo de treinamento, a rede aprende os filtros
que ativam quando veem algum tipo de característica visual, como uma borda de uma cor
específica ou um borrão.
• Camadas de Pooling: Após cada camada convolucional na CNN, geralmente segue uma
camada de pooling (ou subamostragem). A camada de pooling reduz a dimensionalidade dos
mapas de características, mas retém as informações mais importantes. O pooling ajuda a tornar
as características detectadas um pouco mais robustas para mudanças na imagem.
• Camadas Totalmente Conectadas: No final de uma CNN, há uma ou mais camadas
totalmente conectadas. Seu trabalho é receber os resultados da convolução e subamostragem
e usá-los para classificar a imagem em uma categoria. Geralmente, essas camadas funcionam
da mesma maneira que um perceptron multicamadas.

12. Processamento de Linguagem Natural


(PLN)
O Processamento de Linguagem Natural (PLN) é uma subárea da Inteligência Artificial (IA)
que se concentra na interação entre computadores e seres humanos por meio da linguagem natural. O
objetivo principal do PLN é permitir que os computadores entendam, interpretem e gerem a linguagem
humana de maneira eficiente e significativa. Essa área de pesquisa combina conhecimentos de ciência
da computação, linguística e engenharia de software.

12.1. Principais tópicos em PLN


Existem várias tarefas e técnicas envolvidas no Processamento de Linguagem Natural.
Algumas das mais importantes incluem:
• Análise morfológica: Identifica e analisa a estrutura das palavras, incluindo suas raízes,
prefixos e sufixos.
• Análise sintática: Examina a estrutura gramatical das frases e determina a relação entre as
palavras.
• Análise semântica: Estuda o significado das palavras e frases em um contexto específico.
• Análise pragmática: Considera o contexto e a intenção do falante para interpretar a
mensagem corretamente.
• Análise léxica: É a conversão de uma sequência de caracteres em uma sequência de tokens.
Um programa que executa a análise léxica pode ser denominado analisador léxico, analisador
de léxico, scanner ou tokenizador. Isso geralmente é a primeira fase do processamento de
linguagem natural e é usado para dividir o texto de entrada em pequenas partes para facilitar
o processamento futuro.
• Reconhecimento de entidades nomeadas: Identifica e classifica entidades, como nomes de
pessoas, locais e organizações, em um texto.
• Extração de informação: Extrai informações relevantes e estruturadas de um texto não
estruturado.

31 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

• Tradução automática: Traduz texto ou fala de um idioma para outro usando algoritmos de
aprendizado de máquina.
• Resumo automático: Gera um resumo conciso de um texto maior, mantendo as informações
mais importantes.
• Classificação de texto: Categoriza textos com base em seu conteúdo, como análise de
sentimentos ou detecção de spam.
• Reconhecimento de fala: Converte a fala humana em texto para que possa ser processado
por algoritmos de PLN.
• Síntese de fala: Transforma texto em fala para que possa ser reproduzido por um dispositivo
de áudio.

12.2. Abordagens e técnicas em PLN


Existem várias abordagens e técnicas usadas no Processamento de Linguagem Natural,
incluindo:
• Regras baseadas: Envolve a criação manual de regras e padrões específicos para analisar e
processar a linguagem natural. Essa abordagem pode ser trabalhosa e difícil de escalar, mas
pode ser eficaz em tarefas específicas e bem definidas.
• Aprendizado de máquina: Utiliza algoritmos de aprendizado de máquina para aprender
padrões e regras a partir de grandes conjuntos de dados de treinamento. Essa abordagem
pode ser mais eficiente e escalável do que as regras baseadas, mas pode exigir uma grande
quantidade de dados de treinamento e recursos computacionais.
• Aprendizado profundo (deep learning): Emprega redes neurais artificiais, especialmente
redes neurais profundas, para aprender representações e padrões complexos na linguagem
natural. Essa abordagem tem demonstrado sucesso em várias tarefas de PLN, como tradução
automática e reconhecimento de fala.

12.3. Técnicas em PLN


O Processamento de Linguagem Natural (PLN) é um subcampo da inteligência artificial que
se concentra na interação entre computadores e humanos usando a linguagem natural. O objetivo final
do PLN é ler, decifrar, entender e fazer sentido da linguagem humana de maneira valiosa.

12.3.1. Pré-processamento de texto


O primeiro passo no PLN é o pré-processamento de texto, que inclui várias etapas destinadas
a limpar e preparar o texto para análise posterior. Isso inclui técnicas como:
• Tokenização: Divide o texto em sentenças ou palavras.
• Remoção de stop words: Remove palavras comuns que geralmente não contribuem para o
significado do texto.
• Stemming e Lemmatização: Reduz as palavras à sua raiz ou forma básica.
• Word2Vec: É um grupo de modelos que são usados para produzir incorporações de palavras.
Esses modelos são redes neurais de duas camadas que são treinadas para reconstruir
contextos linguísticos de palavras, ou seja, eles aprendem vetores de palavras a partir de texto
não supervisionado, de modo que palavras com contextos semelhantes têm vetores
semelhantes.
• Latent Dirichlet Allocation (LDA): É um modelo de tópicos generativo que permite que
conjuntos de observações sejam explicados por grupos não observados que explicam por que
algumas partes dos dados são semelhantes. Em termos de processamento de linguagem
natural (PLN), isso pode ser interpretado como cada documento sendo uma mistura de um

32 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

pequeno número de tópicos e a presença de cada palavra em um documento sendo atribuída


a um dos tópicos do documento.

12.3.2. Representação de Texto


Uma vez que o texto foi pré-processado, ele precisa ser convertido em um formato que possa
ser entendido pelos algoritmos de aprendizado de máquina. Isso é feito através de técnicas
de representação de texto, como:
• Bag of Words (BoW): Representa o texto como um conjunto de suas palavras,
desconsiderando a gramática e a ordem das palavras, mas mantendo a multiplicidade.
• TF-IDF: Similar ao BoW, mas leva em consideração a frequência das palavras no documento
e em toda a coleção de documentos.
• Word Embeddings: Representa palavras em um espaço vetorial de alta dimensão onde a
semântica das palavras é capturada através da proximidade vetorial.

12.3.2.1. Exemplo de cálculo do TF-IDF


O TF-IDF (Term Frequency-Inverse Document Frequency) é uma técnica utilizada em PLN
para quantificar a importância de uma palavra em um documento em relação a um corpus. A frequência
do termo (TF) é a frequência de uma palavra em um documento e a frequência do documento inverso
(IDF) diminui a ponderação para palavras comuns e aumenta a ponderação para palavras raras. Por
exemplo, se tivermos uma palavra 'A' que aparece 3 vezes em um documento de 100 palavras e a
palavra 'A' aparece em 1000 de 10000 documentos no corpus, o TF-IDF pode ser calculado como TF
* IDF = (3/100) * log(10000/1000) = 0.03 * 1 = 0.03.

12.3.3. Técnicas de Aprendizado de Máquina


Várias técnicas de aprendizado de máquina são comumente usadas em PLN, incluindo:
• Modelos de Classificação: Como a Regressão Logística, Máquinas de Vetores de Suporte
(SVM) e redes neurais, são usadas para classificar textos em diferentes categorias.
• Modelos de sequência: Como as Redes Neurais Recorrentes (RNN) e o Transformer, são
usados para tarefas que envolvem sequências de texto, como tradução automática e geração
de texto.

12.4. Aplicações do PLN


O PLN tem uma variedade de aplicações, incluindo:
• Análise de Sentimento: Determina a atitude ou emoção do autor do texto.
• Reconhecimento de Entidades Nomeadas (NER): Identifica e classifica entidades nomeadas
em texto.
• Tradução Automática: Traduz texto de um idioma para outro.
• Geração de Texto Automático: Cria texto coerente e significativo.
• Resposta Automática: Responde automaticamente às perguntas dos usuários (por exemplo,
chatbots).

12.5. Desafios no PLN


Apesar de seus avanços, o PLN enfrenta vários desafios, incluindo:
• Ambiguidade: A linguagem natural é repleta de ambiguidades, o que pode dificultar para um
computador entender o significado exato de uma sentença.

33 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

• Compreensão do Contexto: A compreensão e a interpretação do texto muitas vezes


dependem do contexto, que pode ser difícil para um computador apreender.
• Falta de Dados Anotados: Muitas técnicas de PLN dependem de grandes volumes de dados
anotados, que podem ser difíceis e caros de obter.

12.6. Mapa Mental Processamento de Linguagem


Natural (PLN)
A seguir, apresentamos um mapa mental sobre os conceitos de Processamento de Linguagem
Natural (PLN).

Mapa Mental Processamento de Linguagem Natural (PLN)

13. Transfer Learning


O Transfer Learning é uma técnica de aprendizado de máquina que utiliza um modelo pré-
treinado em um problema para ser aplicado em um novo problema semelhante. Isso permite que o
modelo aproveite o conhecimento adquirido anteriormente para resolver o novo problema de maneira
mais eficiente. Algumas características são:
• Economia de tempo e recursos: Treinar um modelo de aprendizado de máquina do zero pode
ser um processo demorado e que consome muitos recursos. O Transfer Learning permite que
você aproveite um modelo que já foi treinado, economizando tempo e recursos computacionais.
• Menos dados necessários: Muitas vezes, o Transfer Learning pode ser usado quando você
tem um conjunto de dados pequeno para o novo problema. Como o modelo já foi treinado em
um conjunto de dados maior, ele pode ser capaz de generalizar bem para o novo problema,
mesmo com menos dados.
• Melhor desempenho: Em muitos casos, o Transfer Learning pode resultar em um
desempenho melhor do que treinar um modelo do zero, especialmente se o novo problema é
semelhante ao problema original que o modelo foi treinado.
O Transfer Learning geralmente envolve as seguintes etapas:
• Seleção do modelo pré-treinado: O primeiro passo é escolher um modelo que foi pré-treinado
em um problema semelhante ao seu. Por exemplo, se você está trabalhando em um problema
de classificação de imagens, você pode escolher um modelo que foi treinado em um grande
conjunto de dados de imagens, como o ImageNet.
• Adaptação do modelo: Em seguida, você precisa adaptar o modelo para o seu problema
específico. Isso geralmente envolve substituir a última camada do modelo (a camada de saída)

34 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

por uma nova camada que é adequada para o seu problema. Por exemplo, se você está
trabalhando em um problema de classificação binária, você pode substituir a última camada
por uma camada de saída com uma única unidade e uma função de ativação sigmóide.
• Treinamento do modelo: Finalmente, você precisa treinar o modelo no seu conjunto de dados.
No entanto, em vez de treinar todo o modelo, você geralmente só treina a última camada (ou
as últimas camadas) do modelo. Isso é porque as camadas anteriores do modelo já foram
treinadas para extrair características úteis dos dados, e você só precisa treinar a última camada
para mapear essas características para as suas classes de saída.

14. Python
Python é uma linguagem de programação de alto nível, interpretada, de script, imperativa,
orientada a objetos, funcional, de tipagem dinâmica e forte. Possui um modelo de desenvolvimento
comunitário, aberto e gerenciado pela organização sem fins lucrativos Python Software Foundation.
A linguagem é conhecida por sua sintaxe clara e legível, que torna a linguagem fácil de
aprender e usar. Suporta múltiplos paradigmas de programação, incluindo programação procedural,
orientada a objetos e funcional. Python também possui uma biblioteca padrão grande e
abrangente.
Python pode ser facilmente instalado em diferentes sistemas operacionais. A instalação padrão
inclui o interpretador Python e a biblioteca padrão. Para programadores que desejam um ambiente
de desenvolvimento mais robusto, existem várias IDEs (Integrated Development Environments)
disponíveis para Python, como PyCharm, Jupyter Notebook e VSCode.
A seguir, apresentamos uma tabela resumo com uma visão geral sobre a linguagem Python.
Aspecto Descrição

Python é uma linguagem de programação de alto nível, interpretada, de script,


Definição
imperativa, orientada a objetos, funcional, de tipagem dinâmica e forte.

É usada em muitos tipos de software, incluindo web, automação, ciência de dados,


Uso
aprendizado de máquina e inteligência artificial.

A sintaxe em Python é simples e enfatiza a legibilidade, o que reduz o custo do


Sintaxe
programa de manutenção.

Python é uma linguagem portátil. Um programa Python pode ser executado em


Portabilidade
qualquer computador que tenha o interpretador Python instalado.

Python possui uma grande biblioteca padrão que inclui áreas como protocolos de
Bibliotecas internet, processamento de strings, interfaces de sistema operacional e interfaces de
usuário.

Python tem uma grande comunidade de desenvolvedores, o que significa que você
Comunidade
pode encontrar uma grande quantidade de recursos e ajuda online.

14.1. Sintaxe Básica


Python usa indentação para delimitar blocos de código.
Os comentários são feitos usando o símbolo '#'. Tudo após este símbolo em uma linha é
considerado um comentário e é ignorado pelo interpretador. Por exemplo, no código x = 5 # Isso
é um comentário, a parte após o '#' não tem efeito na execução do programa.

35 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

14.1.1. Utilização Básica: Identação em Laços de


Repetição
Exemplo: Loop For

for i in range(5):
print(i) # Isso está identado

14.1.2. Identação em Condicionais


Exemplo: If, Elif, Else

numero = 10
if numero > 5:
print("Maior que 5") # Identado sob o if
elif numero == 5:
print("Igual a 5") # Identado sob o elif
else:
print("Menor que 5") # Identado sob o else

14.1.3. Identação em Funções


Exemplo: Definição de Função

def minha_funcao():
print("Olá, mundo!") # Identado sob a definição da função

minha_funcao()

14.1.4. Identação em Laços Aninhados


Exemplo: Loop For Aninhado

for i in range(3):
for j in range(3): # Identado sob o primeiro loop for
print(i, j) # Identado sob o segundo loop for

14.1.5. Erros Comuns de Identação


Não identar corretamente pode levar a erros. Por exemplo:

for i in range(3):
print(i) # Erro! Deveria estar identado

Isso resultará em um IndentationError.

14.2. Tipos de Dados


Python suporta vários tipos de dados, incluindo inteiros, floats, strings e booleanos. Além
disso, Python tem vários tipos de dados compostos, como listas, tuplas e dicionários.
Tipo de
Descrição Exemplo de Utilização Exemplos de Caso de Uso
Dado

int Números inteiros x = 42 Contagem, loops

36 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

float Números de ponto flutuante y = 3.14 Calculos científicos, finanças

Sequência de caracteres Texto, processamento de


str nome = "Python"
(string) linguagem natural

Armazenamento de coleções
list Lista ordenada e mutável lista = [1, 2, 3]
ordenadas

Dados imutáveis, retorno de


tuple Tupla ordenada e imutável tupla = (1, 2, 3)
múltiplos valores

Dicionário com pares chave- dicionario = Armazenamento de pares


dict
valor {"chave": "valor"} chave-valor, como JSON

Conjunto não ordenado e sem Remoção de duplicatas,


set conjunto = {1, 2, 3}
elementos duplicados operações de conjunto

Valores booleanos (True ou Controle de fluxo, lógica


bool verdadeiro = True
False) condicional

14.3. Operações Aritméticas


A tabela a seguir apresenta exemplos de como realizar operações aritméticas na linguagem
Python.
Operação Exemplo de Código

Soma x = 5 + 3 # Resultado: 8

Subtração x = 5 - 3 # Resultado: 2

Divisão x = 4 / 2 # Resultado: 2

Multiplicação x = 5 * 3 # Resultado: 15

Módulo (Mod) x = 5 % 3 # Resultado: 2

Potência x = 5 ** 3 # Resultado: 125

14.4. Operações em Strings


A seguir, apresentamos uma tabela com algumas operações em strings.
Operação Exemplo de Código

Concatenação texto = "Olá, " + "mundo!" # "Olá, mundo!"

Repetição texto = "A" * 5 # "AAAAA"

Extração de Caracteres caractere = "Python"[2] # "t"

Tamanho tamanho = len("Python") # 6

37 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Conversão em
Maiúsculas maiuscula = "Python".upper() # "PYTHON"

Conversão em
Minúsculas minuscula = "Python".lower() # "python"

Divisão de Strings dividido = "Olá, mundo".split(", ") # ["Olá", "mundo"]

Substituição de substituido = "Olá, mundo".replace("mundo", "Python") # "Olá,


Substring Python"

14.5. Controle de Fluxo


O controle de fluxo em Python refere-se à ordem na qual o programa executa as instruções, e
é uma parte fundamental na construção de programas eficientes e legíveis. Os elementos básicos de
controle de fluxo incluem estruturas condicionais, como if, elif e else, que permitem executar
diferentes blocos de código dependendo das condições. Os loops for e while permitem a repetição
de blocos de código, enquanto as instruções break e continue oferecem controle adicional sobre
esses loops. Compreensões de lista são uma forma eficiente de criar listas através de loops,
e pass e assert são outras ferramentas úteis para controle de fluxo. Esses elementos trabalham
juntos para oferecer controle preciso sobre a execução do código, permitindo a criação de algoritmos
complexos e lógica de programação avançada.

14.5.1. Condicionais: If, Elif, Else


Usados para testar condições e executar blocos de código correspondentes.

idade = 18
if idade >= 18:
print("Adulto")
else:
print("Menor de idade")

14.5.2. Loop For


Um loop que itera sobre uma sequência.

for i in range(5):
print(i)

14.5.2.1. Função Range


A função range() em Python é utilizada para gerar uma sequência de números, comumente
utilizada em loops for. Ela pode ser usada de várias maneiras:
Usando um único argumento:
A sequência começa em 0 e termina em n-1.

for i in range(5):
print(i)
# Saída:
# 0
# 1
# 2
# 3
# 4

38 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

Usando dois argumentos:


Especifica os valores inicial e final da sequência, parando antes do valor final.

for i in range(2, 5):


print(i)
# Saída:
# 2
# 3
# 4

Usando três argumentos:


Inclui valor inicial, valor final e o incremento (ou decremento) entre os valores.

for i in range(0, 10, 2):


print(i)
# Saída:
# 0
# 2
# 4
# 6
# 8
for i in range(10, 0, -2):
print(i)
# Saída:
# 10
# 8
# 6
# 4
# 2

14.5.3. Loop While


Um loop que continua enquanto uma condição for verdadeira.

contador = 0
while contador < 5:
print(contador)
contador += 1

14.5.4. Break e Continue


Break encerra o loop, e Continue pula para a próxima iteração.

for i in range(5):
if i == 3:
break
print(i)

for i in range(5):
if i == 3:
continue
print(i)

14.5.5. Compreensões de Lista


Uma maneira concisa de criar listas.

quadrados = [x**2 for x in range(5)]


print(quadrados)

39 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

14.5.6. Declarações Pass e Assert


Pass é uma operação nula; Assert permite testar condições.

if True:
pass # Passar a execução para o próximo passo sem executar nada

assert 5 > 2, "Isso é sempre verdadeiro"

14.6. Classes e Objetos


Python é uma linguagem orientada a objetos e como tal, permite a definição de classes e a
criação de objetos a partir dessas classes.
Python usa exceções para lidar com erros. Uma exceção é um evento que ocorre durante a
execução de um programa que interrompe o fluxo normal do programa.
Em Python, uma classe é uma estrutura de dados que pode conter propriedades (atributos) e
comportamentos (métodos). Uma classe é uma espécie de modelo ou plano que define o que um objeto
deve ter como atributos e comportamentos. Segue um exemplo de uma classe em Python:

class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade

14.7. Modificadores em Python


Os modificadores são usados para alterar o acesso de classes, métodos e variáveis. Em
Python, temos três tipos de modificadores de acesso - público, privado e protegido. No entanto, Python
não tem suporte nativo para esses modificadores, mas os implementa usando convenções de
nomenclatura.

class Pessoa:
def __init__(self, nome, idade):
self._nome = nome # Protegido
self.__idade = idade # Privado

14.8. Métodos
Os métodos são funções que são definidas dentro de uma classe. Eles são usados para definir
os comportamentos dos objetos. Os métodos são acessados usando a notação de ponto.
Em Python, uma função é um bloco de código reutilizável que realiza uma ação específica.
Python tem muitas funções integradas, como print() e len(), e também permite que os programadores
definam suas próprias funções.

class Pessoa:
def __init__(self, nome, idade):
self.nome = nome
self.idade = idade

def apresentar(self):

40 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

print(f"Olá, meu nome é {self.nome} e eu tenho {self.idade} anos.")

14.9. Herança
A herança é um recurso de programação orientada a objetos que permite que uma classe
herde atributos e métodos de outra classe. A classe que está sendo herdada é chamada de classe
base ou classe pai, e a classe que herda é chamada de classe derivada ou classe filha.

class Estudante(Pessoa):
def __init__(self, nome, idade, curso):
super().__init__(nome, idade)
self.curso = curso

14.10. Polimorfismo
O polimorfismo é um recurso de programação orientada a objetos que permite que um objeto
seja tratado de várias formas. Em Python, o polimorfismo permite que usemos uma única interface com
diferentes tipos de objetos.

class Animal:
def falar(self):
pass

class Cachorro(Animal):
def falar(self):
return "Au Au"

class Gato(Animal):
def falar(self):
return "Miau"

Neste exemplo, tanto Cachorro quanto Gato têm um método chamado falar, mas eles retornam
resultados diferentes. Isso é polimorfismo.

14.11. Manipulação de Estruturas de Dados


14.11.1. Array
Um array é uma estrutura de dados que armazena valores do mesmo tipo. Para manipular
arrays, você pode usar o módulo array ou a biblioteca NumPy, que oferece mais funcionalidades.
Para criar um array, você pode usar a função array() do módulo array ou da biblioteca NumPy.
Por exemplo:

import array as arr


a = arr.array('d', [1.1, 3.5, 4.5])

Para acessar elementos de um array, você pode usar o índice do elemento. Por
exemplo, a[1] retornará o segundo elemento do array a.
Para modificar um elemento de um array, você pode usar o índice do elemento. Por
exemplo, a[1] = 5.5 modificará o segundo elemento do array a para 5.5.

41 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

14.11.2. Lista
A Lista, por sua vez, é uma estrutura de dados que pode armazenar valores de diferentes tipos.
Para ordenar uma lista, você pode usar o método sort().
Por exemplo, se você tem a lista a = [3, 1, 4, 1, 5, 9], você pode ordená-la com a.sort(). Depois
disso, a será [1, 1, 3, 4, 5, 9].
O método sort() ordena a lista em ordem crescente por padrão. Se você quiser ordenar a lista
em ordem decrescente, você pode usar a.sort(reverse=True).

14.11.3. Dicionário
O dicionário, outra estrutura de dados, armazena pares de chave-valor.
Para criar um dicionário, você pode usar chaves {} ou a função dict(). Por exemplo, d =
{'nome': 'João', 'idade': 30} ou d = dict(nome='João', idade=30).
Para acessar um valor em um dicionário, você pode usar a chave correspondente. Por
exemplo, d['nome'] retornará 'João'.
Para modificar um valor em um dicionário, você pode usar a chave correspondente. Por
exemplo, d['idade'] = 31 modificará a idade de João para 31.

14.12. Exemplo Prático: Contagem de Palavras em uma


Frase
Para contar as palavras em uma frase em Python, você pode usar o método split() que é
incorporado em objetos de string. O método split() divide uma string em uma lista onde cada palavra é
um item da lista. Depois de dividir a string, você pode usar a função len() para contar o número de itens
na lista, que é igual ao número de palavras na string original. Segue um exemplo:

frase = "Esta é uma frase de exemplo"


palavras = frase.split()
num_palavras = len(palavras)
print("O número de palavras na frase é", num_palavras)

14.13. Exemplo Prático: Método Iterativo do Fibonacci


A sequência de Fibonacci é uma série de números em que cada número é a soma dos dois
anteriores. A sequência começa com 0 e 1. A implementação iterativa do Fibonacci em Python é
bastante direta. Você começa definindo os dois primeiros números da sequência. Em seguida, você
entra em um loop onde calcula o próximo número como a soma dos dois anteriores e atualiza os dois
números anteriores para os próximos dois números na sequência. Aqui está um exemplo:

def fibonacci(n):
a, b = 0, 1
for i in range(n):
a, b = b, a + b
return a

print(fibonacci(10)) # Imprime o décimo número da sequência de Fibonacci

Este código define uma função chamada fibonacci que aceita um número n e retorna o n-ésimo
número na sequência de Fibonacci. A função usa um loop for para iterar n vezes. Em cada iteração,

42 de 43
Super Resumo Câmara dos Deputados Prof. Alexandre Martins e Prof. Achiles Júnior

ela calcula o próximo número na sequência (a + b) e atualiza a e b para serem os próximos dois
números na sequência.

43 de 43

Você também pode gostar