O que é ciência de dados? Conceitos pra quem está começando…

Giovanni Santin
pizzadedados
Published in
5 min readDec 19, 2018
Paciência vocês precisam ter! — Mestre Yoda

CCaso você faça parte do universo de TI, ou simplesmente seja uma pessoa que usa o Google (ou qualquer outra engine de busca) avidamente, existe uma grande probabilidade de você já ter ouvido falar sobre ciência de dados, inteligência artificial e machine learning.

Mas que diabos é isso?

Se você está se perguntando isso, seus problemas acabaram [nem tanto]! Vou tentar definir com alguns pequenos conceitos, para entendermos do que se tratam os principais termos que estão começando a ser utilizados nas grandes corporações a torto e direito, algumas vezes nos contextos errados.

Só vamo Rob!

Inteligência artificial é um termo utilizado em contraste a inteligência natural possuída por nós, seres humanos (e outros animais), e coloquialmente utilizada para dizer que uma máquina está simulando características cognitivas, pra se parecer com seres humanos. Em termos práticos, qualquer solução (seja física, como um robô, ou lógica, como um programa) capaz de reconhecer um problema e tomar ações para resolvê-lo, é denominada uma solução de inteligência artificial.

Nesse processo de reconhecimento do problema, entra um campo da inteligência artifical chamado de machine learning (do inglês, aprendizado de máquina). Quem cunhou esse termo pela primeira vez, foi o engenheiro e posteriormente professor de Stanford Arthur Samuel. Segundo o professor, machine learning pode ser definido como:

Field of study that gives computers the ability to learn without being explicitly programmed.

Em tradução livre, machine learning (ML) é o "campo de estudo que confere aos computadores a habilidade de aprender sem serem explicitamente programados".

Hoje em dia a definição do professor Arthur é considerada genérica e a definição de um outro professor, dessa vez da Carnegie Mellon University (CMU), Tom Mitchell, é mais utilizada. Segundo o professor Tom:

A computer program is said to learn from experience E with respect to some class of tasks T and performance measure P if its performance at tasks in T, as measured by P, improves with experience E.

De novo em tradução livre: "Diz-se que um programa de computador aprende com a experiência E em relação a alguma classe de tarefas T e medida de desempenho P se o seu desempenho nas tarefas em T, como medido por P, melhora com a experiência E".

Minha cara quando vi essa definição pela primeira vez…

Se você está se sentindo sozinho(a), com frio e perdido(a), não se sinta assim. Parece muito doido o que o professor Tom disse, mas se analisarmos cada parte dessa frase, vamos ver que faz muito sentido. Vou tentar ilustrar com um exemplo, fiquem atentos as tags (E, T e P) definidas pelo professor.

Eu sou dono de uma corretora de imóveis e seria muito interessante pro meu trabalho se eu soubesse, com base nas características dos imóveis, qual o seu valor aproximado. Isso me ajudaria a identificar situações vantajosas pros meus clientes, por exemplo, identificando um imóvel a venda por um preço abaixo do valor de mercado.

Acontece que como eu sou um cara frenético por dados, desde quando comecei a minha corretora eu resolvi guardar todos os preços das casas que vendemos e fiz ainda mais que isso, guardei também algumas características que julgava relevantes pra determinar o preço: área da planta baixa, quantidade de cômodos, quantidade de suítes, proximidade à escola e distância do centro da cidade.

Conversando com meus amigos especialistas em ML, me foi sugerido construir um modelo capaz de utilizar os dados que eu tinha armazenado para determinar para qualquer outro imóvel na cidade onde a minha empresa atua, qual o valor de mercado esperado.

Voltando aos conceitos do professor Tom:

  • Experiência (E): base histórica de vendas realizadas pela minha corretora de imóveis.
  • Tarefa (T): determinar preço de mercado das casas com base nas suas características.
  • Medida de desempenho (P): quão próximas as predições são do valor real das casas. Essa métrica também pode ser chamada de erro do modelo nesse caso.

Ou seja, se eu for capaz de construir um modelo que com base nos dados históricos de vendas seja capaz de determinar o preço de mercado de uma casa qualquer, com um grau de assertividade razoável e suficiente, então eu sou capaz de construir um modelo de ML.

Mas quem faz esse tipo de modelo é um programador [ou engenheiro de software]?

Mais ou menos. O mercado chama esse profissional de cientista de dados. Vou me arriscar aqui e dizer que nos fóruns de discussão e nos bares existe um consenso de que a principal habilidade que um cientista de dados precisa de ter desenvolvida não é a programação, mas sim conceitos matemáticos e estatísticos e muito, mas MUITO conhecimento do negócio no qual está se tentando aplicar ML para torná-lo mais eficiente ou melhor. Uma forma muito utilizada para se referir a esse conhecimento é a expressão domain knowledge (conhecimento de domínio).

Diagrama de Venn — habilidades desejadas em um profissional de ciência de dados. Fato ou fake?

O foco de um cientista de dados deve ser representado em apenas duas palavras, que por coincidência definem o seu ramo de atuação: ciência e dados. Foco nos dados significa que é importante pensar em tarefas de ciência de dados que façam sentido dentro do domínio de conhecimento e também que os dados sejam representativos e possuam a qualidade necessária. Foco em ciência significa aderir à abordagens científicas para coleta de dados e análise, dos quais a reprodutibilidade possui um papel fundamental. A linguagem de programação é apenas uma ferramenta no cinto de utilidades do cientista de dados e portanto deve ser escolhida de acordo com a tarefa que deve ser cumprida. Popularmente, Python e R são duas linguagens que possuem um ambiente próprio para ciência de dados. Entretanto, outras linguagens de programação podem ser utilizadas e deveriam ficar no radar do cientista de dados.

"Você quer me dizer então que é cientista de dados? E o que você faz aqui?"

Só pra deixar claro, construir modelos de machine learning não é o único papel de um cientista de dados, mas é uma parte importante do trabalho. Além disso, o(a) cientista de dados não é (na maioria dos casos) o(a) único(a) profissional envolvido na construção desses modelos, alguns outros profissionais-chave nessa jornada são o(a) engenheiro(a) de dados, o(a) especialista de negócio e o(a) próprio(a) engenheiro(a) de software, mas isso é assunto para um outro post.

E aí, alcançamos nosso objetivo de entender pelo menos um pouco do que se trata inteligência artificial e machine learning? Se vocês tiverem alguma sugestão ou reflexão para fazer, compartilhem aí embaixo. E até a próxima!

--

--

Giovanni Santin
pizzadedados

Staff Data Scientist at Origin Financial. We want to end the stress that dealing with finances bring to your life.