Aula 1

Jacques Wainer

Tipos de problemas em aprendizado de maquina

Preditivo vs exploratório

Modelos Preditivos

Dado uma quantidade de dados “rotulados” isto é com o valor a ser previsto correto.

Há um atributo especial de saída, este que esta corretamente rotulado

O atributo de saída pode ser uma classe: se o paciente esta doente ou não, o tipo de animal numa foto, se o cliente vai trocar de companhia telefonica no próximo mes ou não, etc

ou pode ser um número: semanas para completar o projeto, preço de uma ação no dia seguinte, quantidade de revistas a serem vendidas numa banca, etc

Previsão: prever corretamente o valor desse atributo para dados novos, que virão no futuro.

Num problema preditivo normal, temos vários dados já rotulados. Este é chamado de conjunto de aprendizado ou de treino

no futuro, novos dados (não rotulados) chegarão e queremos fazer a previsão correta do atributo de saída para esses dados ainda desconhecidos.

Modelos explanatório

Modelos explanatório usam os dados conhecidos (já disponíveis) para extrair conhecimento sobre o problema.

Não existe coisas como um atributo de saída. Há um conjunto de dados e quer-se aprender (“knowledge discover”) algo sobre os dados.

Por exemplo:

Descobrir padrões nos dados

Não muito diferente de estatística tradicional quando se trata dos atributos individualmente ou em pares.

Dados como composição de padrões

Também conhecido como redução de dimensionalidade.

Agrupar os dados

Anomalias

Imputação de dados faltantes

Tipos de dados

Tipo de dados - vetoriais

Dados vetoriais são apenas numéricos e cada dado pode ser pensado como pontos num espaço de várias dimensões. Exemplos

Usualmente representados como matrizes (ou data.frames) com as colunas como dimensão e as linhas como dados

Tipo de dados - relacional ou grafo

Nos dados relacionais ou grafos cada dado não tem estrutura interna - são apenas nomes ou identificadores - e há informação sobre similaridade ou distancia entre os dados. Medida de distancia ou similaridade pode ser direcionada. Exemplos:

similaridade - quanto maior mais parecidos/perto sao os nós (numero de mensagens trocadas, numero de palavras em comum dos textos, etc). Similaridade = 0 nenhuma similaridade entre os nós. Similaridade negativa pode fazer algum sentido.

distancia - quanto maior mais diferentes/distantes são os nós. Nada similar indica distancia infinita - distancia negativa não faz muito sentido.

Usualmente, para poucos dados, dados relacionais são representados como uma matriz quadrada (se há apenas um tipo de dado - pessoas numa empresa) ou matriz retangular (se há 2 tipos de dados: pessoas e objetos na Amazon). Para muitos dados usa-se outras representações.

Os dados da matriz sao 0/1 se a relação é binaria (é ou não amigo no Facebook), ou números (número de estrelas na avaliação).

A matriz pode ser simétrica M[i,j]=M[j,i] se a proximidade é não direcionada (ou simétrica) ou assimétrica M[i,j] \not= M[j,i] se direcionada.

Tipo de dados - vetorial vs relacional

Dados vetoriais e grafos são extremos. As técnicas de aprendizado de máquina são muito diferentes para um tipo ou outro tipo de dados.

Para dados vetoriais pode-se falar em coisas como

Para dados relacionais nenhum dos termos faz sentido. Conceitos mais complicados de grafos devem ser usados (cortes em grafo, caminhos, autovetores de grafos, etc)

Mas pode-se converter aproximadamente um tipo de dado para o outro.

relacional para vetorial

Mas dados em grafos podem ser convertidos/aproximados para dados vetoriais através da técnica de “Multi dimensional scailing (MDS)” https://en.wikipedia.org/wiki/Multidimensional_scaling

MDS define pontos em um espaço de k dimensões ( k definido pelo usuário) de tal forma que as distancias entre os pontos do espaço seja similar a distancia dos nós correspondentes no grafo.

vetorial para relacional

Versão simples: converte os dados para um grafo completo, com a distancia entre os vertices = distancia entre os pontos no espaço.

Existe um técnica mais elaborada para converter dados vetoriais em relacionais. https://en.wikipedia.org/wiki/Nearest_neighbor_graph

Outros tipos de dados - categóricos

Dados vetoriais puros são apenas numéricos, mas em problemas típicos há atributos dos dados que não são apenas numéricos, os atributos categóricos.

Usualmente converte-se o atributo categórico em múltiplos atributos numéricos, usando a “one hot encoding”. Vamos assumir que o atributo classe pode assumir 3 valores A,B e C.

Cria-se tres novos atributos classe.A, classe.B e classe.C. classe.A será 1 para dados cuja classe é A e 0 para dados onde classe tem outro valor. E assim por diante.

Outros tipos de dados - texto

Texto não é nem vetorial nem relacional!. Normalmente (pré 2018) converte-se o texto em um dado vetorial de alta dimensão. Cada palavra no conjunto do texto passa a ser uma dimensão.

Vamos supor que os textos são:

Assim, há 3palavras diferentes “agriao” “brocolis” “cenoura” (abreviados para a, b, c. Os dados terão 3 dimensões, a,b e c.

Uma alternativa é codificar os dados como:

note que mantemos apenas a informação da presença ou não de palavras. Nenhuma informação sobre a ordem das palavras no texto

isso é conhecido como “vector space model”

alem da codificação 0/1 (ausencia/presença) há outras:

Normalmente remove-se palavras muito frequentes na lingua (stop words como artigos (o/a/um), conjunções (e/que/mas), pronomes (eu/ele/este), verbos de ligação (é, esta, são), etc.

normalmente processa-se cada palavra para unificar as diferentes declinações. Assim cenoura e cenouras são a mesma palavra; comprei e compraríamos também. (stemming)

Outros tipos de dados - imagens

Imagens pode ser consideradas como dados vetoriais. Uma imagem 200x200 pixels é um vetor de 40.000 dimensões.

Uma das alternativas (pré 2015) é descrever partes da imagens usando descritores. Num exemplo simplificado, podemos usar o histograma de cores da imagem como um todo, e o histograma de cores dos 4 quadrantes, e de cada um dos 4x4 16-antes e assim por diante. A concatenação desses vários histogramas é o que é usado como representação da imagem - que continua sendo um dado vetorial.

Há vários tipos de descritores (para diferentes aplicações) e várias outras técnicas que podem ser usadas em imagens.

Outros tipos de dados - series temporais

Series temporais - os vários valores que uma certa medida assume com o tempo (consumo de energia a cada minuto em Campinas, vendas mensais de um produto, número de visitantes semanais a um site)

o valor da medida ( e quando ele foi coletado) pode ser pensado como um dado. Neste caso normalmente quer-se fazer uma previsão do valor da medida num período do futuro - modelo preditivo. http://www.rdatamining.com/examples/time-series-forecasting

há várias técnicas tradicionais para fazer previsão em series temporais (ARIMA)

Usando aprendizado de máquina, normalmente, considera-se um intervalo fixo de medidas (por exemplo 10 medidas consecutivas) como um dado vetorial (de 10 dimensões).

Mas pode-se ter várias series temporais (por exemplo de várias ações). Neste caso pode ser interessante agrupar subconjuntos de series (ações que estão se comportando de forma similar), ou determinar que algumas series são “anomalas”.

Neste caso normalmente considera-se cada serie temporal como um nó de um grafo, e define-se uma medida de similaridade entre diferentes séries. Os dados são em grafo!

Por exemplo, pode-se pensar em deteção de anomalia dentro de uma serie temporal https://neptune.ai/blog/anomaly-detection-in-time-series ou selecionar series temporais que são diferentes das outras (qual cripto moeda não esta se comportando como a maioria das outras?).

Outros conceitos

Aprendizado supervisionado e não supervisionado

aprendizado supervisionado corresponde de forma geral a modelos preditivos - a “supervisão” é o atributo (classe ou valor) correto e que será previsto para cada dado

aprendizado não supervisionado corresponde de forma geral aos modelos explicativos.

mas há um problema intermediario, mas preditivo: dado apenas alguns dados rotulados e muitos dados nao rotulados, prever o rotulo certo dos dados não rotulados “velhos” e de dados novos.

Dados estáticos versus dados stream

A maioria dos métodos de mineração dos dados assume que “todos os dados já estão lá” ou seja que se tem um conjunto (talvez bem grande) de dados.

mas há técnicas que assumem que os dados vão chegando (normalmente em grandes quantidades). Assim os algoritmos precisam se adaptar a novos dados chegando e não podem re-usar um dado velho (ou porque o volume é muito grande, ou porque os conceitos mudaram),

dependendo das restrições, essas técnicas são chamadas de online learning, ou stream learning

exemplos: acompanhar padrões de uso que evolvem, detectar um nova noticia no Google News https://news.google.com/ https://ieeexplore.ieee.org/document/8974204

Modelos explanatório para conhecimento ou como um passo automático

Uma das razões para modelos exploratórios é para obter conhecimentos sobre os dados/problema (knowledge discovery from data - KDD)

para este objetivo o resultado do modelo deve ser algo que pessoas podem entender, e podem julgar

os especialistas no problema deve ser capazes de dizer se o resultado do modelo faz sentido, se eles “aprenderam” algo, e se isso é útil para alguma decisão.

utilidade e inteligibilidade dos resultados não é algo que o algoritmo pode julgar

visualização dos resultados é uma parte fundamental do processo

assim como o feedback dos especialistas

Modelos explanatório para conhecimento ou como um passo automático

Mas alguns aspectos dos modelos exploratórios pode ser usado como passos automáticos de outros processos

por exemplo, processamento de texto quase sempre inclue redução da dimensionalidade dos dados originais.

pode-se comprimir imagens coloridas reduzindo o número de cores. As cores remanescentes são os centros do resultado de agrupar todas as cores da imagens em poucos grupos. http://scikit-learn.org/stable/auto_examples/cluster/plot_color_quantization.html e http://spin.atomicobject.com/2015/05/26/mean-shift-clustering/

Leituras interessantes