ÍNDICE DE CONTEÚDO
- Introdução ao Machine Learning: Conceitos Básicos
- Tarefas do Aprendizado de Máquina
- Datasets: O que são e para que servem no Aprendizado de Máquina
- Explorando os Datasets — Parte 1
- Estatística Descritiva — Parte 1
- Estatística Descritiva – Parte 2
- Pré-Processamento Dos Dados
- Limpeza Dos Dados
- Transformação De Dados
- Classificação X Regressão
- O Algoritmo Dos K Vizinhos Mais Próximos
- Regressão Linear – Parte 1
Oi, galera! Estamos aqui mais uma vez juntos para aprender mais sobre aprendizado de máquina. O tópico de hoje é muito importante. Vamos aprender sobre DATASETS, algo que se não existisse, não seria possível treinar e testar um modelo. Bora lá então.
O que é dataset?
A palavra dataset significa conjunto de dados em português. Um conjunto de dados nada mais é que um monte de dados juntos. Por exemplo, uma música tem muitas informações que a descrevem: nome, data de lançamento, artista, álbum, ano, mês, compositor, qualidade do arquivo, capa, etc. Essa música sozinha, é apenas ela, eu só sei sobre ela, mas quando eu tenho várias músicas, eu tenho uma coletânea de informações de música, portanto, um conjunto de dados de música. Para facilitar, em todos os meus artigos vou usar sempre dataset e não conjunto de dados.
Formato de um dataset
Um dataset é uma tabela onde as linhas representam as instâncias. Também podem ser chamados de objetos, observações ou exemplos. As colunas são os atributos, ou características, dos dados. Dividimos os atributos em entrada e saída, sendo estes últimos os rótulos/classes/categorias. Essa parte do dataset em que se concentram os rótulos também pode ser chamada de espaço de rótulos. A Figura 2 ilustra um dataset.
Os atributos descrevem características dos dados. Como você descreveria um carro? Um carro tem cor, quantidade de portas, tipo de direção, marca, modelo, ano, etc. Essas “coisas” são características, isto é, informações que descrevem o carro, portanto, são atributos do carro! Marca e Modelo poderiam ser os rótulos, ou atributos alvo, para categorizar carros, por exemplo.
A Figura 2 é um pedaço do dataset SCENE, que contém informações de imagens, e os rótulos basicamente indicam se naquela imagem existe uma praia, uma montanha, e assim por diante. O valor 1 indica se o rótulo está presente na imagem, e o valor 0 se o rótulo não está presente. Este é um dataset multirrótulo, isto é, uma imagem pode pertencer a vários rótulos ao mesmo tempo. Mais pra frente vamos falar sobre as diferenças entre binario, multiclasse e multirrótulo.
Olhando para a imagem da linha 1 (x1) sabemos que ela possui apenas o rótulo “mountain” e “field, pois estes são os únicos rótulos com o valor 1. Este dataset possui um total de 2.407 imagens (linhas), 300 atributos (colunas) sendo 294 de entrada e 6 de saída (rótulos). Se você olhar com mais cuidado, verá que algumas imagens possuem um único rótulo e isso é totalmente normal neste caso em particular.
Tipos de dados
A Figura 1 apresenta alguns dos diversos tipos de dados existentes, os quais compõem de um dataset. Vamos entender melhor essa figura. De acordo com a matemática, 1 é um número inteiro e 1.0 é um número real, dessa forma temos dois tipos de dados numéricos diferentes aqui. Os números inteiros e os números reais são dados numéricos. Temperatura, salário, são dados desse tipo. Bom, se você já estou banco de dados, você provavelmente deve estar familiarizado com alguns destes termos.
E se tivermos um conjunto de dados de texto? Por exemplo, poderiam ser características que indicam as cores “amarela” ou “verde”. Poderia também ser uma planilha de um banco que tem uma coluna indicando um nível de risco como “alto”, “médio” ou ‘baixo”. Nestes casos, os dados são chamados de categóricos, pois em sua grande maioria indicam alguma categoria.
Nem todos os algoritmos são capazes de trabalhar diretamente com dados categóricos. Então, o que fazer? Basta converter os dados categóricos para dados numéricos. Por exemplo, branco pode ser 0 e preto pode ser 1, enquanto que alto, médio e baixo podem ser 2, 1 e 0. Realizando esse mapeamento, é possível usar os dados em diversos algoritmos.
Os dados também podem, ou não, ter uma ordem ou estrutura. No caso do exemplo de risco existe uma estrutura: 2 é o risco mais alto, 1 é o risco médio, e 0 é o risco mais baixo. Já no caso das cores, não existe uma ordem, ou a cor é amarela ou a cor é verde. Um número de telefone de celular, por exemplo, tem uma estrutura bem definida: +55 17 99000-1234. Portanto, além dos dados serem categóricos ou numéricos, eles também podem ser estruturados ou não estruturados, ordinais ou não ordinais, e nominais ou não nominais. Podemo então resumir da seguinte forma:
- Atributos quantitativos: representam quantidades. Valores quantitativos são numéricos (69, 38, 10), podem ser ordenados e operações aritméticas podem ser aplicadas a estes tipos de atributos. Unidades como metro também se encaixam aqui. Eles também podem ser binários (0 ou 1), inteiros ou reais. Além disso são divididos em contínuos (número infinito de valores), discretos (número finito de valores), racionais (Tamanho, distância, salário, etc. Existe uma razão entre dois valores) e intervalares (Números que variam dentro de um intervalo, como a duração de um evento, por exemplo).
- Atributos qualitativos: representam qualidades. Valores qualitativos podem ser nomes como (pequeno, médio, grande), (matemática, física, química). Este tipo não pode ser ordenado e não é possível realizar operações aritméticas. São divididos em nominais (nomes) e ordinais (existe uma ordem).
Portanto, de agora pra frente, lembre-se sempre destes tipos de dados! Se ficar com dúvida, volte neste artigo e releia ok.
Particularidades dos Datasets
Os datasets não são perfeitos. Sempre que pegamos um dataset para trabalhar, precisamos sentar calmamente na frente do computador e analisá-lo. Todas as informações estão lá? Quais são os atributos de saída? Isto se houver esses atributos. Se eles não estão lá, então já podemos concluir que deveremos usar técnicas de aprendizado não supervisionado. Estão faltando informações nesses dados? Se sim, como eu preencho essas informações faltantes. Qual é o tamanho desse dataset? Será que é possível processá-lo no meu computador? Se ele for enorme, talvez seja necessário usar um cluster.
Os dados geralmente não estão prontos e preparados para serem utilizados pelos modelos de machine learning, então, o primeiro passo sempre é o pré-processamento dos dados. Essa fase é muito importante, pois o modelo não será capaz de aprender bem se a qualidade dos dados também não for boa. É como fazer iogurte em casa. Se o leite e o iogurte natural não estiverem nas temperaturas certas, o resultado será só um leite qualhado e não um delicioso e consistente iogurte.
Podemos eliminar atributos que provavelmente não agregarão absolutamente nada ao aprendizado, também podemos integrar alguns dados, fazer uma amostragem, verificar o balanceamento, reduzir o tamanho total do dataset, transformar um tipo de dado em outro, verificar inconsistências e redundâncias, etc. Precisamos nos lembrar que alguém, ou algo, provavelmente se encarregou de coletar esses dados e muitas vezes algo passa batido. O mesmo pode se dizer da rotulagem. Às vezes teremos dados rotulados, às vezes não. Imagina você, ser humano, ter que passar o dia lendo milhões de informações e categorizá-las uma a uma? É um processo mecânico, cansativo e que pode levar a erros.
Conclusão
Respondendo às perguntas do título deste artigo: De onde vem os dados? Bom, eles vêm de vários lugares diferentes, por isso eles são categorizados em domínios de problemas (texto, áudio, vídeo, imagem, biologia, etc.). O que são e para que servem? Bom, são a fonte de vida dos modelos de aprendizado de máquina. Sem os datasets, o aprendizado de máquina seria impossível. Os datasets são formados por tipos diferentes de dados (categóricos, numéricos, etc.). Espero que tenham gostado deste artigo. No próximo vamos falar um pouco mais sobre datasets e também começar a praticar um pouco com Python e R. Até lá.