Sopa de Letrinhas


O termo ciência de dados esta muito na moda em qualquer evento que se vá académico ou de business, blog de tecnologia, meet-ups o que mais se escuta é uma sopa de letrinhas do que se espera de um profissional dessa área.  Com isso há uma busca incessante por profissionais nessa área que saibam cada vez mais de Big Data, Machine Learning, Deep Learning, Inteligência artificial, computação cognitiva, etc. Todo esse movimento é superpositivo ainda mais que o volume de dados continua crescendo exponencialmente. Contudo, quando uma área cai na boca do povo o que acontece é que os principais termos viram uma sopa de letrinha e muitas pessoas que não são da área começam a espalhar conceitos totalmente erróneos sobre esses termos. 

A algumas semanas eu participei de um meet-up sobre Data Driven e a empresa que estava organizando começou a falar das novas carreiras do futuro e treinamentos para ser um cientista de dados e para mim foi alarmante o quanto de conceitos errado foram ditos por profissionais que se dizem da área. O mesmo aconteceu em outro eventos, isto é todo mundo quer fazer e trabalhar com deep learning, machine leaning e inteligência artificial seja lá o que for isso

Sendo assim o post de hoje a ideia é explicar um pouco cada termo e o que acontece de errado na minha visão. 

Bom todo mundo que procura um bom cientista de dados quer alguém que saiba muito Machine Learning (aprendizado de máquina – ML) e estatística. Ah e claro tenha conhecimento em “deep learning”. Mas será que só isso é necessário para ser um cientista de dados? Serão esses os termos certos? Eu aposto que não. 

Eu digo que um cientista de dados precisa saber muito mais saber de mineração de dados e do processo de KDD do que só de Machine Learning e Deep Learning. E por que?

Se formos na definição de Machine Learning que esta no livro do Tom Michel com o nome Machine Learning temos que “..Machine Learning is concerned with the questiono of how to construct computer programs that automatically improve with experience.” Em outras palavras podemos dizer que Machine Learning tem por objetivo fazer o computador aprender com o tempo assim como nós seres humanos. No próprio livro encontramos frases dizendo que aplicações em mineração de dados podem ensinar o computador a aprender, por exemplo, a detectar fraude, ou outras ações. 

A tarefa de mineração de dados que esta dentro do processo KDD (Knowledge Discovery in Data) é muito mais ampla e engloba Machine learning. 

Na tarefa de mineração de dados o cientista de dados deve decidir que tarefa específica vai utilizar, se esta será supervisionada, semi-supervisionada ou não supervisionada. Tarefas supervisionadas necessitam que os dados possuam rótulos (label) e a classificação é a melhor representação dessa tarefa. Para os dados poderem ser classificados, seja por uma árvore de decisão, por um SVM ou mesmo por uma rede neural (deep learning) é necessário que você tenha exemplos dos dados rotulados para se treinar o modelo. O mesmo acontece com a regressão que é uma classificação na qual a classe não é discreta e sim um valor contínuo. 

Já métodos semi-supervisionados temos classificadores que não precisam de muitos exemplos rotulados e sim alguns exemplos em pontos decisivos para o modelo. E o não supervisionado na qual não são necessários dados rotulados. 

Já o conceito de “deep learning” é muito mais restrito, é uma classe de algoritmos dentro de machine learning que é baseado em redes neurais e usado para detecção de padrões em dados.


A vertentes que dizem que mineração de dados (data mining) tem outro objetivo que o aprendizado de máquina, isso pode ser verdade em alguns casos, já que a mineração de dados pode ser usada para detectar padrões em dados e isso pode ser feito usando uma hipótese, isto é, ver se os dados responde uma pergunta do dono dos dados ou exploratório tentar inferir padrões e conhecimento dos dados. Enquanto uma abordagem de aprendizado de maquina (machine learning) pode ter um objetivo especifico e pode precisar de dados especificos. Mas dentro da mineração de dados podemos usar técnicas de aprendizado de maquina para detectar padrões e verificar hipóteses.

E o tal big data? Bom o dado, não importa se é big ou small, o cuidado com ele terá que ser o mesmo em qualquer caso. O que vai mudar muito provavelmente é a abordagem, já que com um volume de dados muito grande nem todos os algoritmos vão escalar muito bem e não serão todas as plataformas que conseguirão uma boa performance. Assim, com um volume de dados grande pode ser que você precise de algo distribuído (tipo hadoop ou spark) e um pré-processamento melhor, já que talvez a redução do número de instancias ou atributos seja necessária.

Comentários