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