Você está na página 1de 20

Análise Preditiva

e Classificação
Engenharia de Atributos

Responsável pelo Conteúdo:


Prof. Me. Orlando da Silva Junior

Revisão Textual:
Prof.ª Dr.ª Luciene Oliveira da Costa Granadeiro
Engenharia de Atributos

• Introdução à Engenharia de Atributos;


• Pré-processamento de Dados;
• Seleção de Atributos.

OBJETIVOS DE APRENDIZADO
• Explorar problemas preditivos com dados;
• Descrever cenários de aplicações para uso de engenharia de atributos;
• Aplicar técnicas de engenharia de atributos.
UNIDADE Engenharia de Atributos

Introdução à Engenharia de Atributos


A engenharia de atributos é uma etapa crucial da análise preditiva. Estima-se que
80% dos esforços em aplicações de Machine Learning sejam consumidos nessa etapa.
Sim, você entendeu bem!
A maior parte do trabalho de um cientista de dados está na construção do con-
junto de dados.

Importante!
Segundo a Google, o dado supera tudo! É verdade que atualizar o seu algoritmo de
aprendizagem permitirá que você aprenda diferentes tipos de padrões, mas se os seus
dados são ruins, você acabará construindo modelos que se ajustam a algo errado. A qua-
lidade dos dados importa muito mais do que qualquer algoritmo que você utilize!

Na engenharia de atributos, queremos selecionar os melhores atributos para


serem incluídos no processo de modelagem de dados; em geral, pelos algoritmos de
Machine Learning.
Considerando que os dados e os algoritmos são tão diversos, é impraticável ge-
neralizar as melhores práticas para todos os projetos. Além disso, por causa do Big
Data e a variedade de dados que temos disponíveis atualmente, seria impossível
conhecer todas as técnicas para tratamento de dados.
Por isso, nesta unidade, vamos estudar os princípios que podem ser aplicados em
cada situação. Não vamos apenas conhecer as definições e as fórmulas, mas também
como aplicar as técnicas mais adequadas.
A Figura 1 ilustra as áreas envolvidas na engenharia de atributos e que serão es-
tudadas nesta unidade:
• Pré-processamento de dados;
• Seleção de atributos.
Eliminação de atributos Obs: Pode ser aplicado
mais de uma técnica em
um mesmo conjunto de
Integração de dados
dados!
Pré-processamento Tratamento de dados
de dados desbalanceados
Engenharia de atributos
Seleção de atributos Limpeza de dados

Transformação de dados

Figura 1 – Áreas de aplicação da engenharia de atributos


Para os procedimentos que serão realizados, iremos trabalhar com os dados apre-
sentados na Tabela 1, que apresenta um conjunto de dados com dados climáticos
com o objetivo de auxílio a tomada de decisão em partidas de tênis. Embora esse

8
conjunto de dados seja bastante conhecido e você possa encontrá-lo em diversos
outros exemplos didáticos, algumas modificações foram realizadas para estudarmos
os procedimento da engenharia de atributos.
Em nosso conjunto de dados, você poderá observar a presença de 14 objetos (ou
exemplos) e dos seguintes 5 atributos:
• ID: descrição nominal em formato numérico com distintos valores;
• Tempo: descrição nominal do tempo, com 3 possíveis valores;
• Temperatura: medida numérica contína da temperatura em ºC;
• Umidade: medida numérica discreta da umidade em percentagem;
• Vento: descrição nominal da qualidade do vento, com 2 possíveis valores;
• Partida: descrição nominal da decisão do jogador, com 2 possíveis valores.
Embora esse conjunto de dados seja bastante utilizado em tarefas de classificação e
designe o atributo “Partida” como o atributo-alvo, consideraremos todos os atributos
com igual importância, exceto se manifestarmos explicitamente o contrário.
Tabela 1 – Conjunto com dados climáticos
ID Tempo Temperatura Umidade Vento Partida
1 Ensolarado 38,9 86 Fraco Não
2 Ensolarado 29,4 65 Forte Não
3 Nublado 25,4 90 Fraco Sim
4 Chuvoso 22,5 75 Fraco Sim
5 Chuvoso 19,3 96 Fraco Sim
6 Chuvoso 21,5 80 Forte Não
7 Nublado 20,7 70 Forte Sim
8 Ensolarado 22,6 80 Fraco Não
9 Ensolarado 19,8 91 Fraco Sim
10 Chuvoso 23,4 85 Fraco Sim
11 Ensolarado 24,9 90 Forte Sim
12 Nublado 22,7 95 Forte Sim
13 Nublado 28,6 70 Fraco Sim
14 Chuvoso 23,1 70 Forte Não

Você Sabia?
Um das primeiras coisas que você deve realizar após visualizar os dados presentes no
conjunto de dados é entender esse conjunto de dados de maneira analítica.
Como você pode fazer isso?
Por meio da Análise Exploratória de Dados, você poderá extrair medidas resumo (como
medidas de tendência central, dispersão e simetria) e plotar gráficos a fim de compre-
ender melhor como os dados se comportam.

Nas próximas seções, você vai descobrir quais são as principais técnicas de pré-
-processamento de dados e seleção de atributos que podem ser aplicadas ao nosso
conjunto de dados.

9
9
UNIDADE Engenharia de Atributos

Pré-processamento de Dados
Quando falamos em pré-processamento de dados, estamos nos referindo a técni-
cas que podem incluir, deletar ou transformar os dados do conjunto de treinamento.
Embora muitas vezes tenhamos o foco nos processos de modelagem e Machine
Learning, a preparação de dados pode fazer a diferença na habilidade preditiva do
modelo, como na redução do impacto do desbalanceamento e também outliers.

Entre as principas técnicas de pré-processamento, destacaremos adiante as seguintes:


Eliminação de atributos; Integração de dados; Tratamento de dados desbalanceados;
Limpeza de dados; e Transformação de dados.

Não se esqueça que mais de uma técnica pode ser aplicada ao mesmo conjunto
de dados, atributo ou objeto. Ou seja, é possível aplicar a eliminação de atributos e
a limpeza de dados no mesmo conjunto de dados. Isso significa que as técnicas não
são mutuamente exclusivas e você necessita escolher apenas uma. Como em todo
problema de Analytics e Data Science, você deverá analisar o problema antes de
determinar qual técnica de engenharia de atributos utilizar.

Eliminação de Atributos
Se o objetivo da nossa tarefa preditiva é predizer se devemos jogar uma partida
de tênis observando as condições climáticas, certamente o atributo ID em nada nos
ajudará nessa decisão. Se ID = 1, será que devemos jogar tênis? E se ID = 2? E se
ID = 3? Você já deve ter percebido que esse atributo em nada pode influcienciar na
decisão de uma pessoa em jogar tênis ou não.

Nesse caso, convém eliminarmos esse atributo do conjunto de dados antes de apli-
carmos algum algoritmo de Machine Learning. O resultado final será o apresentado
na Tabela 2.
Tabela 2 – Conjunto com dados climáticos sem o atributo ID
Tempo Temperatura Umidade Vento Partida
Ensolarado 38,9 86 Fraco Não
Ensolarado 29,4 65 Forte Não
Nublado 25,4 90 Fraco Sim
Chuvoso 22,5 75 Fraco Sim
Chuvoso 19,3 96 Fraco Sim
Chuvoso 21,5 80 Forte Não
Nublado 20,7 70 Forte Sim
Ensolarado 22,6 80 Fraco Não
Ensolarado 19,8 91 Fraco Sim
Chuvoso 23,4 85 Fraco Sim
Ensolarado 24,9 90 Forte Sim
Nublado 22,7 95 Forte Sim
Nublado 28,6 70 Fraco Sim
Chuvoso 23,1 70 Forte Não

10
A remoção de atributos também é muito utilizado quando o atributo possui o mesmo
valor para todos os objetos. Nesse caso, ele se torna irrelevante por não conter infor-
mação que ajude a discriminar os objetos.

Integração de Dados
A integração de dados é uma tarefa que considera a manipulação de mais de um
conjunto de dados. Muitas vezes, os dados que precisamos estão distribuídos em
diversos servidores, dispositivos ou aplicações, e é necessário identificar quais são os
objetos que estão presentes nos diferentes conjuntos de dados que serão combinados.

Dessa forma, a identificação dos objetos nos conjuntos de dados distintos é rea-
lizada por meio de atributos comuns, como um identificador. No nosso exemplo, o
atributo ID pode ajudar – antes de ser removido – a localizar outras informações a
respeito das partidas de tênis, dos jogadores ou das condições climáticas.

Tratamento de Dados Desbalanceados


Quando falamos que os dados estão desbalanceados, estamos nos referindo ao
desequilíbrio existente entre a quantidade de objetos entre as classes. Em tarefas de
classificação de dados, esse é um problema que pode prejudicar o desempenho dos
algoritmos de aprendizagem.

Em nosso conjunto de dados, vamos assumir que o atributo Partida é o atributo-


-alvo da tarefa de classificação. Observe que esse atributo possui como valores:
• Não: 5;
• Sim: 9.

Ou seja, a quantidade de Sim é quase 2 vezes maior de que Não, indicando o des-
balancemento do conjunto de dados. Em termos percentuais, o valor Não corresponde
a 35,7% do conjunto de dados, enquanto o valor Sim representa 64,3% dos objetos.

Antes de falarmos sobre as técnicas para o tratamento de dados desbalanceados,


note que essa não é uma falha do conjunto de dados. Muitas vezes, o domínio es-
tudado apresenta naturalmente exemplos mais frequentes em uma classe do que
em outra. Por exemplo, imagine um sistema que analisa fraudes em transações de
cartões de crédito. Se 50% das transações fossem acusadas como fraudulentas (ou
se em 50% das vezes que você utilizasse o seu cartão de crédito uma compra fosse
recusada), certamente ninguém mais utilizaria esse meio de pagamento para fazer
compras. Segundo pesquisas, as tentativas de fraudes em transações eletrônicas
acontecem em torno de 5% das vezes. Nesse caso, uma análise preditiva poderia
observar um conjunto de dados hipotético que representasse transações em cartões
de crédito com as seguintes características na classe Fraude:
• Fraude = Sim (5%);
• Fraude = Não (95%).

11
11
UNIDADE Engenharia de Atributos

Nessa situação, o conjunto de dados estaria bastante desbalanceado em razão


do domínio da aplicação. Isso não significa, no entanto, que os dados não devem
ser tratados antes da aplicação dos algoritmos de modelagem e Machine Learning.
Caso o tratamento não seja realizado, os algoritmos podem favorecer a classificação
de novos dados na classe majoritária. No exemplo das fraudes, toda nova transação
poderia ser classificada automaticamente como uma transação comum, ainda que
ela fosse uma fraude verdadeira.

Uma das melhores práticas para balancear o conjunto de dados é gerar novos
dados a partir do processo original e equilibrar as classes. Porém, na maior parte das
vezes, isso não é possível. Uma alternativa é balancear os dados de maneira artificial,
utilizando uma dessas técnicas (FACELLI et al., 2011):
• Redefinir o tamanho do conjunto de dados: nesta situação, podemos tanto
incluir novos objetos à classe minoritária quanto eliminar objetos da classe ma-
joritária. É importante estar atento à essa solução, pois pode ocorre overfitting
ou underfitting.
• Utilizar diferentes custos de classificação: apesar de bastante comum, nem
sempre é fácil definir o custo de cada classe. A existência de um grande número
de objetos semelhantes na classe majoritária pode aproximar sua distribuição
de exemplos relevantes para o treinamento da distribuição presente na classe
minoritária, fazendo com que custos diferentes tenham como efeito privilegiar a
classificação na classe minoritária;
• Induzir um modelo para uma classe: nesta situação, as classes são apren-
didas separadamente pelo algoritmo. Embora menos comum, a classificação
com apenas uma classe pode ser uma alternativa interessante no tratamento de
dados desbalanceados.

O artigo científico de Larry Manevitz e Malik Yousef intitulado One-Class SVMs for Document
Classification implementa versões do algoritmo SVM para classificação em conjuntos de da-
dos de texto com apenas uma classe. Vale a pena a leitura!
Disponível em: https://bit.ly/31t9gmU

Limpeza de Dados
A qualidade de dados é um dos tópicos mais importantes na gestão de dados.
O DMBOK (Data Management Body of Knowledge), escrito por mais de 120 espe-
cialistas em gestão de dados, aponta a gestão de qualidade de dados como uma das
atividades para garantir a adequação dos dados ao uso pretendido. Entre os princi-
pais problemas com a qualidade, encontramos:
• Dados ruidosos: possuem erros ou valores diferentes do esperado. Por exemplo
Idade = 315;
• Dados inconsistentes: contradizem valores de outros atributos do mesmo
objeto­. Por exemplo, Cidade = ‘São Paulo’ e UF = ‘DF’;

12
• Dados redundantes: ocorre quando dois ou mais objetos possuem os mesmos
valores para todos os atributos. Por exemplo, Autor = ‘José Carlos da Silva’ e
Escritor = ‘José Carlos da Silva’;
• Dados incompletos: ausência de valores para alguns dos atributos em parte
dos dados.

Em cada uma dessas situações, deveremos trabalhar com procedimentos adequa-


dos para corrigir os problemas apresentados no conjunto de dados.

Vamos conhecer alguns desses procedimentos?

O tratamento de dados ruidosos considera dados que aparentemente não per-


tencem à distribuição original dos dados observados. Um indicador da possível pre-
sença de ruído são os outliers, que são valores considerados como exceções rara-
mente encontradas. Por exemplo, suponha que exista um décimo quinto objeto na
nossa base de dados de partidas de tênis em que Temperatura = 52. Embora nós
saibamos que essa temperatura pode ser mensurada em ºC, inclusive para tempe-
raturas, ela está muito distante dos dados observados em nosso conjunto de dados.
Existe uma diversidade de técnicas para o tratamento de ruídos, como:
• Técnicas baseadas em distribuição: neste caso, os ruídos são identificados
como observações que diferem de uma distribuição utilizada na modelagem
dos dados;
• Técnicas de encestamento (binning): nesta categoria, os valores do atributo
são ordenados e divididos em cestas, cada uma com a mesma quantidade de
valores. Em seguida, os valores em uma mesma cesta são substituídos por uma
medida estatística (média ou mediana) dos valores presentes na cesta;
• Técnicas baseadas em agrupamento de dados: nesta categoria de técnicas,
o objetivo é formar grupos nos atributos ou nos objetos, buscando identificar o
ruído nos valores que não conseguiram se agrupar.

Trocando Ideias...
O ruído se tornou tão importante no mundo que o estatístico americano Nate Silver – co-
nhecido por ter previsto corretamente os resultados das eleição presidenciais americanas em
2008 e 2012 – escreveu o livro O Sinal e o Ruído destacando como e por quê algumas pre-
visões falham, e como podemos melhorar nossas análises a partir da identificação de ruídos.

Para o tratamento de dados inconsistentes, o mais indicado é evitar a inconsis-


tência. Ou seja, assim que você identifica a inconsistência em um objeto, você deverá
retornar à etapa de integração de dados e verificar em que momento a integridade
foi violada para fazer a correção.

O tratamento de dados redundantes deve verificar inicialmente se a redundân-


cia existe no objeto ou no atributo. Podem existir tanto objetos reduntantes quanto
atributos com valores redundantes. Consideramos que um atributo é redundante se

13
13
UNIDADE Engenharia de Atributos

o seu valor para todos os objetos pode ser deduzido a partir do valor de um ou mais
atributos. No caso de objetos redundantes, podemos apenas fazer a identificação dos
objetos e a eliminação das redundâncias. No caso de atributos redundantes (como
Idade e Data de Nascimento, que apresentam as mesmas informações preditivas),
basta remover um dos atributos.

No tratamento de dados incompletos, podemos considerar as seguintes alternativas:


• Eliminar objetos com valores ausentes;
• Preencher manualmente valores para os atributos com valores ausentes;
• Empregar algoritmos de Machine Learning que tratam internamente valores
ausentes, como alguns algoritmos de árvores de decisão;
• Empregar uma heurística para definir automaticamente os valores para os atri-
butos com valores ausentes. Neste caso, podemos:
» Criar um novo valor para o atributo, fazendo com que o algoritmo assuma a
existência de um novo valor no domínio de valores do atributo;
» Utilizar a média, moda ou mediana dos valores existentes nesse atributo. Po-
demos usar as medidas de todos os objetos do conjunto de dados ou apenas
da mesma classe do objeto que deverá ser preenchido; ou
» Estimar o valor do atributo por meio de um processo de inferência estatística
ou aprendizagem de máquina.

Transformação de Dados
A transformação de dados é com certeza uma das etapas mais importantes para
a análise preditiva. Embora todas as outras etapas vistas até o momento também
sejam importantes, é na transformação de dados que chegaremos mais próximos do
processo de aprendizagem e na escolha dos algoritmos de Machine Learning para
o nosso problema.

Dos tipos de transformação de dados existentes, podemos considerar:


• Transformação de um valor simbólico nominal para numérico;
• Transformação de um valor simbólico ordinal para numérico;
• Transformação de um valor numérico para simbólico; e
• Transformação numérica de escala ou intervalo de valores.

Transformação simbólico-numérico
Quando o atributo que desejamos transformar é binário – ou seja, possui ape-
nas dois valores distintos – e representa uma situação ordinal ou indica a ausência/
presença da característica, podemos simplesmente utilizar os numerais 0 e 1 para
essa transformação. A Tabela 3 mostra como ficaria a transformação binária para
o atributo Vento (ordinal) e o atributo-alvo Partida nos atributos Vento (Binário) e
Partida (Binário), respecitvamente.

14
Tabela 3 – Transformação binária
Vento Vento (Binário) Partida Partida (Binário)
Fraco 0 Não 0
Forte 1 Não 0
Fraco 0 Sim 1
Fraco 0 Sim 1
Fraco 0 Sim 1
Forte 1 Não 0
Forte 1 Sim 1
Fraco 0 Não 0
Fraco 0 Sim 1
Fraco 0 Sim 1
Forte 1 Sim 1
Forte 1 Sim 1
Fraco 0 Sim 1
Forte 1 Não 0

No caso de atributos que possuem mais de dois valores, a transformação ocorrerá


dependendo do tipo do atributo:
• Se o atributo for nominal, podemos usar a codificação 1-de-n, em que cada
sequência terá apenas uma informação codificada com valor 1 e as demais com
valor 0. A Tabela 4 apresenta essa transformação para o atributo Tempo do
nosso conjunto de dados de partidas de tênis. Como o atributo possui 3 valores
em seu domínio, criamos 3 novos atributos para representá-los por meio de
informação binária;
• Se o atributo for ordinal, a transformação é bastante semelhante à transfor-
mação binária; no entanto, os valores se estenderão além dos valores binários.
O ponto mais importante aqui é que a transformação deve preservar a ordem e
a distância entre os valores.

Tabela 4 – Transformação de atributo com mais de 2 valores


Tempo Ensolarado Nublado Chuvoso
Ensolarado 1 0 0
Ensolarado 1 0 0
Nublado 0 1 0
Chuvoso 0 0 1
Chuvoso 0 0 1
Chuvoso 0 0 1
Nublado 0 1 0
Ensolarado 1 0 0
Ensolarado 1 0 0
Chuvoso 0 0 1
Ensolarado 1 0 0
Nublado 0 1 0
Nublado 0 1 0
Chuvoso 0 0 1

15
15
UNIDADE Engenharia de Atributos

Muitos algoritmos exigem que os dados de entrada sejam apenas numéricos. Re-
des neurais e SVMs fazem parte dessa categoria. Dessa forma, é importante estudar
o funcionamento dos algoritmos que você irá selecionar antes de elaborar o processo
de engenharia de atributos mais adequado ao problema.

Transformação numérico-simbólico
Existem alguns algoritmos de aprendizagem que foram construídos para trabalhar
com atributos nominais, como algumas árvores de decisão e indutores de regras de
decisão. Em geral, se utilizarmos ou transformarmos os atributos em valores quanti-
tativos, o desempenho do algoritmo pode ser afetado negativamente.

Esse processo de transformação de atributos numéricos em uma escala menor de


valores distintos é também conhecido como discretização. Na prática, se o atributo
numérico possui apenas dois valores, podemos fazer a transformação binária, asso-
ciando um nome a cada valor. Se ele tiver mais valores e não existir uma sequência
ordenada entre os valores, cada um também pode ser substituído por um nome ou
uma categoria. Quando um atributo numérico é discretizado, o conjunto de possíveis
valores é dividido em intervalos, e cada intervalo de valores quantitativos é transfor-
mado em um valor nominal.

Os métodos para discretização podem ser supervisionados ou não supervisiona-


dos. Os métodos supervisionados utilizam a informação sobre a classe dos exemplos
para fazer a discretização e possuem resultados melhores. Quando usamos métodos
não supervisionados, procuramos escolher pontos de corte para maximizar a pureza
dos intervalos por meio da entropia dos atributos.

Seleção de Atributos
O objetivo da seleção de atributos é reduzir a dimensão do conjunto de dados
selecionando novos atributos que são um subconjunto dos atributos antigos. Apesar
de muitos algoritmos serem projetados para selecionar os atributos mais apropriados
de acordo com o critério de representação do próprio algoritmo, um conjunto de
técnicas pode colaborar na escolha das melhores características.

Entre as principais vantagens da seleção de atributos, destacamos:


• Melhoria no desempenho dos algoritmos de aprendizado;
• Simplificação do modelo preditivo;
• Redução do custo computacional na execução do modelo; e
• Maior interpretabilidade dos resultados em razão do estudo prévio dos atributos.

Embora possamos pensar que o descarte de atributos prejudique o desempenho


da aprendizagem, vamos observar que a utilização de atributos irrelevantes acaba
por afetar o processo de treinamento e os resultados. As árvores de decisão e os
algoritmos baseados em distância, como o k-NN, são os mais afetados por atributos

16
irrelevantes. Já o naïve Bayes, por assumir que todos os atributos são independentes
entre si, ignora os atributos irrelevantes, embora sofra com atributos redundantes.

Podemos realizar a seleção de atributos manualmente ou de maneira automática.


O processo manual é a melhor forma se compreendemos profundamente o proble-
ma de aprendizagem e o significado de cada atributo. Essa pode não ser a melhor
opção em contextos onde os dados são não estruturados, como imagens ou sons.

No caso da seleção automática, encontramos algumas abordagens, sendo as principais:


• Abordagem filtro: neste caso, a seleção de atributos acontece antes da geração
do modelo de aprendizado, e tem como objetivo a filtragem dos atributos menos
importantes de acordo com algum critério;
• Abordagem wrapper: nesta abordagem, a seleção de atributos também acon-
tece paralelamente à utilização do algoritmo. A cada iteração, um subconjunto
de dados é selecionado e passado ao algoritmo de aprendizagem para a cons-
trução do modelo de decisão. Esse processo é repetido para cada subconjunto
de atributos até que um critério de parada determinado seja satisfeito. Em geral,
essa abordagem proporciona melhores resultados;
• Abordagem embutida: utiliza um critério interno do algoritmo para realizar a
seleção de atributos.

17
17
UNIDADE Engenharia de Atributos

Material Complementar
Indicações para saber mais sobre os assuntos abordados nesta Unidade:

 Vídeos
Etapas da Mineração de Dados
https://youtu.be/j1yjamuaOKY
O que é o BI – Começando pelo ETL
https://youtu.be/gR0H5oyii7Q

 Leitura
Aprendizado supervisionado com conjuntos de dados desbalanceados
https://bit.ly/37vjG9t
Seleção de atributos importantes para a extração de conhecimento de bases de dados
https://bit.ly/2TdSJPg

18
Referências
DE CASTRO, L. N.; FERRARI, D. G. Introdução à mineração de dados: conceitos
básicos, algoritmos e aplicações. São Paulo: Saraiva, 2016.

ELMASRI, R.; NAVATHE, S. B. Sistemas de Banco de Dados. 7. ed. São Paulo:


Pearson, 2019.

FACELI, K. et al. Inteligência Artificial: Uma abordagem de aprendizado de máquina.


Rio de Janeiro: LTC, 2011.

PROVOST, F.; FAWCETT, T. Data Science para negócios. Tradução de Marina


Boscatto. Rio de Janeiro: Alta Books, 2016.

19
19

Você também pode gostar