Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.
left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

left-side-bubbles-backgroundright-side-bubbles-background

Crie sua conta grátis para liberar esse material. 🤩

Já tem uma conta?

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

85
CIÊNCIA DE DADOS
Unidade II
5 PREPARAÇÃO E PRÉ‑PROCESSAMENTO DE DADOS
A preparação e o pré-processamento de dados são etapas cruciais no processo de ciência de dados 
e mineração de dados. Essas etapas visam transformar e organizar os dados brutos em um formato 
adequado para análise e modelagem.
Constam a seguir algumas das principais tarefas envolvidas na preparação e pré-processamento 
de dados:
Limpeza de dados
Envolve a identificação e o tratamento de dados ausentes, inconsistentes ou incorretos. Os dados 
ausentes podem ser preenchidos por meio de técnicas como imputação, em que os valores faltantes são 
estimados com base em outros dados. Já os dados inconsistentes ou incorretos podem ser corrigidos ou 
removidos, dependendo do contexto.
Por exemplo: vamos imaginar que você tenha um conjunto de dados com os seguintes campos para 
cada cliente.
Nome Idade E-mail Número de telefone Endereço
Durante a limpeza de dados, é possível encontrar várias questões que precisam ser abordadas:
• Valores ausentes: alguns campos podem estar vazios. Por exemplo, certos clientes podem não 
ter fornecido o número de telefone ou o endereço.
• Outliers: valores que são muito diferentes da maioria dos outros. Por exemplo, uma idade de 
150 anos pode ser um outlier e precisa ser examinada.
• Formato incorreto: e-mails e números de telefone podem ter formatos incorretos ou inválidos.
• Duplicatas: pode haver registros duplicados no conjunto de dados.
• Erros de digitação: nomes mal escritos, endereços incorretos e outras formas de erros de digitação 
podem ocorrer.
86
Unidade II
Normalização e padronização
Os dados podem estar em diferentes escalas e unidades de medida, o que talvez afete a 
análise.  A  normalização e a padronização são técnicas para transformar os dados em uma escala 
comum. A primeira ajusta os dados para um intervalo específico, como entre 0 e 1, enquanto a segunda 
transforma os dados para ter média zero e desvio padrão um.
Codificação de variáveis categóricas
Variáveis categóricas, como cores, categorias ou estados civis, precisam ser codificadas de forma 
numérica para que os algoritmos de aprendizado de máquina possam processá-las adequadamente. Isso 
pode ser feito por meio da técnica de codificação one-hot, em que cada categoria se torna uma nova 
coluna binária.
Redução de dimensionalidade
Em conjuntos de dados com muitas características ou variáveis, a redução de dimensionalidade pode 
ser aplicada para diminuir a complexidade do modelo e melhorar a eficiência computacional. Técnicas 
como análise de componentes principais (PCA) ou seleção de características podem ser utilizadas para 
identificar os aspectos mais relevantes ou combinar propriedades correlacionadas.
Tratamento de outliers
Como vimos, outliers são valores atípicos que se desviam significativamente do padrão geral dos 
dados. Eles podem afetar negativamente a análise e os modelos. Os outliers podem ser detectados e 
tratados, seja removendo-os, substituindo-os por valores próximos ou atribuindo um valor especial a 
eles, dependendo da situação.
Divisão de dados
É comum dividir o conjunto de dados em conjuntos de treinamento, validação e teste. O conjunto 
de treinamento é usado para treinar o modelo, o conjunto de validação é utilizado para ajustar os 
hiperparâmetros do modelo e o conjunto de teste é empregado para avaliar o desempenho final do 
modelo. Essa divisão é importante a fim de evitar o sobreajuste do modelo aos dados de treinamento.
Essas são apenas algumas das tarefas comuns na preparação e pré-processamento de dados. 
O objetivo é obter um conjunto de dados limpo, consistente e bem-estruturado, pronto para ser utilizado 
em análises estatísticas, algoritmos de aprendizado de máquina e outras técnicas de mineração de dados. 
Uma boa preparação e pré-processamento de dados consegue impactar diretamente a qualidade e a 
eficácia dos resultados obtidos.
Em alguns casos, os conjuntos de dados podem ser muito grandes e, portanto, trabalhar com o 
conjunto completo torna-se inviável ou demorado. Nessas hipóteses, é comum realizar amostragem dos 
dados, selecionando uma parte representativa do conjunto completo. Existem diferentes técnicas de 
87
CIÊNCIA DE DADOS
amostragem, como amostragem aleatória simples, estratificada ou por conglomerados, dependendo da 
natureza dos dados e do objetivo da análise.
Em problemas de classificação, é possível que as classes não estejam balanceadas, ou seja, exista 
uma grande diferença no número de amostras entre as classes. Isso pode levar a um viés no modelo de 
aprendizado de máquina. Nesses casos, devemos aplicar técnicas de balanceamento de classes, como 
oversampling (aumento da quantidade de amostras da classe minoritária) ou undersampling (redução 
da quantidade de amostras da classe majoritária), para criar um conjunto de dados equilibrado.
Além do balanceamento de classes, é importante lidar com dados desbalanceados em outras variáveis, 
como atributos categóricos. Por exemplo, se um atributo categórico tem uma categoria dominante 
que ocorre com frequência muito maior do que as outras, isso pode introduzir um viés no modelo. 
Consequentemente, é possível agrupar as categorias menos frequentes em uma única ou aplicar técnicas 
de amostragem estratificada para garantir uma representação adequada de todas as categorias.
Em problemas com dados temporais, como séries temporais, precisamos considerar a dependência 
temporal dos dados. É comum aplicar técnicas como suavização, diferenciação ou decomposição para 
identificar tendências, padrões sazonais ou componentes de erro nos dados. Além disso, é importante 
garantir que a ordem temporal seja preservada ao dividir o conjunto de dados em treinamento, 
validação e teste.
Dados duplicados podem afetar negativamente a análise e os modelos. Portanto, devemos identificar 
e lidar com essas duplicações. Isso pode ser feito por meio da remoção de linhas duplicadas ou por 
técnicas mais avançadas, como detecção de duplicatas baseada em algoritmos de hashing.
Quando os dados estão desbalanceados em termos de distribuição, como, por exemplo, em dados 
que seguem uma distribuição exponencial ou log-normal, é possível aplicar técnicas de normalização 
para torná-los mais adequados a modelos de aprendizado de máquina. Isso pode incluir transformações 
logarítmicas ou exponenciais a fim de ajustar a distribuição dos dados.
A preparação e o pré-processamento de dados são etapas cruciais para garantir a qualidade e a 
utilidade dos dados em análises posteriores. Essas etapas ajudam a tornar os dados mais adequados 
para a aplicação de algoritmos de aprendizado de máquina, melhorando a eficácia e a confiabilidade 
dos modelos resultantes. Ao realizá-las, é importante também manter um registro claro e documentado 
de todas as transformações aplicadas. Isso ajuda a rastrear e reproduzir as etapas de pré-processamento, 
garantindo a consistência dos resultados.
Além disso, é fundamental considerar a aplicação de técnicas de pré-processamento específicas para 
lidar com problemas e características dos dados em questão. Por exemplo, dados textuais podem exigir 
etapas de pré-processamento adicionais, como remoção de stopwords, stemming ou lematização, para 
extrair informações relevantes.
88
Unidade II
 Observação
Remoção de stopwords: as “stopwords” são palavras muito comuns 
em um idioma e em geral não contribuem significativamente para o 
significado de uma frase. Elas incluem artigos, preposições, pronomes e 
outras palavras de ligação. A remoção de stopwords envolve eliminar essas 
palavras de um texto para reduzir a dimensionalidade e focar nos termos 
mais importantes para análise.
Exemplo:
Frase original: “o cachorro pulou sobre a cerca.”
Frase após a remoção de stopwords: “cachorro pulou cerca.”
Stemming: o stemming é um processo de redução de palavras ao 
seu “stem” (raiz), removendo os sufixos e prefixos para encontrar a forma 
básica da palavra. Isso pode ajudar a tratar diferentesformas de uma 
mesma palavra como iguais, reduzindo a sua variabilidade e simplificando 
o processamento.
Exemplo:
Palavra original: “correndo”
Stem: “corr”
Lematização: a lematização também envolve a redução das palavras 
às suas formas básicas, mas de uma maneira mais precisa do que o 
stemming. Ela considera a morfologia da palavra e a transforma em seu 
“lemma” (forma base), que é um dicionário ou forma padrão do termo. 
Isso é mais preciso do que o stemming, mas também pode ser mais 
complexo computacionalmente.
Exemplo:
Palavra original: “correndo”
Lemma: “correr”
Vale ressaltar que a preparação e o pré-processamento de dados não são etapas únicas e imutáveis. 
Dependendo dos resultados obtidos na análise ou nos modelos de aprendizado de máquina, pode ser 
necessário iterar e ajustar as etapas de pré-processamento para melhorar a qualidade dos dados ou 
refinar os resultados.
89
CIÊNCIA DE DADOS
A preparação e o pré-processamento de dados são etapas essenciais na jornada de análise de dados e 
modelagem de aprendizado de máquina. Elas envolvem desde a limpeza e a transformação dos dados 
até a seleção e o ajuste das variáveis relevantes para a análise. Um pré-processamento adequado pode 
contribuir significativamente para a qualidade dos resultados e garantir que os modelos de aprendizado 
de máquina sejam treinados em dados confiáveis e representativos.
5.1 Principais fontes de dados
Existem várias fontes de dados disponíveis para os profissionais de ciência de dados e análise de 
dados. Constam a seguir algumas das principais delas utilizadas:
• Bases de dados internas: muitas organizações possuem bases de dados internas que contêm 
informações sobre seus processos, operações, clientes, transações, entre outros. Elas são fonte 
valiosa de dados estruturados que podem ser explorados para obter insights e impulsionar a 
tomada de decisões.
• Bases de dados públicas: há uma grande variedade de bases de dados públicas disponíveis, 
fornecidas por instituições governamentais, organizações de pesquisa, instituições acadêmicas e 
outras fontes. Elas podem conter informações demográficas, econômicas, ambientais, científicas 
e muito mais, sendo úteis para diversas análises e estudos.
• Redes sociais e plataformas online: as redes sociais e outras plataformas online são fontes 
ricas de dados não estruturados, como postagens, comentários, fotos e vídeos. Esses dados podem 
ser coletados e analisados para entender o comportamento do usuário, opiniões, tendências de 
mercado e até mesmo a fim de identificar padrões e insights relevantes.
• Sensores e dispositivos conectados: com o avanço da Internet das Coisas (IoT), cada vez mais 
dispositivos estão conectados à internet, gerando uma quantidade massiva de dados em tempo 
real. Sensores em veículos, aparelhos domésticos, wearables e outros dispositivos coletam dados 
sobre localização, temperatura, atividades, saúde e muito mais. Eles podem ser utilizados para 
análises em tempo real, previsões e otimização de processos.
• Dados de pesquisas e estudos: dados provenientes de pesquisas e estudos acadêmicos também 
podem ser uma fonte valiosa de informações. Eles abrangem áreas como saúde, ciências sociais, 
economia, psicologia, entre outras. Muitas vezes, esses dados estão disponíveis publicamente ou 
podem ser adquiridos por meio de colaborações ou acordos com instituições de pesquisa.
• Dados externos de terceiros: existem várias empresas que coletam e fornecem dados para fins 
comerciais. Esses dados podem incluir informações de mercado, dados demográficos, dados de 
vendas, dados de comportamento do consumidor, entre outros. O acesso a eles pode ser pago ou 
gratuito, dependendo da fonte e das informações desejadas.
• Web scraping: o web scraping envolve a extração de dados de sites e páginas da web por 
meio de técnicas automatizadas. Trata-se de uma forma de obter dados não estruturados ou 
90
Unidade II
semiestruturados de fontes diversas, como notícias, blogs, fóruns, e-commerce, entre outros. 
No entanto, é importante seguir as diretrizes éticas e legais ao realizá-lo.
Essas são apenas algumas das principais fontes de dados utilizadas na ciência de dados e análise de 
dados. É importante lembrar que a escolha das fontes de dados depende do contexto, do objetivo da 
análise e dos dados necessários para responder às perguntas ou resolver os problemas específicos em 
mãos. Além disso, é fundamental garantir a qualidade e a confiabilidade dos dados obtidos, realizando 
verificações e validações a fim de garantir sua integridade. Isso inclui a verificação da procedência 
dos dados, a detecção e correção de erros ou inconsistências e a aplicação de técnicas de limpeza e 
normalização, conforme necessário.
Ademais, ao utilizar fontes de dados externas ou dados coletados de terceiros, devemos considerar 
questões de privacidade e conformidade legal. Certifique-se de ter permissão para acessar e utilizar 
esses dados de acordo com as leis e regulamentações aplicáveis, como a Lei Geral de Proteção de Dados 
Pessoais (LGPD) no Brasil.
Ao trabalhar com diferentes fontes de dados, pode ser necessário realizar processos de integração e 
fusão de dados para combinar informações provenientes de várias fontes em um único conjunto coeso 
e abrangente. Essa etapa envolve mapear e relacionar as variáveis correspondentes entre as fontes de 
dados, garantindo a consistência e a interoperabilidade dos dados combinados.
A escolha das fontes de dados adequadas desempenha um papel importante no sucesso de um 
projeto de ciência de dados. Ao utilizar uma variedade de fontes de dados relevantes, conseguimos 
obter uma visão mais abrangente e precisa do problema em questão. No entanto, devemos garantir 
a qualidade, a integridade e a conformidade dos dados, além de seguir as práticas éticas e legais ao 
coletar, processar e utilizar essas informações.
5.2 Coleta, limpeza e organização das informações
A coleta, limpeza e organização das informações são etapas essenciais no processo de análise de 
dados. Elas visam obter dados confiáveis, livres de ruídos e prontos para serem utilizados na análise. 
Vamos explorar cada uma delas:
Coleta de dados
O primeiro passo é definir o problema a ser resolvido, mas fazê-lo nem sempre é tão simples quanto 
parece, por uma variedade de razões, que incluem a complexidade dos dados, as expectativas dos 
stakeholders e a clareza dos objetivos. Após definido o problema, com base nele, são selecionados os 
dados a serem utilizados na análise.
A coleta de dados envolve a obtenção das informações necessárias para a análise. Isso pode ser feito 
por meio de diferentes fontes de dados, como bases de dados internas, fontes públicas, redes sociais, 
dispositivos conectados, entre outros. Dependendo da fonte, os dados podem ser obtidos por meio de 
consultas a bancos de dados, APIs, web scraping ou até mesmo coleta manual. É importante definir 
91
CIÊNCIA DE DADOS
quais variáveis e informações são relevantes para a análise e garantir que os dados coletados sejam 
representativos e abrangentes o suficiente a fim de responder às perguntas da pesquisa.
Antes de iniciar a coleta de dados, é fundamental definir claramente o objetivo do projeto. 
Compreender o que você deseja alcançar ajuda a determinar quais dados são necessários, quais fontes 
devem ser exploradas e como os dados precisam ser coletados e organizados. Identificar as fontes de 
onde os dados podem ser obtidos é uma etapa muito importante.
Crie um plano detalhado de como os dados serão coletados. Isso inclui decidir quais campos ou 
variáveis são relevantes, como os dados serão estruturados, qual a frequência da coleta e como eles serão 
armazenados. É importante garantir que os dados coletados sejam precisos, completos e representativos 
do seu objetivo. A qualidade dos dados é essencial.
Ao coletar dados, necessitamos respeitar a privacidade das pessoas e seguir diretrizes éticas. 
Certifique-se de estar em conformidade com as regulamentaçõesde proteção de dados, especialmente se 
eles envolverem informações pessoais. Os dados coletados devem ser armazenados de forma organizada 
e segura. Use sistemas de gerenciamento de banco de dados ou estruturas de armazenamento adequadas 
para garantir que os dados sejam acessíveis e protegidos.
Mantenha um registro detalhado de todo o processo de coleta, incluindo fontes, datas, métodos, 
transformações aplicadas, e quaisquer problemas encontrados. Isso ajuda a preservar um histórico 
confiável dos dados. Em muitos casos, os dados precisam ser atualizados regularmente para permanecerem 
relevantes. Certifique-se de ter um plano para manter seus dados atualizados e refletindo as mudanças 
ao longo do tempo.
Após coletar e preparar os dados, eles estão prontos para análise, modelagem ou outras atividades 
específicas de seu projeto. A qualidade dos resultados dependerá da qualidade dos dados coletados e da 
forma como foram processados.
A coleta de dados é um processo iterativo que envolve planejamento, execução, revisão e ajustes 
conforme necessário. A qualidade dos dados coletados e a precisão das informações que eles representam 
são fundamentais para tomar decisões informadas e obter insights significativos.
Limpeza de dados
A limpeza de dados é uma etapa crítica para garantir a qualidade dos dados. Nessa etapa, são 
identificados e tratados problemas como dados ausentes, erros de digitação, valores inconsistentes 
ou outliers. Também é comum lidar com dados duplicados ou inconsistentes, que precisam ser 
removidos ou corrigidos. A limpeza de dados pode envolver a aplicação de técnicas estatísticas, como 
imputação de dados faltantes, remoção de outliers, padronização de valores, entre outros. É importante 
realizar uma análise exploratória dos dados para identificar possíveis problemas e aplicar as estratégias 
corretas de limpeza.
92
Unidade II
Explicaremos melhor os três tipos principais de problemas que frequentemente são tratados na 
limpeza de dados: valores ausentes, valores ruidosos (outliers) e valores inconsistentes.
Valores ausentes
Valores ausentes ocorrem quando um campo ou variável não possui um valor válido. Lidar com 
valores ausentes é importante para evitar distorções e imprecisões em análises.
Exemplo: suponha que você esteja trabalhando com um conjunto de dados de avaliações de 
produtos, e alguns registros não possuam uma classificação atribuída. Nesse caso, será possível optar 
por preencher esses valores ausentes com a média das classificações existentes ou remover as entradas 
sem classificação, dependendo do contexto.
Decida se os valores ausentes podem ser preenchidos com valores calculados (média, mediana) ou se 
a linha inteira deve ser removida. A escolha depende do impacto nos resultados e do contexto.
Valores ruidosos (outliers)
Outliers são valores que se desviam significativamente do padrão dos demais dados e podem 
distorcer análises e modelos. Tratar outliers envolve decidir se eles são erros reais ou representam 
informações valiosas.
Exemplo: considere um conjunto de dados de renda familiar, em que a maioria das famílias possui 
rendas na faixa de $ 3.000 a $ 10.000, mas há um registro com renda de $ 1.000.000. Nesse caso, 
precisaremos avaliar se esse valor é um erro de entrada ou representa uma situação legítima, como uma 
família de alto rendimento.
Avalie a legitimidade dos outliers e considere se eles são erros de entrada ou representam situações 
reais. Em alguns casos, você pode decidir mantê-los para não perder informações valiosas.
Valores inconsistentes
Valores inconsistentes ocorrem quando os dados não seguem as regras ou padrões esperados. Isso 
pode ser causado por erros de entrada, problemas na coleta de dados ou outras fontes.
Exemplo: se você está trabalhando com um conjunto de dados de idade de pessoas e encontra 
registros de pessoas com idades negativas, isso é uma inconsistência. Eles precisam ser revisados e 
corrigidos, já que a idade não pode ser negativa.
Identifique os padrões de inconsistência e aplique transformações para corrigir os valores ou remova 
as entradas com inconsistências graves.
93
CIÊNCIA DE DADOS
A limpeza de dados requer uma combinação de conhecimento de domínio, senso crítico e técnicas 
analíticas. Ela pode ser uma etapa iterativa, na qual você avalia os resultados após cada etapa de limpeza 
a fim de garantir que os dados estejam prontos para análises subsequentes.
Organização dos dados
A organização dos dados refere-se à estruturação e formatação dos dados para facilitar a análise. Isso 
inclui a definição de variáveis e seus tipos, a criação de tabelas ou matrizes estruturadas, a organização 
de dados em formatos específicos, como CSV, JSON ou bancos de dados relacionais. Também pode 
envolver a criação de variáveis derivadas ou transformações nos dados para melhor representar a 
informação desejada. A organização adequada dos dados facilita a aplicação de técnicas de análise e 
modelagem posteriormente.
Precisamos ressaltar que coleta, limpeza e organização de dados não são tarefas únicas, mas 
sim um processo contínuo. À medida que novos dados são coletados ou novas necessidades surgem 
na análise, pode ser necessário iterar e repetir essas etapas. Além disso, é fundamental documentar 
todas as transformações e decisões tomadas durante esse processo para garantir a rastreabilidade e a 
replicabilidade da análise.
A coleta, limpeza e organização das informações são etapas muito importantes para garantir a 
qualidade e a confiabilidade dos dados utilizados na análise. Essas etapas permitem que os dados sejam 
preparados de forma adequada, livres de ruídos e prontos para a análise exploratória e modelagem de dados.
5.3 Métodos de raspagem
A raspagem de dados, também conhecida como web scraping, é uma técnica utilizada para extrair 
informações de páginas da web de forma automatizada. Essa abordagem permite coletar dados de 
diferentes fontes online de maneira eficiente e rápida, sem a necessidade de intervenção manual.
Existem diversos métodos de raspagem de dados, cada um com suas particularidades e aplicações 
específicas. Alguns dos mais comuns incluem:
Análise de HTML
Este método envolve a análise do código HTML da página web para identificar os elementos desejados 
e extrair as informações relevantes. É possível utilizar bibliotecas e ferramentas específicas para realizar 
essa análise, como BeautifulSoup em Python.
Web scraping baseado em API
Alguns sites e plataformas fornecem APIs (application programming interfaces) que permitem 
acessar e obter dados de maneira estruturada. Por meio delas, é possível enviar requisições e receber 
respostas em um formato específico, como JSON, facilitando a extração de dados de forma mais direta 
e organizada.
94
Unidade II
Uso de bibliotecas específicas
Existem várias bibliotecas e frameworks disponíveis em diferentes linguagens de programação que 
facilitam a raspagem de dados. Exemplos populares incluem Scrapy em Python e Selenium, que permite 
automatizar a interação com páginas web, preenchendo formulários, clicando em botões e navegando 
por diversas seções do site.
Raspagem de dados de mídias sociais
Para extrair dados de plataformas de mídia social, como Twitter, Facebook ou Instagram, podem 
ser utilizadas APIs específicas fornecidas pelas próprias plataformas ou bibliotecas que simplificam a 
interação com essas APIs. Além disso, algumas bibliotecas de raspagem de dados podem ser usadas para 
coletar informações publicamente disponíveis nessas plataformas.
É importante ressaltar que, ao realizar a raspagem de dados, precisamos seguir as diretrizes éticas 
e legais. Alguns sites podem ter políticas específicas que proíbem a raspagem de dados sem permissão, 
portanto, devemos verificar os termos de serviço e as políticas de privacidade dos sites antes de efetuar 
qualquer raspagem de dados.
Ademais, é importante considerar a estrutura e o layout do site-alvo, uma vez que esses elementos 
podem mudar ao longo dotempo, exigindo ajustes na lógica de raspagem. Também recomenda-se 
monitorar a taxa de solicitações para evitar sobrecarregar os servidores do site e respeitar os 
limites impostos.
Os métodos de raspagem de dados são ferramentas poderosas para extrair informações de páginas 
web e outras fontes online. Ao utilizar esses métodos de forma ética e respeitando as políticas dos sites, 
é possível obter dados valiosos para análise e tomada de decisões.
5.4 Tabulação
Tabulação, também conhecida como tabulação cruzada ou tabulação de dados, é uma técnica 
estatística usada para resumir e analisar dados em forma de tabelas. Essa técnica é utilizada em pesquisas 
de opinião, estudos de mercado, análise de dados quantitativos e em várias outras áreas.
Ela permite visualizar e compreender os relacionamentos entre diferentes variáveis em um conjunto 
de dados. Seu objetivo principal é apresentar as frequências e proporções de cada combinação de valores 
das variáveis, permitindo identificar padrões, tendências e associações.
O processo de tabulação envolve os seguintes passos:
1. Identificação das variáveis: determine quais variáveis são relevantes para a análise e quais 
categorias ou valores elas podem assumir. Por exemplo, em uma pesquisa de opinião, as variáveis podem 
ser idade, gênero, nível educacional e preferências. É importante defini-las de forma clara e precisa para 
garantir uma tabulação adequada.
95
CIÊNCIA DE DADOS
2. Organização dos dados: organize os dados em uma tabela, na qual cada linha representa uma 
observação (indivíduo ou caso) e cada coluna uma variável. Os valores correspondentes às variáveis são 
registrados nas células da tabela.
3. Contagem de frequências: conte o número de ocorrências para cada combinação de valores 
das variáveis. Isso pode ser feito manualmente ou utilizando software estatístico ou ferramentas de 
análise de dados.
4. Cálculo de proporções: calcule as proporções ou percentagens em relação ao total ou a um 
subconjunto específico. Isso permite comparar as frequências relativas das diferentes combinações de 
valores e obter insights sobre a distribuição dos dados.
5. Apresentação dos resultados: os resultados da tabulação podem ser apresentados em tabelas 
ou gráficos, dependendo da natureza dos dados e da finalidade da análise. Tabelas de frequência, tabelas 
de contingência e gráficos de barras ou de pizza são comumente utilizados para visualizar os resultados 
da tabulação.
A tabulação permite analisar dados de forma rápida e eficiente, identificando associações entre 
variáveis e destacando padrões relevantes. Trata-se de uma técnica fundamental para a exploração 
inicial de um conjunto de dados e pode servir como base para análises mais avançadas, como testes de 
hipóteses, modelagem estatística e tomada de decisões.
No entanto, devemos destacar que a tabulação é uma técnica descritiva e não inferencial. Ela fornece 
informações sobre as relações observadas nos dados, mas não permite estabelecer relações causais ou 
fazer inferências sobre a população em geral. A tabulação é uma técnica estatística utilizada para resumir 
e analisar dados em forma de tabelas. Ela permite identificar padrões e associações entre variáveis, 
facilitando a compreensão dos dados e fornecendo insights valiosos para a análise e interpretação 
dos resultados.
5.5 Seleção de atributos
A seleção de atributos, também conhecida como seleção de variáveis, é uma etapa importante no 
processo de análise de dados e modelagem preditiva. Ela envolve a escolha dos atributos mais relevantes 
e informativos em um conjunto de dados para construir modelos mais eficientes e precisos.
Tal seleção é realizada com o objetivo de reduzir a dimensionalidade dos dados, ou seja, diminuir o 
número de atributos a serem considerados no modelo, sem comprometer a qualidade da análise. Existem 
diversas técnicas e abordagens para efetuar essa seleção, sendo que a escolha da técnica mais adequada 
depende do tipo de dados, do objetivo do modelo e das características do problema em questão.
Ao selecionar os atributos mais relevantes, o modelo tende a ser mais preciso, uma vez que se 
concentra nas informações mais importantes e descarta ruídos ou dados irrelevantes. Ao reduzir o 
número de atributos, o modelo se torna mais simples de interpretação, facilitando a compreensão dos 
96
Unidade II
fatores que influenciam nas previsões ou classificações. Com menos atributos, o tempo de treinamento 
do modelo é reduzido, o que é especialmente útil em conjuntos de dados grandes e complexos.
Existem diferentes técnicas de seleção de atributos, que podem ser divididas em três categorias 
principais:
• Métodos baseados em filtros: utilizam métricas estatísticas ou heurísticas para avaliar a relação 
entre cada atributo e a variável-alvo, sem levar em consideração o modelo de aprendizado. 
Exemplos comuns incluem a análise de correlação, testes de independência, ganho de informação 
e índice de relevância.
• Métodos baseados em wrappers: um modelo de aprendizado é utilizado para avaliar a 
importância dos atributos. Ele é treinado repetidamente, removendo ou adicionando atributos de 
forma iterativa e avaliando a performance do modelo em cada iteração. Exemplos incluem busca 
exaustiva, busca para frente e busca para trás.
• Métodos incorporados: incorporam a seleção de atributos diretamente no processo de treinamento 
do modelo. Alguns algoritmos de aprendizado, como, por exemplo, árvores de decisão, possuem 
mecanismos internos para selecionar automaticamente os atributos mais relevantes durante o 
processo de construção do modelo.
A seleção de atributos não é uma etapa trivial e requer análise cuidadosa dos dados e do problema 
em questão. Precisamos considerar fatores como relevância, redundância, correlação entre atributos, 
impacto na performance do modelo e interpretabilidade. Além disso, é recomendado utilizar técnicas 
de validação cruzada para avaliar o desempenho do modelo com diferentes conjuntos de atributos. 
Essa seleção visa escolher os atributos mais relevantes e informativos a fim de construir modelos mais 
precisos, eficientes e interpretativos.
5.6 Engenharia de características
A engenharia de características, também conhecida como seleção ou criação de atributos, é um 
processo essencial na análise de dados e modelagem preditiva. Envolve a transformação dos dados 
brutos em um conjunto de características relevantes e informativas, que possam ser utilizadas pelos 
algoritmos de aprendizado de máquina para construir modelos mais precisos e eficientes.
A importância da engenharia de características reside no fato de que nem sempre os dados brutos 
estão em um formato adequado para a construção de modelos. Muitas vezes, os dados originais contêm 
informações irrelevantes, ruídos ou podem estar incompletos. Através da engenharia de características, é 
possível extrair e criar informações que sejam mais relevantes para o problema em questão, melhorando 
a performance dos modelos.
A primeira abordagem é a seleção de características, que consiste em selecionar um subconjunto 
relevante de características do conjunto de dados original. A seleção pode ser feita com base em critérios 
estatísticos, como a análise de correlação, testes de independência ou ganho de informação. Também é 
97
CIÊNCIA DE DADOS
possível utilizar algoritmos de aprendizado de máquina para avaliar a importância das características. 
A seleção de características reduz a dimensionalidade do conjunto de dados, eliminando características 
irrelevantes ou redundantes, o que pode resultar em modelos mais simples e eficientes.
A segunda abordagem é a criação de características que envolve a origem de novas características com 
base nas características existentes no conjunto de dados. Essa abordagem busca capturar informações 
adicionais e relevantes que possam estar ocultas nos dados originais. Alguns exemplos de técnicas de 
criação de características incluem a combinação linear de características, aextração de características 
a partir de textos ou imagens e a criação de variáveis categóricas a partir de variáveis contínuas. 
A criação de características pode ser feita com base no conhecimento do domínio do problema, em 
técnicas de processamento de linguagem natural, em algoritmos de extração de características ou 
em métodos de aprendizado não supervisionado.
Devemos ressaltar que a engenharia de características é um processo iterativo e criativo. Requer um 
bom entendimento do domínio do problema, além de uma análise aprofundada dos dados. Também é 
recomendado avaliar o desempenho dos modelos com diferentes conjuntos de características, utilizando 
técnicas de validação cruzada, para selecionar as melhores características e evitar overfitting.
A engenharia de características envolve a seleção e criação de características relevantes e informativas 
a partir dos dados brutos, com o objetivo de melhorar a performance dos modelos de aprendizado 
de máquina. A escolha adequada das características pode levar a modelos mais precisos, eficientes 
e interpretáveis.
5.7 Normalização dos dados
A normalização dos dados é um processo importante na preparação e pré-processamento de dados 
antes de aplicar algoritmos de aprendizado de máquina. Consiste em ajustar a escala dos dados para que 
eles estejam em um intervalo específico ou sigam uma distribuição padrão, tornando-os comparáveis e 
facilitando a análise.
Existem diferentes técnicas de normalização que podem ser aplicadas, dependendo das características 
dos dados e dos requisitos do problema. Algumas das técnicas mais comuns são:
Normalização Min-Max
Nesta técnica, os valores dos dados são ajustados para um intervalo específico, geralmente entre 0 e 1. 
A fórmula utilizada é dada por:
x_norm = (x- min(x) / (max(x) - min(x)
Onde:
• x é o valor original;
98
Unidade II
• x norm_ é o valor normalizado;
• min(x) é o menor valor dos dados;
• max(x) é o maior valor dos dados.
A normalização Min-Max é útil quando os dados possuem limites bem definidos e não são sensíveis 
a outliers. Ela preserva a distribuição dos dados, mantendo as relações proporcionais entre eles.
Exemplo:
Suponha que você tenha as seguintes notas dos alunos em uma escala de 0 a 100:
• Aluno A: 75
• Aluno B: 90
• Aluno C: 60
• Aluno D: 85
Vamos normalizar essas notas usando a fórmula Min-Max:
1 – Encontre min( )x e max( )x das notas:
min( )
max( )
x
x
=
=
60
90
2 – Aplique a fórmula de normalização Min-Max para cada aluno:
Para o aluno A:
xnormA �
�
�
�
( )
( )
.
75 60
90 60
0 5
Para o aluno B:
xnormB �
�
�
�
( )
( )
.
90 60
90 60
1 0
Para o aluno C:
xnormC �
�
�
�
( )
( )
.
60 60
90 60
0 0
99
CIÊNCIA DE DADOS
Para o aluno D:
xnormD �
�
�
�
( )
( )
.
85 60
90 60
0 8
Agora as notas dos alunos foram normalizadas na faixa de 0 a 1:
• Aluno A: 0.5
• Aluno B: 1.0
• Aluno C: 0.0
• Aluno D: 0.8
A normalização Min-Max é útil quando você deseja trazer diferentes variáveis para a mesma escala, 
especialmente quando se trabalha com algoritmos sensíveis à escala dos dados, como redes neurais e 
algoritmos de otimização.
Normalização Z-score
Também conhecida como padronização, esta técnica ajusta os dados de forma que tenham uma 
média zero e um desvio padrão de um. A fórmula utilizada é dada por:
x_norm = (x- mean(x)) /std(x)
Onde:
• x é o valor original;
• x_norm é o valor normalizado;
• mean(x) é a média dos dados;
• std(x) é o desvio padrão dos dados.
A normalização Z-score é útil quando se deseja comparar os dados com base na sua posição relativa 
em relação à média e ao desvio padrão. Ela é sensível a outliers, uma vez que considera a média e o 
desvio padrão dos dados.
Exemplo:
Vamos utilizar as mesmas notas dos alunos:
100
Unidade II
• Aluno A: 75
• Aluno B: 90
• Aluno C: 60
• Aluno D: 85
Primeiramente, calcule a mean(x) e std(x) o das notas:
mean(x)=
75 90 60 85
4
77 5
� � �
� .
std(x)=
( ( ))x mean x
n
ii
n ��� 21
std(x)= (
( , ) ( . ) ( . ) ( . )
)
75 77 5 90 77 5 60 77 5 85 77 5
4
5 152 2 2 2� � � � � � �
�
� 66 25 306 25 56 25
4
. . .� �
std x( ) .=11 4
Na sequência, aplique a fórmula de normalização Z-score para cada aluno:
Para o aluno A:
xnorm A_
.
.
.�
�
� �
75 77 5
11 4
0 2
Para o aluno B:
xnorm B_
.
.
.�
�
�
90 77 5
11 4
1 1
Para o aluno C:
xnorm C_
.
.
.�
�
� �
60 77 5
11 4
1 5
Para o aluno D:
xnorm D_
.
.
.�
�
�
85 77 5
11 4
0 6
101
CIÊNCIA DE DADOS
Por fim, as notas dos alunos foram normalizadas usando o Z-score:
• Aluno A: -0.2
• Aluno B: 1.1
• Aluno C: -1.5
• Aluno D: 0.6
A normalização Z-score é útil quando você deseja comparar e analisar dados que podem ter diferentes 
médias e desvios padrão. Ela transforma os dados para terem uma distribuição normal com média zero e 
desvio padrão um. Quanto mais próximo de 0 for o desvio padrão, mais homogêneo são os dados.
Normalização por escala logarítmica
Em alguns casos, os dados podem apresentar distribuição assimétrica ou amplitude muito grande. 
Nesses casos, a normalização por escala logarítmica pode ser aplicada para reduzir a variação e tornar 
os dados mais comparáveis.
A fórmula utilizada é dada por:
x norm x_ log( )=
Onde:
• x é o valor original;
• x norm_ é o valor normalizado.
A normalização por escala logarítmica é útil quando se deseja reduzir a influência de valores extremos 
e ampliar a capacidade de distinguir diferenças nos valores menores.
Exemplo:
Vamos considerar as mesmas notas dos alunos:
• Aluno A: 75
• Aluno B: 90
• Aluno C: 60
• Aluno D: 85
102
Unidade II
Primeiramente, aplique a normalização por escala logarítmica a cada nota:
• Para o aluno A: log( ) .75 4 317≈
• Para o aluno B: log( ) .90 4 499≈
• Para o aluno C: log( ) .60 4 094≈
• Para o aluno D: log( ) .85 4 442≈
Na sequência, as notas dos alunos foram normalizadas usando a escala logarítmica:
• Aluno A: 4.317
• Aluno B: 4.499
• Aluno C: 4.094
• Aluno D: 4.442
A normalização por escala logarítmica é útil quando os dados possuem ampla variação e a escala 
logarítmica pode torná-los mais comparáveis. Essa técnica é frequentemente usada quando os dados 
originalmente variam em ordens de magnitude diferentes.
Vale lembrar que a normalização por escala logarítmica pode distorcer as diferenças relativas entre 
valores e é mais adequada quando os dados têm distribuição assimétrica ou as diferenças relativas são 
menos importantes do que as diferenças absolutas.
Precisamos ressaltar que a escolha da técnica de normalização depende do tipo de dados, da 
distribuição dos dados e dos requisitos específicos do problema. Além disso, a normalização deve ser 
aplicada separadamente em conjuntos de treinamento e teste, para evitar vazamento de informações.
A normalização dos dados permite que os algoritmos de aprendizado de máquina tratem os dados 
de forma adequada, evitando que variáveis com escalas diferentes dominem a análise. Ela facilita a 
comparação, interpretação e visualização dos dados, além de melhorar a performance e a convergência 
dos modelos de machine learning.
5.8 Dados ausentes
Dados ausentes são um desafio comum na análise de dados, e ocorrem quando não há valores 
disponíveis para uma ou mais variáveis em determinadas observações. A presença de dados ausentes 
pode comprometer a qualidade da análise e dos modelos de aprendizado de máquina, pois a falta de 
informações leva a conclusões imprecisas ou enviesadas.
103
CIÊNCIA DE DADOS
Existem diferentes razões pelas quais os dados podem estar ausentes, devido a erros de coleta, 
problemas técnicos, recusa dos respondentes em fornecer certas informações ou simplesmente por não 
terem sido registrados. Independentemente da causa, é importante lidar de forma adequada com os 
dados ausentes para evitar viés nos resultados.
Há várias abordagens para lidar com dados ausentes, algumas delas são as seguintes:
• Exclusão de casos ou variáveis: uma abordagem simples é excluir os casos ou variáveis com 
dados ausentes. Sea proporção de dados ausentes for pequena em relação ao tamanho total 
do conjunto de dados, essa abordagem pode ser viável. No entanto, a exclusão de dados pode 
levar a perda de informações importantes, além de potencialmente introduzir viés nos resultados, 
especialmente se os dados ausentes não estiverem aleatoriamente distribuídos.
• Preenchimento com valor fixo: outra abordagem é preencher os valores ausentes com um 
valor fixo, como a média, mediana ou moda dos dados existentes. Essa abordagem é simples 
de implementar, mas pode distorcer as propriedades estatísticas dos dados, especialmente se os 
dados ausentes forem significativos.
• Preenchimento com valor estimado: uma abordagem mais sofisticada é estimar os valores 
ausentes com base em técnicas de imputação. Isso envolve a utilização de algoritmos e modelos 
estatísticos para prever os valores ausentes com base nos dados disponíveis. Alguns métodos 
populares de imputação incluem imputação por regressão, imputação por médias condicionais e 
imputação por múltiplas imputações. Essas técnicas levam em consideração as relações entre as 
variáveis e fornecem estimativas mais precisas dos valores ausentes.
• Modelagem especializada: em alguns casos, é possível construir modelos especializados para 
lidar com dados ausentes. Por exemplo, podem ser aplicados modelos de aprendizado de máquina 
que levam em consideração explicitamente a presença de dados ausentes. Esses modelos podem 
ser treinados para lidar com a ausência de dados e fornecer previsões mais precisas.
Ao lidar com dados ausentes, precisamos avaliar cuidadosamente a abordagem mais adequada, 
considerando a natureza dos dados, a proporção de dados ausentes e o impacto potencial nas análises 
subsequentes. Além disso, é fundamental documentar e relatar o tratamento dos dados ausentes para 
garantir a transparência e a reprodutibilidade das análises.
A presença de dados ausentes é uma realidade comum na análise de dados. Lidar com esses dados 
de maneira apropriada é fundamental para evitar viés e garantir resultados confiáveis. Diversas técnicas 
estão disponíveis para tratar dados ausentes, e a escolha da abordagem depende das características dos 
dados e das necessidades específicas do problema.
104
Unidade II
6 MODELOS PREDITIVOS
Modelos preditivos são algoritmos ou sistemas que utilizam dados históricos para fazer previsões 
ou estimativas sobre eventos futuros. Eles são utilizados em diversas áreas, como ciência de dados, 
aprendizado de máquina, estatística e inteligência artificial, com o objetivo de obter insights e tomar 
decisões informadas.
A ideia por trás dos modelos preditivos é identificar padrões e relações nos dados disponíveis e usá-los 
para prever o resultado de um evento futuro. Esses modelos podem ser aplicados a uma ampla variedade 
de problemas, como previsão de vendas, detecção de fraudes, previsão de demanda, diagnóstico médico, 
recomendação de produtos e muito mais.
Existem vários tipos de modelos preditivos, cada um com suas próprias características e técnicas de 
construção. Alguns dos mais comuns incluem:
• Regressão: é usada para prever um valor contínuo com base em variáveis independentes. 
Há diferentes tipos de regressão, como regressão linear, regressão logística, regressão polinomial, 
entre outros.
• Árvores de decisão: são modelos que dividem os dados com base em perguntas ou condições 
em uma estrutura hierárquica de decisões. Cada ramo representa uma decisão apoiada nas 
características dos dados.
• Redes neurais: são modelos inspirados no funcionamento do cérebro humano, compostos de 
camadas de neurônios interconectados. Eles são capazes de aprender padrões complexos nos 
dados e realizar previsões com base nessas aprendizagens.
• Máquinas de vetores de suporte (SVM): são modelos que mapeiam os dados em um espaço 
dimensional superior e separam as classes de forma otimizada. Elas são regularmente usadas em 
problemas de classificação, mas também podem ser aplicadas a problemas de regressão.
• Naive Bayes: é um modelo baseado no teorema de Bayes, que utiliza a probabilidade condicional 
para fazer previsões. Ele assume que as características são independentes entre si, o que simplifica 
o processo de modelagem.
• Random forest: é uma técnica que combina várias árvores de decisão para tomar decisões coletivas. 
Ela cria múltiplas árvores e faz previsões com base na média das previsões de todas as árvores.
Esses são apenas alguns exemplos de modelos preditivos. A escolha do modelo adequado depende 
do tipo de problema, dos dados disponíveis e dos objetivos específicos da previsão. Cada modelo tem 
suas vantagens e limitações, e a seleção correta é fundamental para obter previsões precisas e confiáveis.
105
CIÊNCIA DE DADOS
Uma parte importante do desenvolvimento de modelos preditivos é o treinamento e a validação do 
modelo. Isso envolve a utilização de dados históricos conhecidos para ajustar os seus parâmetros e, em 
seguida, testá-lo em dados desconhecidos para avaliar sua capacidade de fazer previsões precisas.
No entanto, é importante ter em mente que os modelos preditivos não são uma solução mágica 
e apresentam desafios próprios, como, por exemplo, a necessidade de identificar quais variáveis  ou 
recursos são relevantes para a tarefa de previsão. Nem todos os dados disponíveis podem ser úteis 
ou  informativos, e a seleção cuidadosa dos recursos certos é fundamental para a obtenção de um 
modelo preciso e eficiente.
Os dados nem sempre estão prontos para serem usados diretamente nos modelos preditivos. 
É necessário realizar tarefas de limpeza, como tratamento de dados ausentes, remoção de outliers e 
normalização dos dados. Além disso, a transformação e o pré-processamento dos dados podem ser 
necessários para melhorar a qualidade das previsões. Pode ocorrer o overfitting quando o modelo se 
ajusta em excesso aos dados de treinamento, capturando ruídos e detalhes irrelevantes, o que prejudica 
a capacidade de generalização para novos dados. Por outro lado, o underfitting ocorre quando o modelo 
não é capaz de capturar adequadamente os padrões nos dados. Encontrar o equilíbrio certo entre esses 
extremos é essencial para a obtenção de um modelo preditivo robusto e preciso.
A avaliação e a validação do modelo são etapas indispensáveis para determinar sua eficácia  e 
desempenho. Isso envolve a separação dos dados em conjuntos de treinamento, validação e teste, e a 
utilização de métricas apropriadas para medir a precisão, o recall, a precisão, entre outros aspectos 
relevantes. À medida que os modelos se tornam mais complexos, a interpretação dos resultados 
pode se tornar desafiadora. Compreender como o modelo toma suas decisões e quais características 
são mais importantes para a previsão pode ser fundamental para obter insights úteis e confiar nas 
previsões geradas.
A construção de modelos preditivos envolve um conjunto de etapas que vão desde a seleção de 
recursos e preparação dos dados até a avaliação e interpretação dos resultados. Trata-se de um processo 
iterativo que requer habilidades técnicas, compreensão do domínio e experiência para obter previsões 
precisas e relevantes. Quando usado corretamente, o aprendizado de máquina e os modelos preditivos 
têm o potencial de trazer insights valiosos e melhorar a tomada de decisões em uma ampla variedade 
de setores e aplicativos.
6.1 Regressão linear simples
A regressão linear simples é uma técnica estatística que busca estabelecer relação linear entre duas 
variáveis: uma variável dependente (alvo de previsão) e uma variável independente (variável de entrada). 
Seu objetivo é encontrar a melhor linha reta que representa essa relação e pode ser usada para prever 
valores da variável dependente com base nos valores da variável independente.
A equação da regressão linear simples é uma representação matemática da relação linear entre uma 
variável independente (x) e outra dependente (y). A forma geral da equação da regressão linear simples é:
yx� �� �0 1
106
Unidade II
Nesta equação:
• y é a variável dependente (a que queremos prever);
• x é a variável independente (a que usamos para fazer a previsão);
• β0 é o coeficiente linear (intercepto), que representa o valor de y quando x é igual a 0;
• β1 é o coeficiente angular (inclinação), que representa a mudança em y para uma unidade de 
mudança em x.
Em termos simples, a equação descreve uma reta que melhor se ajusta aos dados, tentando minimizar 
a soma dos quadrados dos resíduos (diferenças entre os valores reais de y e os valores previstos pela 
equação).
Quando você treina um modelo de regressão linear, o objetivo é encontrar os valores de β0 e β1 que 
minimizam o erro total entre os valores observados e aqueles previstos pela equação da regressão. Uma 
vez que o modelo está treinado, será possível usar essa equação para fazer previsões com base em novos 
valores de x.
Para estimar os valores de β0 e β1, são utilizados os dados disponíveis de x e y. O método mais 
comumente utilizado para estimar esses coeficientes é o método dos mínimos quadrados, que busca 
minimizar a soma dos quadrados dos erros entre os valores previstos pela equação da regressão e os 
valores reais observados.
Após obter os coeficientes, o modelo de regressão linear simples pode ser usado para fazer previsões. 
Dado um novo valor de x, pode-se calcular o valor correspondente de y usando a equação da regressão.
Além da previsão, a regressão linear simples permite avaliar a força e a direção da relação entre as 
variáveis. O coeficiente de correlação (r) é uma medida comum usada para avaliar a correlação linear 
entre as variáveis. O valor de r varia de -1 a 1, onde -1 indica uma relação negativa perfeita, 1 indica 
uma relação positiva perfeita e 0 indica ausência de relação linear.
No entanto, é importante considerar algumas suposições ao aplicar a regressão linear simples, como 
a linearidade da relação entre as variáveis, a independência dos erros, a homoscedasticidade (variância 
constante dos erros) e a normalidade dos erros. Violar essas suposições pode levar a resultados imprecisos 
ou inválidos.
A regressão linear simples é uma técnica básica, porém poderosa, que pode ser aplicada em uma 
variedade de problemas. É utilizada em áreas como estatística, economia, ciências sociais e engenharia 
para fazer previsões, entender relações entre variáveis e tomar decisões informadas com base nos 
resultados da análise.
107
CIÊNCIA DE DADOS
A regressão linear simples oferece várias vantagens. Algumas delas incluem:
• Interpretabilidade: a natureza simples da regressão linear torna os resultados facilmente 
interpretáveis. Os coeficientes β0 e β1 fornecem informações sobre o intercepto e a inclinação da 
linha de regressão, respectivamente. Isso permite entender a direção e a magnitude da relação 
entre as variáveis.
• Facilidade de implementação: a regressão linear simples é uma técnica estudada e implementada 
em várias plataformas e linguagens de programação. Há muitas bibliotecas e pacotes disponíveis 
que facilitam a implementação da regressão linear em projetos de análise de dados.
• Eficiência computacional: a regressão linear simples é um método computacionalmente 
eficiente, especialmente quando comparado a modelos mais complexos. A análise de um conjunto 
de dados relativamente grande pode ser realizada em um tempo razoável.
• Baixa dimensionalidade: a regressão linear simples é adequada para problemas de baixa 
dimensionalidade, ou seja, quando há apenas uma variável independente. É particularmente útil 
quando se deseja entender o efeito de uma variável específica no resultado.
• Base para modelos mais complexos: a regressão linear simples serve como uma base importante 
para modelos de regressão mais avançados, como a regressão linear múltipla e os modelos de 
aprendizado de máquina. Ela permite compreender e estabelecer as bases da análise de regressão 
antes de explorar métodos mais complexos.
Exemplo: suponha que temos um conjunto de dados que relaciona a quantidade de horas de estudo 
(variável independente) com as notas obtidas em um exame (variável dependente). Queremos criar 
um modelo de regressão linear simples para prever a nota em um exame com base no número de 
horas de estudo.
Neste exemplo, LinearRegression é um modelo de regressão linear da biblioteca scikit-learn. Ele é 
treinado com os dados de horas de estudo e notas do exame, e depois é usado para fazer previsões 
com base em novos valores de horas de estudo. A reta de regressão é plotada com os dados reais para 
visualizar a relação entre as variáveis.
1. import numpy as np
2. from sklearn.linear_model import LinearRegression
3. import matplotlib.pyplot as plt
4. # Dados de exemplo
5. horas_de_estudo = np.array([2, 4, 6, 7, 8, 10])
6. notas_do_exame = np.array([65, 75, 80, 82, 90, 95])
7. # Reshape para o formato necessário
8. horas_de_estudo = horas_de_estudo.reshape(-1, 1)
108
Unidade II
9. # Criar o modelo de regressão linear
10. modelo = LinearRegression()
11. # Treinar o modelo com os dados de treinamento
12. modelo.fit(horas_de_estudo, notas_do_exame)
13. # Fazer previsões para novos valores
14. horas_novas = np.array([[5], [9]])
15. notas_previstas = modelo.predict(horas_novas)
16. # Coeficiente angular (inclinação da reta)
17. coef_angular = modelo.coef_[0]
18. # Coeficiente linear (intercepto da reta)
19. coef_linear = modelo.intercept_
20. # Imprimir os coeficientes
21. print(“Coeficiente Angular:”, coef_angular)
22. print(“Coeficiente Linear:”, coef_linear)
23. # Plotar os dados e a reta de regressão
24. plt.scatter(horas_de_estudo, notas_do_exame, label=’Dados reais’)
25. plt.plot(horas_novas, notas_previstas, color=’red’, label=’Reta de regressão’)
26. plt.xlabel(‘Horas de Estudo’)
27. plt.ylabel(‘Notas do Exame’)
28. plt.legend()
29. plt.show()
Saída:
Coeficiente angular: 3.693877551020409
Coeficiente linear: 58.38775510204081
109
CIÊNCIA DE DADOS
No
ta
s d
o 
ex
am
e
2 3 4 5 6 7 8 9 10
Horas de estudo
95
90
85
80
75
70
65
Dados reais
Reta de regressão
Figura 18 
No entanto, a regressão linear simples também possui algumas limitações:
• Pressuposições: assume uma relação linear entre as variáveis e a independência dos erros. 
Se essas pressuposições não forem atendidas, os resultados podem ser inválidos ou imprecisos.
• Sensibilidade a outliers: pode afetar significativamente os resultados da regressão linear através 
da presença de outliers. Os outliers influenciam a estimativa dos coeficientes e distorcem a linha 
de regressão.
• Limitação da complexidade do modelo: é limitada em sua capacidade de capturar relações 
não lineares entre as variáveis. Se a relação entre as variáveis não for linear, o modelo de regressão 
linear simples pode fornecer resultados inadequados.
• Dependência da qualidade dos dados: deve haver qualidade dos dados de entrada para a 
obtenção de resultados confiáveis. Dados ausentes, erros de medição ou outras inconsistências 
podem afetar a precisão das previsões.
A regressão linear simples é uma técnica estatística utilizada para modelar a relação linear entre 
duas variáveis. Ela oferece simplicidade, interpretabilidade e eficiência computacional. No entanto, 
precisa estar ciente das suas limitações e das suposições subjacentes. Em muitos casos, a regressão 
linear simples serve como uma ferramenta inicial para análise de dados antes de explorar modelos mais 
complexos e avançados.
110
Unidade II
6.2 Ajuste com mínimos quadrados
O ajuste com mínimos quadrados é uma técnica estatística utilizada para encontrar os parâmetros 
de um modelo matemático que melhor se ajusta a um conjunto de dados observados. Essa abordagem 
busca minimizar a soma dos quadrados dos resíduos, que são as diferenças entre os valores observados 
e aqueles previstos pelo modelo.
O método dos mínimos quadrados é utilizado em várias áreas, como estatística, econometria e ciência 
de dados, sendo especialmente comum em problemas de regressão, quandoo objetivo é encontrar uma 
função que relacione uma variável dependente com uma ou mais variáveis independentes.
O processo de ajuste com mínimos quadrados envolve os seguintes passos:
1. Especificação do modelo: escolher o modelo matemático que representa a relação entre as 
variáveis. Por exemplo, em um problema de regressão linear, o modelo pode ser uma função linear da 
forma y = β0 + β1*x, onde y é a variável dependente, x é a variável independente e β0 e β1 são os 
coeficientes a serem estimados.
2. Cálculo dos resíduos: com o modelo especificado, calculam-se os valores previstos para a variável 
dependente com base nos valores das variáveis independentes. Em seguida, computam-se os resíduos 
subtraindo os valores observados por aqueles previstos. Os resíduos representam as diferenças entre os 
dados observados e as previsões do modelo.
3. Estimação dos parâmetros: o próximo passo é estimar os parâmetros do modelo que minimizam 
a soma dos quadrados dos resíduos. Isso é feito por meio de técnicas de otimização, como o método dos 
mínimos quadrados. O objetivo é encontrar os valores dos coeficientes do modelo que tornem a soma 
dos quadrados dos resíduos o menor possível.
4. Avaliação do ajuste: após estimar os parâmetros, devemos avaliar a qualidade do ajuste. Isso pode 
ser feito por meio de diversas métricas, como o coeficiente de determinação (R²), que mede a proporção 
da variabilidade dos dados explicada pelo modelo. Também é possível realizar testes estatísticos para 
avaliar a significância dos coeficientes e a adequação do modelo aos dados.
5. Interpretação dos resultados: por fim, interpreta-se os coeficientes estimados do modelo. Eles 
representam a relação entre as variáveis e podem ser utilizados para fazer previsões ou inferências 
sobre o comportamento do sistema estudado. Por exemplo, em um modelo de regressão linear simples, 
o coeficiente β1 representa o efeito médio da variável independente sobre a variável dependente. Um 
valor positivo indica uma relação positiva, enquanto um valor negativo indica uma relação negativa.
Exemplo: faremos o ajuste de uma regressão linear simples utilizando o método dos mínimos 
quadrados em Python. Suporemos que temos os seguintes dados de horas de estudo e notas do exame:
111
CIÊNCIA DE DADOS
1. import numpy as np
2. import matplotlib.pyplot as plt
3. # Dados de exemplo
4. horas_de_estudo = np.array([2, 4, 6, 7, 8, 10])
5. notas_do_exame = np.array([65, 75, 80, 82, 90, 95])
6. # Calculando as médias das variáveis
7. media_x = np.mean(horas_de_estudo)
8. media_y = np.mean(notas_do_exame)
9. # Calculando os desvios em relação às médias
10. desvio_x = horas_de_estudo - media_x
11. desvio_y = notas_do_exame - media_y
12. # Calculando o coeficiente angular (beta_1)
13. beta_1 = np.sum(desvio_x * desvio_y) / np.sum(desvio_x ** 2)
14. # Calculando o coeficiente linear (beta_0)
15. beta_0 = media_y - beta_1 * media_x
16. # Criando a reta de regressão
17. reta_regressao = beta_0 + beta_1 * horas_de_estudo
18. # Imprimindo os coeficientes
19. print(“Coeficiente Angular (beta_1):”, beta_1)
20. print(“Coeficiente Linear (beta_0):”, beta_0)
21. # Plotando os dados e a reta de regressão
22. plt.scatter(horas_de_estudo, notas_do_exame, label=’Dados reais’)
23. plt.plot(horas_de_estudo, reta_regressao, color=’red’, label=’Reta de regressão’)
24. plt.xlabel(‘Horas de Estudo’)
25. plt.ylabel(‘Notas do Exame’)
26. plt.legend()
27. plt.show()
Saída:
Coeficiente angular (beta_1): 3.693877551020408
Coeficiente linear (beta_0): 58.38775510204082
112
Unidade II
No
ta
s d
o 
ex
am
e
2 3 4 5 6 7 8 9 10
Horas de estudo
95
90
85
80
75
70
65
Dados reais
Reta de regressão
Figura 19 
Neste exemplo, estamos calculando manualmente os coeficientes da regressão linear (coeficiente 
angular β1 e coeficiente linear β0) usando o método dos mínimos quadrados. Depois, criamos a reta 
de regressão utilizando esses coeficientes e plotamos os dados com a reta de regressão para visualizar 
como o ajuste foi feito.
 Lembrete
Em aplicações reais, normalmente usaríamos bibliotecas como NumPy 
e SciPy para realizar esses cálculos de maneira mais eficiente.
O ajuste com mínimos quadrados é uma abordagem poderosa, pois fornece uma maneira sistemática 
de encontrar os parâmetros que melhor descrevem os dados observados. No entanto, é importante estar 
ciente de algumas considerações:
• Suposições: o método dos mínimos quadrados assume que os erros de medição são independentes e 
têm distribuição normal com média zero e variância constante. É importante verificar se essas 
suposições são atendidas antes de aplicar o procedimento.
• Outliers: valores discrepantes ou extremos podem ter um impacto significativo no ajuste com 
mínimos quadrados, pois eles têm um peso maior na soma dos quadrados dos resíduos. É importante 
identificar e lidar com esses outliers de forma adequada para evitar que eles distorçam o ajuste.
113
CIÊNCIA DE DADOS
• Overfitting: o ajuste com mínimos quadrados pode levar ao overfitting (sobreajuste) quando 
o modelo se torna muito complexo e se ajusta demais aos dados de treinamento. Isso pode 
resultar em um modelo que não generaliza bem para novos dados. É importante ter cuidado ao 
escolher a complexidade do modelo e considerar técnicas como validação cruzada para avaliar 
seu desempenho em dados não observados.
O ajuste com mínimos quadrados é uma técnica fundamental na modelagem estatística e na análise 
de dados. Ele permite encontrar os parâmetros que melhor descrevem a relação entre as variáveis em 
um modelo matemático. No entanto, devemos compreender suas suposições e considerar as limitações 
associadas a outliers e overfitting. Com uma abordagem cuidadosa, o ajuste com mínimos quadrados 
fornece resultados úteis e insights sobre o comportamento dos dados.
6.3 Gradiente descendente
O gradiente descendente é um algoritmo de otimização utilizado em aprendizado de máquina e em 
outras áreas relacionadas, como otimização de função e aprendizado de parâmetros. Ele é utilizado para 
encontrar o mínimo de uma função de perda, ou seja, minimizar a diferença entre os valores previstos 
e os valores reais.
O algoritmo do gradiente descendente é baseado no cálculo do gradiente da função de perda em 
relação aos parâmetros do modelo. O gradiente indica a direção e a magnitude do maior aumento da 
função de perda. Portanto, ao caminhar na direção oposta ao gradiente, é possível aproximar-se do 
mínimo global ou local da função.
O processo do gradiente descendente pode ser resumido nas seguintes etapas:
1. Inicialização dos parâmetros: os parâmetros do modelo são inicializados com valores aleatórios 
ou predefinidos.
 2. Cálculo do gradiente: o gradiente da função de perda em relação aos parâmetros é calculado. 
Isso envolve calcular as derivadas parciais da função de perda em relação a cada parâmetro.
3. Atualização dos parâmetros: os parâmetros do modelo são atualizados usando a seguinte fórmula: 
novo_parâmetro = parâmetro_atual - taxa_aprendizado * gradiente, onde a taxa de aprendizado é um 
hiperparâmetro que controla o tamanho do passo dado em cada iteração.
4. Repetição: os passos 2 e 3 são repetidos até que uma condição de parada seja atendida. Isso 
pode ser um número fixo de iterações, uma tolerância para a melhoria da função de perda ou outros 
critérios definidos.
Existem diferentes variantes do gradiente descendente, como o gradiente descendente estocástico (SGD) 
e o gradiente descendente em lote (batch gradient descent). O SGD atualiza os parâmetros a cada 
exemplo de treinamento, enquanto o batch gradient descent usa todo o conjunto de treinamento para 
114
Unidade II
calcular o gradiente e atualizar os parâmetros. O SGD é mais rápido, mas pode ser mais ruidoso, enquanto 
o batch gradient descent é mais preciso, mas pode ser mais lento em grandes conjuntos de dados.
O gradiente descendente é utilizado em algoritmos de aprendizado de máquina, como regressão 
linear, regressão logística e redesneurais. Ele permite ajustar os parâmetros do modelo de forma iterativa, 
buscando minimizar a função de perda e melhorar o desempenho do modelo na tarefa desejada.
Exemplo: utilizaremos um exemplo simples de como implementar o gradiente descendente para 
ajustar uma regressão linear em Python:
1. import numpy as np
2. import matplotlib.pyplot as plt
3. # Dados de exemplo
4. horas_de_estudo = np.array([2, 4, 6, 7, 8, 10])
5. notas_do_exame = np.array([65, 75, 80, 82, 90, 95])
6. # Inicialização dos parâmetros
7. alpha = 0.01 # Taxa de aprendizado
8. num_iteracoes = 1000 # Número de iterações
9. # Inicialização dos coeficientes
10 beta_0 = 0.0
11. beta_1 = 0.0
12. # Gradiente Descendente
13. for _ in range(num_iteracoes):
14. predicoes = beta_0 + beta_1 * horas_de_estudo
15. erro = predicoes - notas_do_exame
16. # Atualização dos coeficientes usando o Gradiente Descendente
17. beta_0 -= alpha * (1.0 / len(horas_de_estudo)) * np.sum(erro)
18. beta_1 -= alpha * (1.0 / len(horas_de_estudo)) * np.sum(erro * horas_de_estudo)
19. # Coeficientes ajustados
20. print(“Coeficiente Linear (beta_0):”, beta_0)
21. print(“Coeficiente Angular (beta_1):”, beta_1)
22. # Criação da reta de regressão
23. reta_regressao = beta_0 + beta_1 * horas_de_estudo
115
CIÊNCIA DE DADOS
24. # Plotando os dados e a reta de regressão
25. plt.scatter(horas_de_estudo, notas_do_exame, label=’Dados reais’)
26. plt.plot(horas_de_estudo, reta_regressao, color=’red’, label=’Reta de regressão’)
27. plt.xlabel(‘Horas de Estudo’)
28. plt.ylabel(‘Notas do Exame’)
29. plt.legend()
30. plt.show()
Saída:
Coeficiente linear (beta_0): 45.597677085080264
Coeficiente angular (beta_1): 5.458972545781039
No
ta
s d
o 
ex
am
e
2 3 4 5 6 7 8 9 10
Horas de estudo
100
90
80
70
60
Dados reais
Reta de regressão
Figura 20 
Neste exemplo, estamos usando o gradiente descendente para ajustar os coeficientes da regressão 
linear. O algoritmo itera várias vezes, atualizando os coeficientes com base nas derivadas parciais da 
função de erro em relação a esses coeficientes. A taxa de aprendizado (α) determina o tamanho dos 
passos que o algoritmo dá em direção ao mínimo da função de erro.
116
Unidade II
 Lembrete
Em problemas reais, é mais comum utilizar bibliotecas como NumPy 
e scikit-learn para fazer ajustes de regressão linear e otimização, uma vez 
que elas já implementam esses algoritmos de maneira eficiente.
No entanto, é importante ajustar a taxa de aprendizado adequadamente, pois um valor muito 
pequeno pode levar a um treinamento lento ou a um mínimo local subótimo, e um valor muito grande 
pode causar oscilações ou não convergir para o mínimo global. Além disso, o gradiente descendente pode 
sofrer com problemas de gradientes esparsos, que ocorrem quando a função de perda tem áreas planas 
ou regiões onde o gradiente é próximo de zero.
O gradiente descendente é um algoritmo fundamental para otimização de modelos em aprendizado 
de máquina. Ele utiliza o cálculo do gradiente da função de perda para atualizar iterativamente os 
parâmetros do modelo, buscando minimizar a função de perda e melhorar o desempenho do modelo 
na tarefa de aprendizado. Com o gradiente descendente, conseguimos ajustar os parâmetros de forma 
iterativa, permitindo que o modelo se adapte aos dados de treinamento e generalize para novos exemplos.
Nem sempre o gradiente descendente converge para o mínimo global da função de perda. Em alguns 
casos, ele pode convergir para um mínimo local ou ficar preso em um platô. Existem técnicas, como o 
uso de diferentes variantes do gradiente descendente ou a inicialização dos parâmetros com valores 
diferentes, que podem ajudar a melhorar a convergência.
Em problemas com muitas características (alta dimensionalidade), o gradiente descendente pode 
enfrentar dificuldades devido ao chamado “espaço emagrecido” (vanishing gradient) ou “espaço 
inchado” (exploding gradient). Nestes casos, é comum aplicar técnicas como regularização ou redução 
de dimensionalidade para mitigar esses problemas.
Como dito, a escolha inicial dos parâmetros pode afetar o desempenho do gradiente descendente. 
Uma inicialização inadequada leva a um treinamento ineficiente ou a uma convergência para mínimos 
subótimos. Precisamos explorar diferentes técnicas de inicialização e encontrar a mais adequada para o 
modelo específico.
Trata-se de uma técnica poderosa que permite a otimização iterativa dos parâmetros de um modelo 
de aprendizado de máquina. Com suas variantes e considerações, é uma ferramenta essencial para treinar 
modelos em uma ampla gama de problemas. Ao entender as nuances do gradiente descendente e ajustar 
adequadamente seus hiperparâmetros, obtemos modelos bem ajustados e com bom desempenho.
117
CIÊNCIA DE DADOS
6.4 Regressão linear múltipla
A regressão linear múltipla é uma técnica de aprendizado de máquina que visa modelar a relação 
entre uma variável dependente contínua e várias variáveis independentes. Trata-se de uma extensão da 
regressão linear simples, na qual apenas uma variável independente é considerada.
Aqui, o objetivo é encontrar uma equação que represente a relação linear entre as variáveis 
independentes e a variável dependente. Ela é chamada de modelo de regressão, sendo expressa da 
seguinte forma:
Y X X n Xn� � � � � �� � � �0 1 1 2 2 ...
Onde:
• Y é a variável dependente (variável a ser prevista);
• X1, X2,..., Xn são as variáveis independentes;
• β0, β1, β2,..., βn são os coeficientes que representam os pesos atribuídos a cada variável independente.
O processo de ajuste de um modelo de regressão linear múltipla envolve encontrar os valores ideais 
para os coeficientes β0, β1, β2,..., βn, de modo a minimizar a diferença entre os valores previstos pelo 
modelo e os valores reais da variável dependente.
A seleção adequada das variáveis independentes é um aspecto crítico na regressão linear múltipla. 
Devemos escolher as variáveis que possuem uma forte correlação com a variável dependente e que 
sejam relevantes para o problema em questão. A inclusão de variáveis irrelevantes ou altamente 
correlacionadas pode levar a problemas de multicolinearidade e ao superajuste do modelo.
Existem diferentes técnicas e métodos para estimar os coeficientes do modelo de regressão linear 
múltipla, sendo os mais comuns:
• Mínimos quadrados ordinários (OLS): é o método mais utilizado, que minimiza a soma dos 
quadrados das diferenças entre os valores previstos e os valores reais. Ele encontra os coeficientes 
que minimizam essa soma, produzindo o melhor ajuste linear aos dados.
• Regularização (como Lasso e Ridge): são técnicas que adicionam um termo de penalização 
aos coeficientes do modelo para evitar o superajuste e reduzir a influência de variáveis menos 
relevantes. O Lasso realiza uma seleção automática de variáveis, enquanto o Ridge reduz os 
coeficientes, mas não os zera.
• Métodos de seleção de variáveis: existem abordagens para selecionar automaticamente as 
variáveis mais relevantes para o modelo, como Stepwise, Forward, Backward, entre outros. Esses 
métodos consideram diferentes combinações de variáveis para encontrar o melhor conjunto 
de preditores.
118
Unidade II
Exemplo: suponha que temos um conjunto de dados que relaciona a quantidade de horas de estudo, 
a quantidade de horas de sono e a quantidade de exercícios feitos (três variáveis independentes) com 
as notas obtidas em um exame (variável dependente). Queremos criar um modelo de regressão linear 
múltipla para prever a nota do exame com base nessas variáveis independentes.
1. import numpy as np
2. from sklearn.linear_model import LinearRegression
3. # Dados de exemplo
4. horas_de_estudo = np.array([2, 4, 6, 7, 8, 10])
5. horas_de_sono = np.array([7, 6, 8, 7, 9, 6])
6. exercicios_feitos = np.array([0, 1, 2, 3, 2, 1])
7. notas_do_exame = np.array([65, 75, 80, 82, 90, 95])
8. # Preparando os dados em uma matriz de características (X) e um vetor de rótulos (y)
9. X = np.column_stack((horas_de_estudo, horas_de_sono, exercicios_feitos))10. y = notas_do_exame
11. # Criar o modelo de regressão linear múltipla
12. modelo = LinearRegression()
13. # Treinar o modelo com os dados de treinamento
14. modelo.fit(X, y)
15. # Coeficientes (parâmetros) ajustados pelo modelo
16. coeficientes = modelo.coef_
17. coef_intercepto = modelo.intercept_
18. # Imprimir os coeficientes
19. print(“Coeficientes:”, coeficientes)
20. print(“Intercepto:”, coef_intercepto)
21. # Fazer previsões para novos valores
22. novos_dados = np.array([[5, 8, 1], [9, 7, 2]])
23. notas_previstas = modelo.predict(novos_dados)
24. print(“Notas previstas:”, notas_previstas)
Saída:
Coeficientes: [3.82157969 0.57299013 -0.83533145]
Intercepto: 54.74682651622003
Notas previstas: [77.60331453 91.48131171]
119
CIÊNCIA DE DADOS
Neste exemplo, estamos criando um modelo de regressão linear múltipla usando as três variáveis 
independentes: horas de estudo, horas de sono e exercícios feitos. O modelo é treinado com esses dados 
e, em seguida, o utilizamos para fazer previsões com base em novos valores de horas de estudo, horas 
de sono e exercícios feitos.
A regressão linear múltipla é utilizada em várias áreas, como economia, ciências sociais, finanças, 
saúde e muitas outras. Ela permite fazer previsões e entender a relação entre múltiplas variáveis 
independentes e uma variável dependente contínua. Ao interpretar os coeficientes do modelo, é possível 
inferir o impacto das variáveis independentes sobre a variável dependente, bem como prever com base 
nos valores das variáveis independentes.
6.5 Regressão logística
A regressão logística é um modelo estatístico utilizado para realizar análise de classificação binária, 
ou seja, para prever a probabilidade de um evento pertencer a uma das duas categorias possíveis. Apesar 
do nome “regressão”, ela é, na verdade, um modelo de classificação.
A regressão logística é especialmente útil quando a variável dependente é categórica e não contínua. 
Ela estima a probabilidade de um evento ocorrer com base em um conjunto de variáveis independentes. 
A variável dependente é binária, assumindo valores como 0 e 1, ou Verdadeiro e Falso.
O modelo de regressão logística utiliza a função logística, também conhecida como função sigmoide, 
para mapear a saída linear da combinação linear das variáveis independentes em um intervalo entre 0 e 1. 
Essa transformação permite interpretar a saída como uma probabilidade.
A equação da regressão logística é dada por:
p X X n Xn� � � � � � � �1 1 0 1 1 2 2/ ( exp( ( ... )))� � � �
Onde:
• p é a probabilidade de o evento ocorrer;
• β0, β1, β2,..., βn são os coeficientes que representam os pesos atribuídos a cada variável independente;
• X1, X2,..., Xn são as variáveis independentes.
Os coeficientes β0, β1, β2,..., βn são estimados utilizando técnicas de otimização, como a máxima 
verossimilhança, de forma a encontrar os melhores valores que maximizem a probabilidade de observar 
os dados reais.
A interpretação dos coeficientes na regressão logística é feita em termos de odds ratio. O odds ratio 
representa a mudança na razão de chances de ocorrência do evento quando uma variável independente 
aumenta em uma unidade, mantendo todas as outras variáveis constantes.
120
Unidade II
A regressão logística tem diversas aplicações em ciência de dados e análise preditiva, sendo utilizada 
em problemas de classificação, como prever se um e-mail é spam ou não, se um cliente fará uma compra 
ou não, se um paciente tem uma doença ou não, entre outros.
Além da regressão logística simples, existem variantes, como a regressão logística multinomial para 
classificação em mais de duas categorias e a regressão logística ordinal para classificação ordenada. Elas 
permitem lidar com problemas de classificação mais complexos.
Exemplo: suponha que temos um conjunto de dados que contém informações sobre alunos e 
queremos prever se um deles será aprovado (1) ou reprovado (0) com base em suas horas de estudo 
e notas em exames anteriores. Usaremos a regressão logística para construir um modelo que faça 
essa previsão.
1. import numpy as np
2. from sklearn.model_selection import train_test_split
3. from sklearn.linear_model import LogisticRegression
4. from sklearn.metrics import accuracy_score
5. # Dados de exemplo
6. horas_de_estudo = np.array([5, 1, 6, 7, 4, 9, 2, 8, 3, 10])
7. notas_exame = np.array([85, 50, 80, 90, 60, 95, 55, 92, 70, 98])
8. aprovado = np.array([1, 0, 1, 1, 0, 1, 0, 1, 0, 1])
9. # Preparando os dados em uma matriz de características (X) e um vetor de rótulos (y)
10. X = np.column_stack((horas_de_estudo, notas_exame))
11. y = aprovado
12. # Dividindo os dados em conjuntos de treinamento e teste
13. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
14. # Criar o modelo de regressão logística
15. modelo = LogisticRegression()
16. # Treinar o modelo com os dados de treinamento
17. modelo.fit(X_train, y_train)
18. # Fazer previsões para os dados de teste
19. previsoes = modelo.predict(X_test)
20. # Calcular a acurácia do modelo
21. acuracia = accuracy_score(y_test, previsoes)
22. print(“Acurácia do modelo:”, acuracia)
Saída:
Acurácia do modelo: 1.0
121
CIÊNCIA DE DADOS
Neste exemplo, estamos usando a regressão logística para classificar se um aluno será aprovado 
ou reprovado com base nas horas de estudo e nas notas em exames anteriores. O modelo é treinado 
com os dados de treinamento e, em seguida, é avaliado usando os dados de teste para calcular a 
acurácia do modelo.
A regressão logística é um método poderoso para a análise de classificação binária, permitindo 
estimar a probabilidade de um evento ocorrer com base em um conjunto de variáveis independentes. Ela 
é utilizada na prática de ciência de dados e fornece insights valiosos para a tomada de decisões.
7 PLANEJAMENTO DE EXPERIMENTOS
O planejamento de experimentos (design of experiments, DoE) é uma abordagem estatística para 
investigar e otimizar processos, sistemas ou produtos por meio de experimentos controlados. Seu objetivo 
principal é identificar fatores que afetam a resposta desejada e determinar as melhores configurações 
desses fatores para atingir os resultados desejados.
Ele envolve a seleção cuidadosa das variáveis de interesse, a definição das configurações ou níveis 
dessas variáveis e a realização de experimentos controlados para coletar os dados necessários. Esses 
experimentos são projetados de forma sistemática e eficiente, de modo a obter informações relevantes 
com o menor número possível de tentativas.
Existem vários tipos de designs de experimentos, cada um adequado para diferentes situações e 
objetivos. Alguns dos designs mais comuns incluem:
Design fatorial
Tipo de design em que todas as combinações possíveis dos níveis dos fatores são testadas. Isso 
permite investigar o efeito de cada fator individualmente, bem como as interações entre eles.
Design fracionado
Design que permite testar apenas uma fração dos possíveis tratamentos. Fato útil quando o número 
de combinações possíveis é muito grande, não sendo possível realizar todos os experimentos. O design 
fracionado possibilita a obtenção de informações úteis sobre os efeitos principais dos fatores, mas não 
a investigação de interações entre eles.
Design de blocos
Design em que os experimentos são divididos em blocos ou grupos. Em cada bloco, os tratamentos 
são atribuídos de forma aleatória. Isso é útil quando há fontes de variação não controladas que podem 
afetar os resultados, e os blocos ajudam a controlar essas variações.
122
Unidade II
Design central composto
Tipo que combina um desenho fatorial completo com pontos adicionais no centro do espaço de 
trabalho. Esses pontos permitem estimar os efeitos quadráticos dos fatores e verificar se existe uma 
região ótima de operação.
O planejamento de experimentos possibilita que os cientistas de dados e os engenheiros obtenham 
informações valiosas sobre os processos e sistemas que estão investigando. Eles podem identificar quaisfatores são mais significativos e quais têm um impacto insignificante na resposta desejada. Isso ajuda 
na tomada de decisões, na otimização de processos e na melhoria da qualidade dos produtos.
Além disso, ele auxilia na redução de custos, pois permite encontrar a melhor configuração dos 
fatores sem a necessidade de realização de muitos experimentos. Através da análise dos resultados, 
conseguimos fazer inferências estatísticas e obter insights sobre o sistema em estudo.
O planejamento de experimentos é essencial para investigar e otimizar processos, sistemas ou 
produtos, possibilitando aos cientistas de dados e aos engenheiros obter informações valiosas sobre os 
fatores que afetam uma resposta desejada e determinar as melhores configurações desses fatores para 
atingir os resultados desejados.
7.1 Split de dados – treino, teste e validação
O split de dados é uma técnica comumente usada em aprendizado de máquina para dividir o conjunto 
de dados em três partes distintas: treinamento, teste e validação. Essa divisão é realizada com o objetivo 
de avaliar e validar o desempenho do modelo de aprendizado de máquina de forma adequada. Seus 
principais itens são: conjunto de treinamento, conjunto de teste e conjunto de validação.
Conjunto de treinamento
Porção do conjunto de dados usada para treinar o modelo de aprendizado de máquina. Ele é ajustado 
com base nessas amostras de treinamento, aprendendo os padrões e as relações entre as variáveis.
Conjunto de teste
Após o treinamento do modelo, ele precisa ser avaliado em dados não vistos anteriormente para 
verificar como generaliza e se comporta em situações diferentes. O conjunto de teste é usado para medir 
o desempenho do modelo em dados independentes, ou seja, dados que o modelo não encontrou durante o 
treinamento. Isso ajuda a avaliar o quão bem ele se ajustou aos dados e a estimar sua capacidade de 
generalização.
Conjunto de validação
O conjunto de validação é usado para ajustar os hiperparâmetros do modelo. Os hiperparâmetros 
são configurações que não são aprendidas pelo modelo, mas que afetam seu desempenho, como o 
123
CIÊNCIA DE DADOS
número de camadas em uma rede neural ou a taxa de aprendizado. Ele é utilizado para avaliar diferentes 
configurações do modelo e selecionar aquela que apresenta o melhor desempenho em termos de 
métricas específicas.
Temos de ressaltar que a divisão do conjunto de dados em treinamento, teste e validação deve ser 
realizada de forma aleatória e estratificada, garantindo que as proporções das classes sejam mantidas 
em cada conjunto. Isso evita um viés nos resultados de avaliação do modelo.
Além disso, é fundamental ter um conjunto de teste e validação que represente adequadamente 
os dados futuros que o modelo encontrará. Portanto, recomenda-se que esses conjuntos sejam 
independentes e não vistos pelo modelo durante o treinamento.
O split de dados é uma prática importante para a construção e avaliação de modelos de aprendizado 
de máquina. Ele permite uma avaliação justa e imparcial do desempenho do modelo em dados não 
vistos anteriormente. Dessa forma, é possível tomar decisões informadas sobre o ajuste do modelo, 
seleção de hiperparâmetros e estimativa de sua capacidade de generalização para dados futuros.
Além do split tradicional em treinamento, teste e validação, há técnicas avançadas de divisão de dados 
que podem ser utilizadas, dependendo do contexto e dos objetivos do projeto. Alguns exemplos incluem:
Cross-validation (validação cruzada)
Técnica que permite usar todos os dados disponíveis para treinamento e avaliação do modelo. 
O conjunto de dados é dividido em k partes iguais (k-fold), e o modelo é treinado e avaliado k vezes, cada 
vez utilizando uma parte diferente como conjunto de teste e as demais como conjunto de treinamento. 
Isso ajuda a reduzir a variância da estimativa do desempenho do modelo.
Leave-one-out (LOO)
Variação do cross-validation em que k é igual ao número total de amostras no conjunto de dados. 
Ou seja, o modelo é treinado e avaliado k vezes, sendo que em cada iteração apenas uma amostra é 
usada como conjunto de teste, e as demais são utilizadas como conjunto de treinamento. Essa técnica 
pode ser útil quando o conjunto de dados é pequeno.
Time-series split (divisão de séries temporais)
Técnica usada quando os dados estão em ordem cronológica, como séries temporais. Nesse caso, é 
importante levar em consideração a dependência temporal dos dados. A divisão é realizada de forma a 
preservar a ordem temporal, na qual o conjunto de treinamento contém as amostras mais antigas e o 
conjunto de teste possui as amostras mais recentes.
124
Unidade II
Stratified sampling (amostragem estratificada)
Técnica usada quando há classes desbalanceadas no conjunto de dados. Nesse caso, a divisão dos 
dados é feita de forma a garantir que a proporção de classes seja preservada em cada conjunto. Isso evita 
viés nos resultados de avaliação, principalmente quando a classe minoritária é de interesse especial.
Cada técnica de divisão de dados tem suas vantagens e é adequada para diferentes cenários. 
A escolha da técnica a ser utilizada depende das características dos dados, do tamanho do conjunto de 
dados e dos objetivos do projeto. O objetivo principal é garantir que o modelo seja avaliado de forma 
justa e imparcial, fornecendo uma estimativa realista de seu desempenho em dados futuros.
7.2 Validação cruzada
A validação cruzada, também conhecida como cross-validation, é uma técnica utilizada na avaliação 
de modelos de aprendizado de máquina. Ela é especialmente útil quando o conjunto de dados disponível 
é limitado e é necessário obter uma estimativa mais confiável do desempenho do modelo.
Sua ideia básica é dividir o conjunto de dados em várias partes chamadas “folds”. O número de folds é 
determinado pelo parâmetro k, geralmente denotado como k-fold cross-validation. Cada fold é utilizado 
de forma alternada como conjunto de teste e conjunto de treinamento. O modelo é treinado k vezes, 
cada vez utilizando k-1 folds como conjunto de treinamento e o fold restante como conjunto de teste.
Dessa forma, todos os dados são usados tanto para treinamento quanto para teste em algum 
momento. A métrica de desempenho do modelo, como acurácia, precisão, recall ou F1-score, é calculada 
para cada iteração e, ao final, uma média é obtida a fim de representar a performance geral do modelo.
 Observação
Acurácia
A acurácia é a métrica mais simples e direta. Ela mede a proporção 
de predições corretas em relação ao total de predições. É calculada 
da seguinte forma:
Acur cia
N mero de predi corretas
Total de predi es
á
ú ções
çõ
=
A acurácia é útil quando as classes estão balanceadas, ou seja, há 
aproximadamente a mesma quantidade de exemplos de cada classe. No 
entanto, em situações de desequilíbrio de classes, a acurácia pode ser 
enganosa, pois o modelo pode ficar viciado para prever a classe majoritária.
125
CIÊNCIA DE DADOS
Precisão
A precisão é a proporção de exemplos verdadeiramente positivos 
(verdadeiros positivos) em relação a todos os exemplos classificados como 
positivos (verdadeiros positivos mais falsos positivos). Trata-se de uma 
métrica que avalia a qualidade das previsões positivas do modelo.
Precis o
Verdadeiros positivos
Verdadeiros positivos Falsos po
ã �
� ssitivos
Ela é útil quando o foco está em minimizar os falsos positivos, ou seja, 
quando prever incorretamente a classe positiva é problemático.
Recall (sensibilidade ou taxa de verdadeiros positivos)
O recall é a proporção de exemplos verdadeiramente positivos 
(verdadeiros positivos) em relação a todos os exemplos que realmente 
pertencem à classe positiva (verdadeiros positivos mais falsos negativos). 
Essa métrica é importante quando o foco está em capturar a maioria dos 
verdadeiros positivos.
Recall
Verdadeiros positivos
Verdadeiros positivos Falsos nega
�
� ttivos
F1-score
O F1-score é uma métrica que combina precisão e recall em uma 
única medida. Trata-seda média harmônica entre essas duas métricas, 
sendo especialmente útil quando desejamos encontrar um equilíbrio entre 
precisão e recall.
F Score
ecis o call
ecis o call
1 2� � �
�
Pr * Re
Pr Re
ã
ã
Ele é bastante utilizado em situações de desequilíbrio de classes, 
quando queremos levar em consideração tanto os falsos positivos quanto 
os falsos negativos.
A acurácia é uma métrica geral que pode ser enganosa em problemas 
de desequilíbrio de classes, enquanto a precisão, recall e F1-score oferecem 
insights mais detalhados sobre o desempenho do modelo em diferentes 
aspectos das previsões de classificação. A escolha da métrica depende do 
contexto e das prioridades do problema enfrentado.
126
Unidade II
A validação cruzada ajuda a mitigar o problema da variância na avaliação do modelo, pois fornece 
uma estimativa mais robusta do desempenho em relação a um único conjunto de teste. Além disso, ela 
permite uma melhor utilização dos dados disponíveis, já que todas as amostras são utilizadas tanto para 
treinamento quanto para teste em algum momento.
Existem diferentes variações da validação cruzada, como o k-fold cross-validation, leave-one-out (LOO), 
stratified cross-validation, entre outros. Cada uma delas possui características específicas e é adequada 
para diferentes situações, dependendo do tamanho do conjunto de dados, da sua natureza e da distribuição 
das classes.
Trata-se de uma técnica poderosa para avaliar a capacidade de generalização de um modelo de 
aprendizado de máquina, permitindo uma melhor estimativa do seu desempenho em dados não vistos. 
Ela é utilizada na seleção de modelos, ajuste de hiperparâmetros e comparação de diferentes abordagens 
em tarefas de classificação, regressão e outras.
Uma das variações mais comuns da validação cruzada é o k-fold cross-validation. Nela, o conjunto de 
dados é dividido em k-folds de tamanho aproximadamente igual. Cada fold é usado como conjunto 
de teste uma vez, enquanto os k-1 folds restantes são empregados como conjunto de treinamento. Esse 
processo é repetido k vezes, de forma que todos os folds tenham sido utilizados como conjunto de teste.
A métrica de desempenho do modelo é calculada para cada iteração, e a média delas é geralmente 
usada como uma estimativa do desempenho geral do modelo. Isso permite a obtenção de uma medida 
mais robusta e confiável do desempenho do modelo, pois todos os dados são utilizados tanto para 
treinamento quanto para teste.
Exemplo: vamos usar a técnica de validação cruzada k-fold, que divide o conjunto de dados em k 
subconjuntos (chamados de “folds”). O modelo é treinado k vezes, cada uma delas usando k-1 folds 
como conjunto de treinamento e o fold restante como conjunto de teste. Isso nos permite obter várias 
estimativas de desempenho e reduzir o risco de overfitting.
1. import numpy as np
2. from sklearn.model_selection import cross_val_score
3. from sklearn.linear_model import LogisticRegression
4. # Dados de exemplo
5. X = np.array([[5, 85], [1, 50], [6, 80], [7, 90], [4, 60], [9, 95], [2, 55], [8, 92], [3, 70], [10, 98]])
6. y = np.array([1, 0, 1, 1, 0, 1, 0, 1, 0, 1])
7. # Criar o modelo de regressão logística
8. modelo = LogisticRegression()
9. # Realizar validação cruzada com 5 folds
10. num_folds = 5
11. scores = cross_val_score(modelo, X, y, cv=num_folds, scoring=’accuracy’)
127
CIÊNCIA DE DADOS
12. # Imprimir as acurácias em cada fold
13. for fold, score in enumerate(scores):
14. print(f”Fold {fold + 1}: Acurácia = {score:.2f}”)
15. # Imprimir a média e o desvio padrão das acurácias
16. mean_accuracy = np.mean(scores)
17. std_accuracy = np.std(scores)
18. print(“\nMédia das Acurácias:”, mean_accuracy)
19. print(“Desvio Padrão das Acurácias:”, std_accuracy)
Saída:
Fold 1: Acurácia = 1.00
Fold 2: Acurácia = 1.00
Fold 3: Acurácia = 1.00
Fold 4: Acurácia = 1.00
Fold 5: Acurácia = 1.00
Média das Acurácias: 1.0
Desvio Padrão das Acurácias: 0.0
Neste exemplo, estamos usando a função cross_val_score do scikit-learn para realizar a validação 
cruzada. O parâmetro cv define o número de folds, e o parâmetro scoring define a métrica de avaliação 
(no caso, estamos usando a acurácia). O resultado é uma lista de acurácias obtidas em cada fold. Também 
calculamos a média e o desvio padrão das acurácias para ter uma noção da consistência do modelo.
A validação cruzada é uma técnica essencial para avaliar e comparar modelos de aprendizado 
de máquina. Ela permite uma avaliação mais precisa do desempenho do modelo em dados não 
vistos, fornecendo uma estimativa mais confiável de sua capacidade de generalização. No entanto, 
é importante saber que a validação cruzada pode ser computacionalmente intensiva, especialmente 
quando o conjunto de dados é grande, e pode levar a um tempo de treinamento mais longo. Portanto, 
é necessário considerar a capacidade computacional disponível ao escolher o número de folds e a 
abordagem adequada de validação cruzada.
7.3 Benchmarking
Benchmarking é uma prática utilizada para comparar o desempenho de um sistema, processo ou 
modelo em relação a outros similares. No contexto da ciência de dados, é frequentemente aplicado 
para avaliar o desempenho de algoritmos de aprendizado de máquina ou técnicas de processamento de 
dados em tarefas específicas.
128
Unidade II
Seu objetivo principal é fornecer uma referência ou ponto de comparação para medir o desempenho 
relativo de diferentes abordagens. Isso é importante para ajudar a identificar as melhores práticas, 
técnicas e modelos em um determinado domínio ou problema.
Existem várias etapas envolvidas no processo de benchmarking:
1. Definição do problema: primeiramente, é necessário definir claramente o problema que será 
abordado e as métricas de desempenho relevantes. Isso permite que os resultados sejam comparáveis 
e significativos.
2. Seleção de benchmarks: em seguida, são selecionados conjuntos de dados de referência 
(benchmarks) que são representativos do problema em questão. Eles devem ser bem estabelecidos e 
utilizados na comunidade científica.
3. Escolha de técnicas de referência: são selecionadas técnicas de referência, como algoritmos 
de aprendizado de máquina ou métodos de processamento de dados, que são adotados no domínio 
do problema. Essas técnicas são usadas como pontos de comparação para avaliar o desempenho de 
abordagens alternativas.
4. Execução dos experimentos: as técnicas de referência e as abordagens alternativas são 
implementadas e executadas nos benchmarks selecionados. Os resultados são registrados e comparados 
com base nas métricas de desempenho definidas.
5. Análise dos resultados: os resultados obtidos são analisados estatisticamente para identificar 
diferenças significativas de desempenho entre as variadas abordagens. Isso ajuda a reconhecer quais 
técnicas são mais eficazes ou eficientes para resolver o problema em questão.
O benchmarking é uma prática valiosa, pois fornece uma maneira sistemática de avaliar e comparar 
o desempenho de técnicas de ciência de dados. Isso permite que pesquisadores, profissionais  e 
desenvolvedores identifiquem as melhores soluções disponíveis, impulsionem a inovação e promovam 
avanços no campo da ciência de dados. Além disso, ele pode ser usado a fim de estabelecer padrões 
e referências para o desempenho de modelos e algoritmos em diferentes domínios e cenários.
Para garantir a validade dos resultados e possibilitar comparações justas, é fundamental que os 
experimentos sejam reprodutíveis. Isso significa que as mesmas condições experimentais devem ser 
aplicadas a todas as abordagens testadas, incluindo a mesma configuração de parâmetros, ambiente de 
execução e conjunto de dados.
Ao realizar benchmarking, precisamos considerar a escalabilidade das abordagens em termos de 
tamanho do conjunto de dados e recursos computacionais. Uma técnica pode funcionar bem em 
conjuntos de dados pequenos, mas pode não ser adequada para grandes volumes de dados. Portanto, é 
importante avaliar o desempenho em diferentesescalas para ter uma visão completa.
129
CIÊNCIA DE DADOS
Embora os benchmarks sejam úteis para comparar o desempenho relativo de diferentes abordagens 
em um conjunto de dados específico, é essencial considerar a generalização para outros conjuntos de 
dados e cenários. Uma abordagem que funciona bem em um benchmark específico pode não ser a 
melhor escolha em diferentes contextos. Portanto, temos de avaliar a capacidade de generalização delas.
O benchmarking não é um processo estático. À medida que novas técnicas e abordagens surgem, 
precisamos atualizar os benchmarks e reavaliar o desempenho das técnicas de referência. Isso permite 
acompanhar os avanços e identificar novas soluções promissoras.
A fim de promover a transparência e a colaboração na comunidade científica, encoraja-se o 
compartilhamento dos resultados do benchmarking. Isso pode ser feito por meio de publicações 
científicas, repositórios de código e conjuntos de dados de referência. Dessa forma, outros pesquisadores 
e profissionais podem se beneficiar dos insights e conhecimentos obtidos.
O benchmarking autoriza avaliação e comparação objetiva de diferentes abordagens. Ele auxilia 
na seleção e no desenvolvimento de modelos e técnicas mais eficientes e precisas. Ao seguir as boas 
práticas de benchmarking, conseguimos tomar decisões informadas, impulsionar a inovação e avançar 
no campo da ciência de dados.
8 ANÁLISE DE RESULTADOS EXPERIMENTAIS E APLICAÇÕES AVANÇADAS DE ML
Análise de resultados experimentais é uma fase fundamental em projetos de ciência de dados e 
aprendizado de máquina. Após a realização de experimentos e a obtenção de resultados, precisamos 
interpretar e analisar os dados para extrair informações relevantes e tomar decisões embasadas. Além 
disso, existem aplicações avançadas de aprendizado de máquina que vão além das técnicas tradicionais 
e exploram métodos mais sofisticados e complexos. Neste contexto, abordaremos esses dois tópicos.
Análise de resultados experimentais
• Avaliação de desempenho: os resultados experimentais precisam ser avaliados em relação às 
métricas de desempenho definidas previamente. Isso pode incluir medidas como acurácia, precisão, 
recall, F1-score, entre outras, dependendo do tipo de problema. A análise de desempenho permite 
determinar quão bem o modelo se saiu na tarefa proposta.
• Interpretação dos resultados: a análise dos resultados possibilita entender o comportamento do 
modelo e identificar padrões e insights relevantes. Pode envolver a identificação de características 
importantes, a análise de erros cometidos pelo modelo e a compreensão das relações entre os 
atributos do conjunto de dados.
• Validação estatística: a realização de testes estatísticos para verificar a significância dos 
resultados obtidos é importante. Isso ajuda a evitar conclusões equivocadas e a fornecer uma 
base estatística sólida para as análises realizadas.
130
Unidade II
Aplicações avançadas de aprendizado de máquina
• Aprendizado profundo (deep learning): área avançada de aprendizado de máquina que utiliza 
redes neurais artificiais profundas para aprender representações complexas e realizar tarefas 
sofisticadas, como processamento de imagens, reconhecimento de fala e tradução automática.
• Aprendizado por reforço (reinforcement learning): técnica que permite que um agente aprenda 
a tomar decisões em um ambiente dinâmico, recebendo feedback em forma de recompensas. 
É aplicado em problemas de tomada de decisão, como jogos, controle de robôs e otimização 
de recursos.
• Aprendizado semissupervisionado: esta abordagem combina elementos de aprendizado 
supervisionado e não supervisionado, permitindo o uso de uma pequena quantidade de dados 
rotulados e uma grande quantidade de dados não rotulados. É útil quando rotular dados for caro 
ou demorado, mas há disponibilidade de muitos dados não rotulados.
• Aprendizado por transferência (transfer learning): envolve o aproveitamento de conhecimentos 
adquiridos em uma tarefa para auxiliar o aprendizado em outra tarefa relacionada. É útil quando 
há escassez de dados na tarefa atual, pois permite que o modelo aproveite informações de 
tarefas anteriores.
• Aprendizado online: refere-se à capacidade de aprender e atualizar modelos continuamente à 
medida que novos dados são recebidos em tempo real. É aplicado em cenários nos quais os dados 
estão em constante mudança e é necessário adaptar-se rapidamente a novas informações.
Essas são apenas algumas das aplicações avanças de aprendizado de máquina que vão além das 
técnicas tradicionais. Existem muitas outras técnicas e abordagens avançadas, cada uma com suas 
características e aplicabilidades específicas. Além disso, devemos mencionar que as aplicações avançadas 
de aprendizado de máquina geralmente exigem conjuntos de dados maiores, recursos computacionais 
mais poderosos e maior conhecimento técnico para implementação e ajuste adequado dos modelos.
No campo da medicina, o aprendizado de máquina tem sido aplicado para auxiliar no diagnóstico 
médico, prever riscos de doenças, identificar padrões em grandes conjuntos de dados clínicos e apoiar a 
descoberta de novas terapias. No setor financeiro, é usado para análise de crédito, detecção de fraudes, 
previsão de mercado, análise de risco e otimização de investimentos. Na indústria, o aprendizado de 
máquina é aplicado para otimizar processos de produção, prever falhas em equipamentos, realizar 
manutenção preditiva, melhorar a qualidade dos produtos e otimizar a cadeia de suprimentos. No campo 
do marketing, é utilizado para análise de sentimentos, segmentação  de clientes, recomendação de 
produtos, personalização de campanhas de marketing e previsão de demanda. No setor de transporte e 
logística, o aprendizado de máquina é empregado para otimizar rotas, prever a demanda de transporte, 
melhorar a eficiência da cadeia de suprimentos e realizar previsões de manutenção de veículos.
Essas são apenas algumas das muitas aplicações avançadas de aprendizado de máquina que têm 
impactado diversos setores. À medida que a tecnologia continua a evoluir e mais dados se tornam 
131
CIÊNCIA DE DADOS
disponíveis, novas oportunidades surgem para aplicar técnicas de aprendizado de máquina e obter 
insights valiosos a fim de tomar decisões informadas e impulsionar a inovação em diferentes áreas.
8.1 Métricas
As métricas desempenham um papel fundamental na avaliação e no monitoramento de modelos 
de aprendizado de máquina. Elas são medidas quantitativas que nos permitem avaliar o desempenho 
e a qualidade dos modelos, comparar diferentes abordagens e tomar decisões informadas sobre sua 
eficácia. Existem várias métricas que podem ser usadas, dependendo do tipo de problema e do objetivo 
específico. Vamos discutir algumas das mais comuns no contexto de aprendizado de máquina:
Matriz de confusão (confusion matrix)
A matriz de confusão é uma ferramenta que permite visualizar o desempenho de um modelo 
de classificação em mais detalhes. Ela mostra a contagem de verdadeiros positivos, falsos positivos, 
verdadeiros negativos e falsos negativos. Com base nessa matriz, várias métricas adicionais podem 
ser calculadas, como sensibilidade (recall), especificidade, taxa de falsos positivos e taxa de 
falsos negativos.
Exemplo: suponha que temos um problema de classificação binária, no qual estamos tentando 
prever se um paciente tem uma determinada doença (classe positiva) ou não (classe negativa) com base 
em um teste médico. Vamos usar os termos “Doente” (classe positiva) e “Saudável” (classe negativa).
Aqui está uma possível matriz de confusão:
Tabela 1 
Doente previsto Saudável previsto
Doente 85 (VP) 15 (FN)
Saudável 10 (FP) 90 (VN)
Nesta matriz de confusão:
• Verdadeiro positivo (VP): 85 pacientes foram corretamente classificados como “Doentes”.
• Falso negativo (FN): 15 pacientes foram erroneamente classificados como “Saudáveis”, mas na 
verdade estão “Doentes”.
• Falso positivo (FP): 10 pacientes foram erroneamente classificadoscomo “Doentes”, mas na 
verdade estão “Saudáveis”.
• Verdadeiro negativo (VN): 90 pacientes foram corretamente classificados como “Saudáveis”.
132
Unidade II
Com base nessa matriz de confusão, podemos calcular várias métricas de avaliação. Além disso, ela 
fornece insights importantes sobre como o modelo se comporta em relação a cada classe, ajudando 
a identificar em quais situações o modelo está tendo mais dificuldade e ajustando estratégias para 
melhorar o desempenho do modelo.
Acurácia (accuracy)
A acurácia é uma métrica utilizada em problemas de classificação. Ela mede a taxa de acertos do 
modelo, ou seja, a proporção de instâncias classificadas corretamente em relação ao total de instâncias. 
Por exemplo: se o modelo faz 100 previsões e acerta 75 delas, sua acurácia é de 75%.
Acuracia
VP VN
VP VN FP FN
�
�
� � �
Precisão (precision) e sensibilidade (recall)
Essas métricas são particularmente úteis quando lidamos com problemas de classificação 
desbalanceados, ou seja, quando as classes têm tamanhos diferentes. A precisão mede a proporção de 
instâncias positivas corretamente identificadas em relação ao total de instâncias classificadas como 
positivas. Já a sensibilidade mede a proporção de instâncias positivas corretamente identificadas em 
relação ao total de instâncias positivas.
Precis o
VP
VP FP
ã �
�
Recall
VP
VP FN
�
�
F1-score
O F1-score é uma métrica que combina a precisão e a recall em uma única medida. Ele fornece 
uma média harmônica entre as duas métricas, levando em consideração tanto os verdadeiros positivos 
quanto os falsos negativos e falsos positivos. O F1-score é útil quando se deseja obter um equilíbrio 
entre precisão e recall.
F Score
ecis o
ecis o
1 2� � �
�
�
Pr
Pr
ã Recall
ã Recall
Erro quadrático médio (mean squared error – MSE)
O MSE é uma métrica comumente usada em problemas de regressão. Ele mede a média dos erros 
quadrados entre os valores preditos e os valores reais. Quanto menor o valor do MSE, mais próximos os 
valores preditos estão dos valores reais.
133
CIÊNCIA DE DADOS
Coeficiente de determinação (R²)
O coeficiente de determinação é uma métrica utilizada para avaliar o quão bem o modelo se ajusta 
aos dados em um problema de regressão. Ele varia de 0 a 1, onde 0 indica que o modelo não consegue 
explicar a variabilidade dos dados e 1 que o modelo se ajusta perfeitamente aos dados.
Além dessas métricas, existem aquelas que podem ser utilizadas dependendo do contexto e do 
problema específico, como a área sob a curva ROC (AUC-ROC), o índice Jaccard, a entropia cruzada, 
entre outras. É importante selecionar as métricas adequadas de acordo com o problema em questão. 
Além disso, temos de considerar o contexto do problema, a distribuição dos dados e os requisitos 
específicos do projeto.
A curva ROC (receiver operating characteristic) é uma ferramenta que avalia o desempenho de um 
modelo de classificação binária variando o limiar de decisão do modelo e traçando a taxa de verdadeiros 
positivos (recall) em função da taxa de falsos positivos. Consta a seguir o exemplo de como criar uma 
curva ROC usando a biblioteca scikit-learn em Python:
1. import numpy as np
2. import matplotlib.pyplot as plt
3. from sklearn.datasets import make_classification
4. from sklearn.model_selection import train_test_split
5. from sklearn.ensemble import RandomForestClassifier
6. from sklearn.metrics import roc_curve, auc
7. # Gerar dados de exemplo
8. X, y = make_classification(n_samples=1000, n_features=20, random_state=42)
9. # Dividir os dados em conjuntos de treinamento e teste
10. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
11. # Criar o modelo Random Forest
12. modelo = RandomForestClassifier(n_estimators=100, random_state=42)
13. # Treinar o modelo com os dados de treinamento
14. modelo.fit(X_train, y_train)
15. # Obter as probabilidades previstas para a classe positiva
16. probs = modelo.predict_proba(X_test)[:, 1]
17. # Calcular a curva ROC
18. fpr, tpr, thresholds = roc_curve(y_test, probs)
134
Unidade II
19. # Calcular a área sob a curva ROC (AUC)
20. roc_auc = auc(fpr, tpr)
21. # Plotar a curva ROC
22. plt.figure(figsize=(10, 6))
23. plt.plot(fpr, tpr, color=’darkorange’, lw=2, label=f’Curva ROC (AUC = {roc_auc:.2f})’)
24. plt.plot([0, 1], [0, 1], color=’navy’, lw=2, linestyle=’--’)
25. plt.xlim([0.0, 1.0])
26. plt.ylim([0.0, 1.05])
27. plt.xlabel(‘Taxa de Falsos Positivos’)
28. plt.ylabel(‘Taxa de Verdadeiros Positivos’)
29. plt.title(‘Curva ROC - Exemplo com Random Forest’)
30. plt.legend(loc=”lower right”)
31. plt.show()
Saída:
1.0
1.0
0.8
0.8
0.6
0.6
0.4
0.4
Taxa de falsos positivos
Ta
xa
 d
e 
ve
rd
ad
ei
ro
s p
os
iti
vo
s
Curva ROC - Exemplo com random forest
0.2
0.2
0.0
0.0
Curva ROC (AUC = 0.94) 
Figura 21
Neste exemplo, estamos gerando dados de exemplo usando make_classification, dividindo-os em 
conjuntos de treinamento e teste, e criando um modelo RandomForestClassifier com 100 estimadores. 
Em seguida, calculamos a curva ROC e a área sob a curva ROC (AUC) e plotamos a curva ROC usando a 
biblioteca matplotlib. Quanto mais próxima a curva ROC estiver do canto superior esquerdo do gráfico 
e maior for a AUC, melhor o modelo estará em equilibrar a taxa de verdadeiros positivos e a taxa 
135
CIÊNCIA DE DADOS
de falsos positivos em diferentes limiares de decisão. A curva ROC é uma ferramenta valiosa para 
avaliar a capacidade discriminativa de um modelo de classificação e comparar diferentes modelos 
ou configurações.
As métricas de avaliação são essenciais para monitorar o desempenho do modelo ao longo do tempo, 
comparar diferentes modelos e ajustar hiperparâmetros. Uma única métrica pode não ser suficiente 
para avaliar completamente o desempenho do modelo, por isso recomenda-se considerar várias delas 
em conjunto a fim de obter uma visão abrangente.
Além das métricas de avaliação, é comum utilizar técnicas de validação cruzada e testes estatísticos 
para avaliar a robustez e a significância estatística dos resultados obtidos pelo modelo.
As métricas são ferramentas importantes para avaliar a eficácia e o desempenho dos modelos de 
aprendizado de máquina. Elas nos ajudam a tomar decisões informadas sobre a escolha do modelo, 
ajuste de parâmetros e avaliação do impacto das alterações. É fundamental entender o contexto e as 
necessidades específicas do problema para selecionar as métricas mais adequadas.
8.2 Classificação
A classificação é uma tarefa fundamental em aprendizado de máquina, que envolve a categorização de 
dados em classes ou categorias predefinidas. Trata-se de um problema comum em diversas áreas, como 
reconhecimento de padrões, processamento de linguagem natural, diagnóstico médico, detecção 
de fraudes, entre outros.
Seu objetivo é treinar um modelo capaz de aprender um padrão a partir de um conjunto de dados 
de treinamento rotulados, para que possa classificar corretamente novos dados não rotulados. O modelo 
classificador recebe como entrada um conjunto de características (features) e atribui a cada instância 
uma classe específica.
Existem diferentes algoritmos de classificação, cada um com suas características e suposições 
subjacentes. Alguns dos mais comuns incluem:
Árvores de decisão
As árvores de decisão são estruturas hierárquicas que representam decisões baseadas em condições. 
Elas dividem o conjunto de dados com base em atributos, criando regras de decisão que permitem 
classificar as instâncias.
Exemplo: suponha que estamos trabalhando com um conjunto de dados fictício para prever se um 
animal é um “Cachorro” ou “Gato” com base em suas características.
136
Unidade II
1. import numpy as np
2. from sklearn.datasets import make_classification
3. from sklearn.model_selection import train_test_split
4. from sklearn.tree import DecisionTreeClassifier
5. from sklearn import tree
6. import matplotlib.pyplot as plt
7. # Gerar dados de exemplo
8. X, y = make_classification(n_samples=300, n_features=2,n_informative=2, n_redundant=0, n_
clusters_per_class=1, random_state=42)
9. # Dividir os dados em conjuntos de treinamento e teste
10. X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=0.2, random_state=42)
11. # Criar o modelo de Árvore de Decisão
12. modelo = DecisionTreeClassifier(random_state=42)
13. # Treinar o modelo com os dados de treinamento
14. modelo.fit(X_train, y_train)
15. # Visualizar a Árvore de Decisão
16. plt.figure(figsize=(10, 6))
17. tree.plot_tree(modelo, feature_names=[‘Característica 1’, ‘Característica 2’], class_names=[‘Cachorro’, 
‘Gato’], filled=True)
18. plt.title(“Árvore de Decisão”)
19. plt.show()
20. # Fazer previsões para os dados de teste
21. previsoes = modelo.predict(X_test)
22. # Calcular a acurácia do modelo
23. acuracia = np.mean(previsoes == y_test)
24. print(“Acurácia do modelo:”, acuracia)
137
CIÊNCIA DE DADOS
Saída:
Característica 2 <= 0.215 
gini = 0.5 
samples = 240 
value = [121, 119] 
class = Cachorro
Característica 1 <= 1.729 
gini = 0.236 
samples = 139 
value = [120, 19] 
class = Cachorro
Característica 1 <= 1.504 
gini = 0.375 
samples = 4 
value = [1, 3] 
class = Gato 
Característica 2 <= 0.398 
gini = 0.278 
samples = 18 
value = [15, 3] 
class = Cachorro
Característica 1 <= 1.286 
gini = 0.408 
samples = 7 
value = [5, 2] 
class = Cachorro 
Característica 1 <= 1.341 
gini = 0.208 
samples = 17 
value = [15, 2] 
class = Cachorro
Característica 1 <= 1.064 
gini = 0.408 
samples = 21 
value = [15, 6] 
class = Cachorro
Característica 2 <= 1.353 
gini = 0.02 
samples = 101 
value = [1, 100] 
class = Gato
Característica 2 <= 0.404 
gini = 0.104 
samples = 127 
value = [120, 7] 
class = Cachorro
Característica 1 <= 0.962 
gini = 0.019 
samples = 127 
value = [105, 1] 
class = Cachorro
Característica 1 <= 0.966 
gini = 0.043 
samples = 46 
value = [45, 1] 
class = Cachorro 
gini = 0.0 
samples = 60 
value = [60, 0] 
class = Cachorro
gini = 0.0 
samples = 1 
value = [0, 1] 
class = Gato
gini = 0.0 
samples = 45 
value = [45, 0] 
class = Cachorro
gini = 0.0 
samples = 5 
value = [5, 0] 
class = Cachorro 
gini = 0.0 
samples = 2 
value = [0, 2] 
class = Gato 
gini = 0.0 
samples = 1 
value = [0, 1] 
class = Gato
gini = 0.0 
samples = 3 
value = [0, 3] 
class = Gato 
gini = 0.0 
samples = 12 
value = [0, 12] 
class = Gato 
gini = 0.0 
samples = 3 
value = [0, 3] 
class = Gato 
gini = 0.0 
samples = 97 
value = [0, 97] 
class = Gato 
gini = 0.0 
samples = 1 
value = [1, 0] 
class = Cachorro 
gini = 0.0 
samples = 10 
value = [10, 0] 
class = Cachorro
Àrvore de decisão
Figura 22 
Neste exemplo, estamos usando make_classification para gerar um conjunto de dados fictício com 
duas características (características 1 e 2). Dividimos os dados em conjuntos de treinamento e teste, 
criando um modelo de árvore de decisão com DecisionTreeClassifier, treinando o modelo com os dados 
de treinamento e visualizando a árvore resultante usando tree.plot_tree. Em seguida, fizemos previsões 
para os dados de teste e calculamos a acurácia do modelo. Esta é uma implementação simplificada para 
138
Unidade II
fins de demonstração. Em problemas reais, devemos ajustar os parâmetros do modelo, realizar validação 
cruzada e realizar outras etapas de pré-processamento de dados a fim de obter uma avaliação mais 
precisa do desempenho do modelo.
 Observação
O índice de Gini é uma métrica usada para medir a desigualdade em 
uma distribuição. No contexto da classificação de árvores de decisão, ele 
é usado para avaliar a impureza de um conjunto de exemplos em relação 
às suas classes, sendo uma das métricas empregadas para tomar decisões 
sobre como dividir os dados em um nó da árvore de decisão.
O índice de Gini varia de 0 a 1, onde:
• 0 representa perfeita igualdade, ou seja, todos os elementos 
pertencem à mesma classe;
• 1 representa máxima desigualdade, ou seja, os elementos estão 
igualmente distribuídos entre todas as classes possíveis.
Naive Bayes
O algoritmo Naive Bayes é baseado no Teorema de Bayes e assume que as características são 
independentes entre si. Ele calcula a probabilidade de cada classe para uma instância e seleciona aquela 
com maior probabilidade.
K-vizinhos mais próximos (KNN)
O KNN classifica as instâncias com base na maioria das classes dos seus k-vizinhos mais próximos. 
A distância entre as instâncias é calculada e os k-vizinhos mais próximos são selecionados para tomar 
a decisão de classificação.
Máquinas de vetores de suporte (SVM)
As SVM são algoritmos de aprendizado supervisionado que encontram um hiperplano de separação 
ótimo entre as classes. Elas mapeiam os dados em um espaço de alta dimensionalidade e buscam a 
melhor separação linear ou não linear.
Redes neurais artificiais
As redes neurais artificiais são modelos inspirados no funcionamento do cérebro humano. Elas são 
compostas de camadas de neurônios interconectados e aprendem a partir dos dados por meio do ajuste 
dos pesos das conexões.
139
CIÊNCIA DE DADOS
 Saiba mais
A fim de compreender melhor acerca do funcionamento dos algoritmos 
de classificação, recomendamos a leitura do seguinte livro:
MUELLER, J. P.; MASSARON, L. Python para Data Science para Leigos. Rio de 
Janeiro: Alta Books, 2020. E-book. Disponível em: https://tinyurl.com/mt8mbft2. 
Acesso em: 18 ago. 2023.
Cada algoritmo tem suas vantagens e desvantagens, e a escolha do melhor depende do conjunto 
de dados, da natureza do problema e do desempenho desejado. Além disso, é importante realizar uma 
análise aprofundada dos dados, pré-processar os dados de forma adequada e realizar uma validação 
rigorosa do modelo para garantir sua eficácia e generalização.
A classificação é uma técnica poderosa que permite automatizar a tarefa de categorização de dados, 
facilitando a tomada de decisões em diversos domínios. Com o avanço da tecnologia e o aumento da 
disponibilidade de dados, os modelos de classificação têm se tornado mais sofisticados e precisos.
8.3 Regressão
A regressão é uma técnica estatística utilizada em aprendizado de máquina para modelar a relação 
entre uma variável de resposta (ou variável dependente) e um conjunto de variáveis explicativas (ou 
variáveis independentes). Seu objetivo é encontrar um modelo matemático que possa descrever e prever 
o valor da variável de resposta com base nas variáveis explicativas.
Ela é comumente aplicada quando a variável de resposta é uma quantidade contínua, como a 
temperatura, o preço de um produto, o tempo de resposta etc., possibilitando o entendimento da relação 
entre as variáveis e a realização de previsões sobre o comportamento da variável de resposta para diferentes 
valores das variáveis explicativas.
Existem diferentes tipos de regressão, sendo os mais comuns:
• Regressão linear simples: assume-se que a relação entre a variável de resposta e a variável 
explicativa é linear. O modelo consiste em encontrar a linha reta que melhor se ajusta aos pontos 
de dados no espaço bidimensional.
• Regressão linear múltipla: é uma extensão da regressão linear simples para casos em que há 
mais de uma variável explicativa. O modelo busca encontrar um hiperplano que se ajuste aos 
dados no espaço multidimensional.
140
Unidade II
• Regressão logística: é usada quando a variável de resposta é categórica e binária, ou seja, possui 
apenas duas categorias. Ela modela a relação entre as variáveis explicativas e a probabilidade de 
ocorrência de uma determinada categoria.
• Regressão polinomial: permite modelar relacionamentos não lineares entre as variáveis, incluindo 
termos polinomiais de graus superiores. Ela é útil quando a relação entre as variáveis não pode ser 
adequadamente descrita por uma linha reta ou um hiperplano.
• Regressão de séries temporais: é empregada quando a variável de resposta é uma série temporal, 
ou seja, uma sequência de observações em ordem cronológica. Ela busca modelar a tendência, 
sazonalidade e outros padrões presentes nos dados ao longo do tempo.Saiba mais
Com o objetivo de aprender mais sobre regressão, recomendamos os 
capítulos 14, 15 e 16 do seguinte livro:
GRUS, J. Data science do zero: primeiras regras com Python. Rio de 
Janeiro: Alta Books, 2016.
A escolha do modelo de regressão adequado depende da natureza dos dados, do objetivo da análise 
e das suposições subjacentes ao modelo. É importante avaliar a qualidade do ajuste do modelo por 
meio de métricas como o coeficiente de determinação (R²), o erro médio quadrático (RMSE) e o desvio 
padrão residual.
A regressão é utilizada em diversos campos, como economia, finanças, ciências sociais, ciências 
naturais, saúde, entre outros. Ela permite compreender e quantificar as relações entre as variáveis e 
fornecer insights valiosos para a tomada de decisões, previsões e inferências.
A regressão pode ser usada para prever as vendas de produtos com base em variáveis como preço, 
publicidade, concorrência e outras métricas de mercado. Isso permite que as empresas estimem a 
demanda futura e otimizem suas estratégias de estoque, produção e marketing. Podemos empregá-la 
para analisar e entender os padrões de mercado, identificar tendências, relacionamentos entre variáveis 
e fatores que influenciam o comportamento do consumidor. Isso ajuda as empresas a tomar decisões 
informadas sobre posicionamento de produtos, segmentação de mercado e estratégias de preço.
Pode também ser empregada para prever o preço de imóveis com base em características como 
tamanho, localização, número de quartos etc. Isso auxilia compradores, vendedores e corretores de imóveis 
a tomar decisões de compra, venda ou investimento, bem como na modelagem de risco financeiro a fim 
de prever o desempenho de investimentos, estimar a probabilidade de inadimplência em empréstimos, 
analisar o impacto de variáveis econômicas nas taxas de juros e outros indicadores financeiros.
141
CIÊNCIA DE DADOS
Ainda é usada para prever a demanda de produtos ou serviços com base em dados históricos 
de vendas, fatores sazonais, atividades promocionais e outros fatores relevantes, o que possibilita 
às empresas otimizarem sua cadeia de suprimentos, estoques e planejamento de produção. É muito 
aplicada em estudos médicos e de saúde para modelar a relação entre variáveis como idade, sexo, estilo 
de vida, histórico médico e risco de doenças, taxa de recuperação de pacientes e outros resultados de 
saúde. Isso auxilia na identificação de fatores de risco e no desenvolvimento de estratégias de prevenção 
e tratamento.
Por fim, a regressão pode ser utilizada para prever a demanda de energia com base em variáveis 
climáticas, padrões de consumo, dias da semana e outras influências. Isso ajuda empresas de energia a 
planejar e gerenciar a produção e distribuição de energia de forma eficiente.
Essas são apenas algumas das muitas aplicações da regressão. A técnica é extremamente versátil e 
pode ser adaptada para atender às necessidades específicas de diferentes setores e problemas. Através da 
análise de dados e modelagem estatística, ela desempenha um papel fundamental na tomada de decisões 
informadas, previsões precisas e compreensão das relações entre variáveis em diversas áreas de estudo.
8.4 Seleção de modelos
A seleção de modelos consiste em escolher o modelo mais apropriado que melhor se ajusta aos dados 
e é capaz de realizar as tarefas desejadas, como previsão ou classificação, de forma precisa e confiável. 
Ela é crucial para garantir resultados exatos e evitar problemas como overfitting ou underfitting.
Existem várias técnicas e abordagens para a seleção de modelos. Alguns métodos comuns incluem:
• Avaliação por critérios estatísticos: envolve o uso de métricas estatísticas para comparar 
diferentes modelos. Por exemplo, pode-se usar o critério de informação de Akaike (AIC) ou o critério 
de informação bayesiano (BIC) a fim de avaliar a qualidade do ajuste de cada modelo. Modelos 
com valores mais baixos de AIC ou BIC são preferidos, indicando um melhor ajuste aos dados.
• Validação cruzada: é uma técnica que divide os dados em conjuntos de treinamento e teste, 
permitindo avaliar o desempenho do modelo em dados não utilizados durante o treinamento. 
Através da comparação do desempenho dos modelos em diferentes conjuntos de dados de teste, 
podemos identificar aquele que generaliza melhor.
• Curva de validação: é uma técnica que envolve a avaliação do desempenho do modelo em 
relação a diferentes configurações de hiperparâmetros. Ela ajuda a identificar o ponto ideal 
em que o modelo atinge o melhor equilíbrio entre viés e variância. Isso é especialmente útil 
quando se trabalha com modelos que possuem hiperparâmetros ajustáveis, como algoritmos de 
aprendizado de máquina.
• Comparação de métricas de desempenho: pode também ser baseada na comparação de 
métricas de desempenho, como acurácia, precisão, recall ou erro quadrático médio. Dependendo 
142
Unidade II
da tarefa em questão, diferentes métricas podem ser relevantes. A escolha do modelo é feita com 
base na métrica que melhor atende às necessidades e objetivos do projeto.
• Abordagens automatizadas: é possível ainda utilizar algoritmos de seleção de modelos 
automatizados, como busca em grade, busca aleatória ou otimização bayesiana. Essas abordagens 
exploram diferentes combinações de hiperparâmetros e técnicas de modelagem para encontrar o 
modelo com melhor desempenho em termos de métricas predefinidas.
Precisamos ressaltar que a seleção de modelos é um processo iterativo, e diferentes abordagens 
podem ser combinadas para a obtenção de resultados mais robustos. Além disso, é fundamental 
considerar o contexto específico do problema, o tamanho e a qualidade dos dados disponíveis, bem 
como as restrições de recursos computacionais.
A seleção de modelos é uma etapa crítica na construção de modelos do aprendizado de máquina e 
envolve a comparação e avaliação de diferentes opções para encontrar o modelo mais adequado para 
uma tarefa específica. A escolha correta do modelo contribui para a obtenção de resultados precisos 
e confiáveis, permitindo a utilização eficaz do modelo na tomada de decisões e na solução de problemas. 
A seleção de modelos envolve a consideração de critérios estatísticos, como AIC e BIC, a aplicação 
de técnicas de validação cruzada, a análise de curvas de validação e a comparação de métricas de 
desempenho relevantes.
Além disso, é importante considerar fatores como a interpretabilidade do modelo, a escalabilidade 
computacional, a disponibilidade de recursos e restrições específicas do problema. Por exemplo, em 
alguns casos, modelos mais simples e interpretativos, como regressão linear, podem ser preferíveis se 
a explicabilidade dos resultados é fundamental. Em outros, como em problemas de processamento de 
linguagem natural, podem ser necessários modelos mais complexos, como redes neurais.
A seleção de modelos também pode envolver a avaliação de diferentes técnicas de aprendizado de 
máquina, como árvores de decisão, regressão logística, SVM (support vector machines), redes neurais, 
entre outras. Cada técnica tem suas vantagens e desvantagens, e a escolha depende do tipo de problema, 
dos dados disponíveis e das metas do projeto.
Ressaltamos que a seleção de modelos não é uma tarefa única e definitiva. À medida que novos dados 
são coletados e o problema evolui, recomenda-se revisar e ajustar a escolha do modelo, garantindo que 
ele permaneça adequado e eficiente. O acompanhamento contínuo do desempenho do modelo e a 
atualização das técnicas e algoritmos utilizados são práticas essenciais na seleção de modelos.
A seleção de modelos é uma etapa crucial na construção de soluções baseadas em aprendizado 
de máquina. Ela envolve a avaliação e comparação de diferentes modelos, técnicas e métricas de 
desempenho, levando em consideração o contexto do problema, as características dos dados e as 
necessidades do projeto. Uma seleção cuidadosa e criteriosa permite obter resultados confiáveis e 
maximizar o potencial da aplicaçãode aprendizado de máquina.
143
CIÊNCIA DE DADOS
8.5 Visão computacional
Visão computacional é uma área da ciência da computação que se dedica ao desenvolvimento de 
algoritmos e técnicas para permitir que computadores “enxerguem” e compreendam imagens e vídeos. 
Ela busca replicar a capacidade de percepção visual humana por meio da análise e interpretação 
de dados visuais.
Ela envolve o processamento de imagens e vídeos para extrair informações relevantes e realizar tarefas 
como reconhecimento de objetos, detecção de padrões, segmentação de imagens, reconhecimento 
facial, entre outras, desempenha um papel fundamental em diversas aplicações práticas, como sistemas 
de vigilância, veículos autônomos, detecção médica, reconhecimento de caracteres em documentos, 
realidade aumentada e muito mais.
Para realizar essas tarefas, a visão computacional se baseia em algoritmos e técnicas de processamento 
de imagens e aprendizado de máquina. Alguns dos conceitos e técnicas comumente utilizados na visão 
computacional incluem:
• Pré-processamento de imagens: envolve a aplicação de técnicas de filtragem, suavização, 
equalização de histograma e normalização para melhorar a qualidade e o contraste das imagens 
antes da análise.
• Extração de características: consiste em identificar e extrair características relevantes das 
imagens que são úteis para a tarefa em questão, como bordas, texturas, cores ou formas.
• Segmentação de imagens: é o processo de dividir uma imagem em regiões significativas e 
identificar objetos ou áreas de interesse com base em propriedades como cor, intensidade ou textura.
• Reconhecimento de padrões: inclui a identificação e classificação de objetos ou padrões 
específicos em imagens com base em características previamente aprendidas.
• Aprendizado de máquina em visão computacional: usa-se frequentemente para treinar 
modelos capazes de reconhecer objetos ou realizar tarefas de classificação em imagens nos 
algoritmos de aprendizado de máquina, como redes neurais convolucionais (CNNs).
A visão computacional também pode ser combinada com outras tecnologias, como processamento 
de linguagem natural (PLN) e realidade aumentada (RA), para criar sistemas mais avançados e interativos.
No entanto, a visão computacional ainda enfrenta desafios, como a variação de iluminação, a 
complexidade das cenas, a oclusão de objetos e a necessidade de grandes conjuntos de dados rotulados 
para treinamento adequado dos modelos.
Trata-se de uma área multidisciplinar que utiliza técnicas de processamento de imagens e aprendizado 
de máquina para capacitar os computadores a interpretar e compreender informações visuais. Ela tem 
144
Unidade II
aplicações amplas e promissoras em diversos setores, trazendo avanços significativos na automação, 
segurança, saúde, entretenimento e outras áreas.
8.6 Processamento de linguagem natural
Processamento de linguagem natural (PLN) é uma área da inteligência artificial que se dedica ao 
estudo e desenvolvimento de algoritmos e técnicas para permitir que computadores compreendam, 
analisem e gerem linguagem humana de forma natural. Seu objetivo é possibilitar a interação entre 
humanos e máquinas por meio da linguagem escrita ou falada.
O PLN envolve uma série de tarefas complexas, como reconhecimento de fala, compreensão  de 
texto, tradução automática, sumarização de textos, geração de texto, resposta a perguntas, análise 
de sentimentos, entre outras. Ele lida com a ambiguidade, a variação linguística, a semântica e a estrutura 
da linguagem humana.
Existem diferentes etapas envolvidas no processamento de linguagem natural. Algumas delas incluem:
1. Pré-processamento: nesta etapa, o texto é preparado para análise, envolvendo a remoção de 
pontuações, a tokenização (divisão do texto em palavras ou unidades menores), a remoção de stopwords 
(palavras não significativas) e a lematização (redução das palavras às suas formas básicas).
2. Análise morfológica: é a identificação e categorização das palavras em termos de sua estrutura 
gramatical, como substantivos, verbos, adjetivos etc. Isso ajuda a compreender as relações entre 
as palavras.
3. Análise sintática: envolve a análise da estrutura gramatical das frases, identificando a relação 
entre as palavras e a hierarquia gramatical.
4. Análise semântica: é a compreensão do significado das palavras, das relações semânticas entre 
elas e a interpretação do contexto em que são usadas.
5. Análise pragmática: considera o contexto e o conhecimento prévio para interpretar 
adequadamente a linguagem. Isso envolve a inferência de informações implícitas, conhecimento de 
mundo e intenções do autor.
6. Geração de texto: é a capacidade de criar texto de forma automática, com base em regras e 
modelos predefinidos. Pode ser usado em chatbots, sistemas de resumo automático, entre outros.
Para realizar essas tarefas, o PLN se baseia em técnicas como processamento estatístico de linguagem 
natural, modelos de aprendizado de máquina, redes neurais, algoritmos de classificação e agrupamento, 
entre outros.
145
CIÊNCIA DE DADOS
O PLN tem diversas aplicações práticas, como assistentes virtuais, sistemas de tradução automática, 
análise de sentimentos em redes sociais, detecção de spam, correção automática de texto, sistemas de 
resumo automático, entre outros.
Uma das principais aplicações do PLN é a análise de sentimentos, que envolve a classificação de textos 
quanto à sua polaridade emocional, como positivo, negativo ou neutro. Isso pode ser útil para empresas 
monitorarem a opinião dos clientes em relação a produtos e serviços, ou para análise de redes sociais 
em busca de tendências e insights. Outra aplicação é a tradução automática, que permite a tradução 
de textos de um idioma para outro de forma rápida e eficiente. Essa tecnologia tem sido utilizada em 
serviços de tradução online, facilitando a comunicação entre pessoas que falam línguas diferentes.
O processamento de linguagem natural também desempenha um papel importante na área de 
assistentes virtuais, como a Siri da Apple, a Alexa da Amazon e o Google Assistant. Esses assistentes 
usam técnicas de PLN para entender os comandos e perguntas dos usuários e fornecer respostas 
relevantes e precisas.
Além disso, o PLN é empregado em sistemas de recomendação, que sugerem produtos, filmes, 
músicas ou conteúdos com base nas preferências e histórico do usuário. Esses sistemas utilizam técnicas 
de análise de texto e processamento semântico para entender os interesses do usuário e fornecer 
recomendações personalizadas.
No campo da saúde, o processamento de linguagem natural é utilizado na extração de informações 
de prontuários médicos eletrônicos, identificação de padrões em dados clínicos e auxílio no diagnóstico de 
doenças com base em sintomas relatados pelos pacientes.
No entanto, o processamento de linguagem natural ainda apresenta desafios, como a compreensão 
de nuances linguísticas, o reconhecimento de sarcasmo e ironia, a tradução precisa de idiomas complexos 
e a interpretação correta de contextos ambíguos. Trata-se de uma área da inteligência artificial que 
visa capacitar os computadores a compreender e gerar linguagem humana de forma natural. Ele 
desempenha papel importante na interação humano-computador, tornando possível a comunicação e 
o desenvolvimento de sistemas e aplicações que lidam com texto e linguagem escrita. Com o avanço da 
tecnologia e o aumento da disponibilidade de dados textuais, o processamento de linguagem natural se 
tornou cada vez mais relevante e promissor.
 Saiba mais
A fim de conhecer mais sobre processamento de linguagem natural (PLN), 
recomendamos a leitura do capítulo 22 do livro a seguir:
NORVIG, P. Inteligência artificial. Rio de Janeiro: Grupo GEN, 2013.
146
Unidade II
8.7 Reconhecimento de fala
O reconhecimento de fala, também conhecido como reconhecimento automático de fala ou ASR 
(automatic speech recognition, em inglês), é uma área da tecnologia de processamento de linguagemnatural que se concentra em converter a fala humana em texto escrito de forma automatizada.
O objetivo do reconhecimento de fala é permitir que os computadores entendam e processem 
a fala humana, facilitando a interação homem-máquina. Essa tecnologia tem aplicações em uma 
ampla variedade de setores, como assistentes virtuais, sistemas de atendimento ao cliente, transcrição 
automática de áudio, tradução de voz em tempo real, legendagem automática em vídeos, entre outros.
Ele envolve várias etapas:
• Pré-processamento de áudio: o sinal de áudio é processado para remover ruídos e ajustar o 
volume a fim de melhorar a qualidade da fala.
• Segmentação da fala: o sinal de áudio é dividido em segmentos menores, correspondentes a 
unidades de fala, como palavras ou fonemas.
• Extração de características: características acústicas e espectrais são extraídas dos segmentos 
de fala, como frequência fundamental, energia, coeficientes de Mel, entre outros. Elas são usadas 
para representar a fala e ajudar a distinguir entre diferentes sons.
• Modelagem acústica: um modelo estatístico é treinado usando técnicas de aprendizado de 
máquina a fim de mapear as características acústicas para as unidades de fala correspondentes, 
como fonemas, palavras ou subpalavras. Isso permite que o sistema reconheça e diferencie os 
diferentes sons da fala.
• Decodificação: com base no modelo acústico treinado, um algoritmo de decodificação é aplicado 
para encontrar a sequência de palavras mais provável que corresponda à fala de entrada. Isso 
envolve a aplicação de algoritmos de busca e linguagem para encontrar a sequência de palavras 
mais coerente e provável.
• Pós-processamento: após a decodificação, pode ser realizado um pós-processamento adicional 
para melhorar a precisão do reconhecimento, corrigir erros comuns e realizar tarefas como 
pontuação, correção ortográfica e formatação.
O reconhecimento de fala enfrenta desafios, como variações na pronúncia, ruídos de fundo, sotaques 
regionais e fala rápida. Com o objetivo de superar esses desafios, técnicas avançadas, como redes neurais 
profundas e modelos de linguagem estatística, são aplicadas para melhorar a precisão e a eficácia do 
reconhecimento de fala.
Com o avanço da tecnologia, o reconhecimento de fala está se tornando cada vez mais preciso e 
utilizado em várias aplicações, como assistentes virtuais, transcrição de áudio, comandos de voz em 
147
CIÊNCIA DE DADOS
dispositivos móveis e muito mais. Ele desempenha um papel fundamental na facilitação da interação 
entre humanos e máquinas, tornando as tarefas cotidianas mais eficientes e acessíveis.
8.8 APIs de inteligência artificial
As APIs de inteligência artificial (IA) são conjuntos de ferramentas, bibliotecas e recursos 
disponibilizados por empresas e provedores de serviços para permitir o acesso e a utilização de 
recursos de IA em aplicações e sistemas de software. Elas fornecem funcionalidades pré-criadas de IA, 
como reconhecimento de imagem, processamento de linguagem natural, reconhecimento de fala, 
detecção de sentimentos, entre outros, para que os desenvolvedores possam integrá-las facilmente em 
seus próprios projetos.
As APIs de IA podem ser usadas para uma ampla gama de aplicações, desde chatbots e assistentes 
virtuais até análise de dados, automação de tarefas e tomada de decisões. Elas oferecem uma forma 
conveniente de utilizar recursos de IA avançados, sem que os desenvolvedores precisem se preocupar 
em desenvolver essas funcionalidades do zero.
Algumas das principais APIs de IA disponíveis atualmente incluem:
• APIs de processamento de linguagem natural: permitem realizar tarefas como análise de 
sentimento, extração de entidades, classificação de texto e tradução automática. Exemplos 
populares incluem a API de processamento de linguagem natural do Google e a API de linguagem 
natural do Azure da Microsoft.
• APIs de reconhecimento de imagem: permitem realizar tarefas como detecção de objetos, 
reconhecimento facial, identificação de padrões e análise de conteúdo visual. Exemplos notáveis 
incluem a API Vision do Google Cloud e a API Computer Vision do Azure.
• APIs de reconhecimento de fala: convertem a fala em texto, permitindo a transcrição 
automática de áudio e a interação por meio de comandos de voz. Exemplos populares incluem a 
API Speech-to-Text do Google Cloud e a API de reconhecimento de fala do Azure.
• APIs de recomendação: fornecem recursos para criar sistemas de recomendação personalizados, 
como recomendação de produtos, músicas, filmes ou conteúdos com base nos interesses e 
histórico do usuário. Exemplos notáveis incluem a API de recomendação do Amazon Personalize 
e a API de recomendação do Azure.
Ao utilizar APIs de IA, os desenvolvedores podem aproveitar os avanços e os modelos já treinados por 
especialistas em IA economizando tempo e recursos no desenvolvimento de funcionalidades complexas. 
Além disso, elas geralmente são fáceis de integrar, possuem documentação detalhada e oferecem 
suporte técnico, o que facilita o processo de incorporação de recursos de IA em projetos e aplicativos.
No entanto, é importante considerar aspectos como custos associados ao uso das APIs, limitações 
de uso, requisitos de autenticação e privacidade dos dados ao integrar serviços de IA em um projeto. 
148
Unidade II
Temos de garantir que os dados sejam tratados de forma segura e que as políticas de privacidade sejam 
respeitadas.
As APIs de IA proporcionam uma maneira acessível e eficiente de incorporar recursos avançados de 
IA em aplicativos e sistemas de software, permitindo que desenvolvedores explorem todo o potencial 
da IA sem a necessidade de construir algoritmos complexos do zero.
149
CIÊNCIA DE DADOS
 Resumo
Nesta unidade, explicamos como é feita a preparação e pré-processamento 
de dados. Trata-se de uma etapa fundamental na análise de dados e 
construção de modelos preditivos. Ela envolve a limpeza, transformação 
e organização dos dados brutos para torná-los adequados para análise. Isso 
pode incluir tratamento de valores ausentes, normalização, padronização, 
codificação de variáveis categóricas, detecção e tratamento de outliers, 
entre outras técnicas. Uma preparação cuidadosa dos dados é essencial 
para garantir que os modelos produzam resultados precisos e confiáveis.
Explicamos os modelos preditivos que são algoritmos de aprendizado de 
máquina ou estatísticos treinados em dados históricos para fazer previsões 
sobre eventos futuros. Eles podem ser classificadores, regressores, entre 
outros, dependendo do tipo de tarefa que estão resolvendo. O processo de 
construção de modelos preditivos envolve a seleção de recursos relevantes, 
a escolha do algoritmo adequado, o ajuste de hiperparâmetros e a avaliação 
do desempenho do modelo usando métricas apropriadas.
Abordamos o tema planejamento de experimentos, que envolve a 
definição de um protocolo rigoroso para coletar dados experimentais de 
maneira controlada. Isso ajuda a reduzir o viés, a aumentar a validade 
e a garantir que as conclusões sejam confiáveis. A análise de resultados 
experimentais inclui a aplicação de métodos estatísticos a fim de interpretar 
os dados coletados, determinar a significância dos resultados e tirar 
conclusões sobre as hipóteses testadas. Isso é fundamental em pesquisa 
científica e tomada de decisões informadas.
Apresentamos algumas aplicações avançadas de aprendizado de 
máquina que envolvem o uso de técnicas mais complexas e sofisticadas 
para resolver problemas desafiadores. Isso pode incluir o uso de redes 
neurais profundas (deep learning) para processar dados não estruturados, 
como imagens e texto, o uso de algoritmos de reforço para treinar agentes 
autônomos, como em carros autônomos ou jogos, e técnicas avançadas 
de  processamento de linguagem natural para análise de sentimentos, 
tradução automática e respostas automáticas.
Por fim, vimos que preparação e pré-processamento de dados é essencial 
a fim de garantir a qualidade dosdados usados nos modelos preditivos, os 
quais usam algoritmos para fazer previsões com base em dados históricos. 
O planejamento de experimentos e a análise de resultados experimentais 
150
Unidade II
garantem a validade e a confiabilidade das conclusões, e as aplicações 
avançadas de aprendizado de máquina exploram técnicas mais sofisticadas 
com o objetivo de resolver problemas complexos em diversos campos.
151
CIÊNCIA DE DADOS
 Exercícios
Questão 1. (Fundatec 2022, adaptada) Durante a etapa do pré-processamento da base de dados, 
a análise de outliers é uma tarefa comum e relevante para obter modelos de aprendizado de máquina 
consistentes. A presença de outliers pode levar a modelos imprecisos quando o modelo é testado ou 
colocado em produção. Nesse contexto, avalie as afirmativas.
I – Outliers são dados muito diferentes dos demais, que fogem ao padrão dos dados.
II – Os outliers não precisam ser identificados ou analisados.
III – Outliers são produzidos exclusivamente por erros de medição.
É correto o que se afirma em:
A) I, apenas.
B) III, apenas.
C) I e II, apenas.
D) II e III, apenas.
E) I, II, III e IV.
Resposta correta: alternativa A.
Análise das afirmativas
I – Afirmativa correta.
Justificativa: os outliers são valores que se desviam significativamente do padrão dos demais 
dados do conjunto. Esses dados discrepantes podem indicar erros de medição ou anormalidades no 
conjunto de dados.
II – Afirmativa incorreta.
Justificativa: os outliers podem distorcer análises e modelos, conforme diz o próprio texto do 
enunciado. Por isso, devem ser identificados e analisados.
152
Unidade II
III – Afirmativa incorreta.
Justificativa: os outliers podem ser produzidos por erros de medição e por valores default assumidos 
durante o preenchimento de uma base de dados ou podem corresponder a valores corretos, mas 
pertencentes a uma base de dados desbalanceada.
Questão 2. (FGV 2022, adaptada). Considere a matriz a seguir, obtida de um experimento de 
classificação.
Tabela 2
Real Previsto Gato Rato Cachorro
Gato 10 2 3
Rato 5 14 1
Cachorro 1 2 12
Os valores corretos das métricas de precisão e recall (revocação/sensibilidade) para a classe rato, são, 
respectivamente:
A) 0,62 e 0,67.
B) 0,64 e 0,77.
C) 0,67 e 0,62.
D) 0,78 e 0,7.
E) 0,8 e 0,85.
Resposta correta: alternativa D.
Análise da questão
A matriz de confusão é uma ferramenta que permite visualizar o desempenho de um modelo de 
classificação. Ela mostra a contagem de verdadeiros positivos, falsos positivos, verdadeiros negativos 
e falsos negativos. Com base nessa matriz, várias métricas adicionais podem ser calculadas, como 
sensibilidade (recall), especificidade, taxa de falsos positivos e taxa de falsos negativos.
Da matriz de confusão do enunciado, podemos extrair os dados elencados a seguir, a respeito da 
classe rato.
• Verdadeiro positivo (VP): 14 ratos previstos eram ratos reais.
• Falso positivo (FP): 4 animais eram ratos previstos, mas não eram ratos reais (2 eram gatos e 2 
eram cachorros).
153
CIÊNCIA DE DADOS
• Falso negativo (FN): 6 animais foram classificados como outros animais, mas eram ratos na 
realidade (5 classificados como gatos e 1 classificado como cachorro).
O cálculo da precisão é dado pela razão entre os verdadeiros positivos e o somatório entre verdadeiros 
positivos e falsos positivos, conforme exposto a seguir.
Pr , ... ,ecis
VP
VP FP
ão �
�
�
�
� � �
14
14 4
14
18
0 777 0 78
O cálculo do recall, ou sensibilidade, é dado pela razão entre os verdadeiros positivos e o somatório 
entre verdadeiros positivos e falsos negativos, conforme exposto a seguir.
Re ,call
VP
VP FN
�
�
�
�
� �
14
14 6
14
20
0 7
154
REFERÊNCIAS
Textuais
ALPAYDIN, E. Introduction to Machine Learning. Cambridge: MIT Press, 2004.
CASTRO, L. N.; FERRARI, D. G. Introdução à mineração de dados: conceitos básicos, algoritmos e 
aplicações. São Paulo: Saraiva, 2016.
CHAPMAN, P. et al. CRISP-DM 1.0: step-by-step data mining guide. 2000. Disponível em: 
https://tinyurl.com/3mn8j4xk. Acesso em: 18 ago. 2023.
DEMCHENKO, Y. et al. Addressing big data issues in Scientific Data Infrastructure. Amsterdam: IEEE, 
2013. Disponível em: https://tinyurl.com/4wk2pvp4. Acesso em: 18 ago. 2023.
FACELI, K. et al. Inteligência artificial: uma abordagem de aprendizado de máquina. Rio de 
Janeiro: LTC, 2011.
FAYYAD, U. M.; PIATETSKY-SHAPIRO, G.; SMYTH, P. From data mining to knowledge discovery in 
databases. Artificial Intelligence Magazine, v. 17, n. 3, p. 37-54, 1996.
FILATRO, A. C. Data science na educação: presencial, a distância e corporativa. São Paulo: Saraiva, 2020.
FLACH, P. Machine Learning: The Art and Science of Algorithms that Make Sense of Data. Cambridge: 
Cambridge University Press, 2012.
GRUS, J. Data science do zero: primeiras regras com Python. Rio de Janeiro: Alta Books, 2016.
HAN, J.; KAMBER, M.; PEI, J. Data Mining: concepts and techniques. 3. ed. Massachussets: 
Morgan Kaufmann, 2011.
KHAN, M.; UDDIN, M. F.; GUPTA, N. Seven V’s of Big Data Understanding Big Data to extract value. 
Connecticut: The American Society for Engineering Education, 2014.
LANEY, D. 3D Data Management: Controlling Data Volume, Velocity, and Variety. Stamford: Meta Delta, 
2001. Disponível em: https://tinyurl.com/mr2rbhfa. Acesso em: 18 ago. 2023.
MARJANI, M. et al. Big IoT Data Analytics: Architecture, Opportunities, and Open Research Challenges. 
IEEE, 2017. Disponível em: https://tinyurl.com/2xnzwsva. Acesso em: 18 ago. 2023.
MITCHELL, T. M. Machine Learning. Portland: McGraw-Hill, 1997.
MORAIS, I. S. et al. Introdução a Big Data e Internet das Coisas (IoT). Porto Alegre: Grupo A, 2018. 
E-book. Disponível em: https://tinyurl.com/3ybwscd6. Acesso em: 18 ago. 2023.
155
MUELLER, J. P.; MASSARON, L. Python para Data Science para Leigos. Rio de Janeiro: Alta Books, 2020. 
E-book. Disponível em: https://tinyurl.com/mt8mbft2. Acesso em: 18 ago. 2023.
NORVIG, P. Inteligência artificial. Rio de Janeiro: Grupo GEN, 2013.
PIATETSKY, G. CRISP-DM, still the top methodology for analytics, data mining, or data science projects. 
KDnuggets, October, 2014. Disponível em: https://tinyurl.com/8b4tevy7. Acesso em: 18 ago. 2023.
PROVOST, F.; FAWCETT, T. Data Science for Business: what you need to know about data mining and 
data-analytic thinking. California: O’Reilly Media, 2013.
TAN, P.-N.; STEINBACH, M.; KUMAR, V. Introduction to Data Mining. Boston: Pearson Addison-Wesley, 
2006. Disponível em: https://tinyurl.com/mr45rp3p. Acesso em: 18 ago. 2023.
WITTEN, I.; FRANK, E.; HALL, M. Data Mining: practical machine learning tools and techniques. 3. ed. 
Massachussets: Morgan Kaufmann, 2011.
ZIKOPOULOS, P.; EATON, C. Understanding Big Data: Analytics for Enterprise Class Hadoop and 
Streaming Data. New York: McGraw-Hill Osborne Media, 2011.
156
157
158
159
160
Informações:
www.sepi.unip.br ou 0800 010 9000

Mais conteúdos dessa disciplina