Cientista de dados vs engenheiro de aprendizado de máquina

66

Quais são as diferenças, se houver, entre um "cientista de dados" e um "engenheiro de aprendizado de máquina"?

Ao longo do ano passado, o "engenheiro de aprendizado de máquina" começou a aparecer muito nas ofertas de emprego. Isso é particularmente notável em São Francisco, que é indiscutivelmente o local de origem do termo "cientista de dados". A certa altura, "cientista de dados" ultrapassou o "estatístico", e estou pensando se o mesmo agora está lentamente começando a acontecer com o "cientista de dados".

O conselho de carreira está listado como off-topic neste site, mas vejo minha pergunta como altamente relevante, pois estou perguntando sobre definições; Não estou perguntando sobre recomendações, dada minha trajetória de carreira ou circunstâncias pessoais, como outras perguntas fora do tópico.

Esta pergunta está relacionada ao tópico porque um dia poderá ter implicações significativas para muitos usuários deste site. De fato, esse site de troca de pilhas pode não existir se a evolução "estatístico" vs "cientista de dados" não tivesse ocorrido. Nesse sentido, essa é uma questão bastante pertinente e potencialmente existencial.

Ryan Zotti
fonte
2
Data scientistsoa como uma designação com pouca clareza sobre qual será o trabalho real, enquanto machine learning engineeré mais específico. No primeiro caso, sua empresa fornecerá um objetivo e você precisará descobrir qual abordagem (aprendizado de máquina, processamento de imagens, rede neural, lógica difusa etc.) você usaria. No segundo caso, sua empresa já se reduziu a qual abordagem deve ser usada.
gurvinder372
Relacionado: ciência de dados x pesquisa operacional . Além disso, um cientista é algo diferente de um engenheiro . Infelizmente, a indústria não parece se importar com isso.
Lagarto discreto
11
Como alguém apontou, um engenheiro de ML é simplesmente alguém que coloca modelos de ML em produção. Não se espera que ele compreenda profundamente os modelos preditivos reais e sua matemática subjacente; eles são obrigados a dominar as ferramentas de software que tornam esses modelos utilizáveis. Espera-se que um cientista de dados tenha um entendimento profundo de estatísticas / matemática e ML / AI, e geralmente é a pessoa que cria as ferramentas usadas pelos engenheiros de ML. Portanto, um engenheiro de ML está basicamente mais próximo de um engenheiro de software especializado e um DS está mais próximo de um estatístico computacional.
Digio 26/08/18

Respostas:

55

Boa pergunta. Na verdade, há muita confusão sobre esse assunto, principalmente porque ambos são empregos bastante novos. Mas se focarmos na semântica, o verdadeiro significado dos trabalhos se tornará claro.

Antes, é melhor comparar maçãs com maçãs, falando sobre um único assunto, o Data. O Machine Learning e seu subgênero (Deep Learning, etc.) são apenas um aspecto do Mundo de Dados, juntamente com as teorias estatísticas, a aquisição de dados (DAQ), o processamento (que pode ser não baseado no aprendizado de máquina), o interpretação dos resultados, etc.

Portanto, para minha explicação, estenderei a função de Engenheiro de Aprendizado de Máquina para a de Engenheiro de Dados.

A ciência é sobre experimentos, tentativas e fracassos, construção de teoria, entendimento fenomenológico. Engenharia é trabalhar sobre o que a ciência já sabe, aperfeiçoando-a e transportando-a para o "mundo real".

Pense em um proxy: qual é a diferença entre um cientista nuclear e um engenheiro nuclear?

O cientista nuclear é aquele que conhece a ciência por trás do átomo, a interação entre eles, aquele que escreveu a receita que permite obter energia dos átomos.

O engenheiro nuclear é o cara encarregado de pegar a receita do cientista e carregá-la para o mundo real. Portanto, o conhecimento sobre a física atômica é bastante limitado, mas ele também sabe sobre materiais, edifícios, economia e qualquer outra coisa útil para construir uma usina nuclear adequada.

Voltando ao mundo dos dados, aqui está outro exemplo: os caras que desenvolveram Redes Neurais Convolucionais (Yann LeCun) são Data Scientist, o cara que implementa o modelo para reconhecer rostos nas fotos é um Machine Learning Engineer. O responsável por todo o processo, desde a aquisição de dados até o registro da imagem .JPG, é um engenheiro de dados.

Então, basicamente, 90% dos Data Scientist hoje são realmente Engenheiros de Dados ou Engenheiros de Aprendizado de Máquina, e 90% das posições abertas como Data Scientist realmente precisam de Engenheiros. Uma verificação fácil: na entrevista, você será perguntado sobre quantos modelos de ML implantou na produção, e não sobre quantos artigos sobre novos métodos você publicou.

Em vez disso, quando você vê anúncios sobre "Engenheiro de aprendizado de máquina", isso significa que os recrutadores estão bem cientes da diferença e realmente precisam de alguém capaz de colocar algum modelo em produção.

Vincenzo Lavorini
fonte
Eu nunca pensei nos cientistas nucleares versus engenheiro. Acho que essa é uma resposta completa. É apropriado para a minha experiência, quando estou analisando é como aquele jaleco branco (jupyter e gráficos bonitos). Quando estou "sujando as mãos" com o trabalho de engenharia de produção (contêineres etl e webapp), estou constantemente encontrando casos extremos estranhos, bugs e mau cheiro de código.
22418 Tony
Yann LeCun não é um cientista da computação? E um cientista de dados seria alguém que usasse algoritmos e técnicas de computador pré-fabricados (inventados por cientistas da computação como Yann LeCun) para realizar análises científicas de dados? Da mesma maneira que outros cientistas utilizam computadores em seu trabalho? Então, adquirindo dados, limpando-os, combinando diferentes técnicas de análise (plotagem, correspondência de padrões, modelos ML, etc.) juntos, a fim de aprender verdades ocultas nos dados?
Didier A.
YLC, é um cientista da computação, mas é especializado em dados. O CS se tornou um campo muito amplo, a partir do qual todas essas novas definições (como o DS) ocorreram. E assim, usar o CS não se torna realmente discriminante. Como o apelido "Físico" há algumas centenas de anos atrás: hoje essa palavra na verdade não define o trabalho de alguém, a menos que você o especifique melhor (por exemplo, Partícula P., Estado Sólido P., etc.). Mas, enfim, um cientista (CS, DS, qualquer -S) não é alguém que se limita a usar as descobertas de outros. Em vez disso, seu trabalho é entender e, por esse meio, fazer descobertas.
Vincenzo Lavorini 27/01
Você poderia gentilmente responder a essa pergunta sobre Data Engineerorientação de carreira.
stom
Como é a ciência sobre "entendimento fenomenológico"?
ubadub 25/02
10

Os termos são nebulosos porque são novos

Por estar no meio de uma pesquisa de emprego no campo 'ciência de dados', acho que há duas coisas acontecendo aqui. Primeiro, os trabalhos são novos e não há definições definidas de vários termos; portanto, não há acordo comum sobre a correspondência de termos com as descrições dos trabalhos. Compare isso com 'desenvolvedor da Web' ou 'desenvolvedor de back-end'. Esses são dois trabalhos semelhantes que têm razoavelmente bem acordado e descrições distintas.

Segundo, muitas pessoas que publicam trabalhos e entrevistas iniciais não sabem muito bem para o que estão contratando. Isso é particularmente verdadeiro no caso de pequenas e médias empresas que contratam recrutadores para encontrar candidatos para eles. São esses intermediários que publicam as descrições dos cargos no CareerBuilder ou em qualquer fórum. Isso não quer dizer que muitos deles não sabem o que fazem, muitos conhecem bem as empresas que representam e os requisitos do local de trabalho. Mas, sem termos bem definidos para descrever diferentes trabalhos específicos, geralmente são gerados títulos nebulosos.

Existem três divisões gerais do campo

Na minha experiência, existem três divisões gerais do 'espaço de trabalho' da ciência de dados.

O primeiro é o desenvolvimento de técnicas matemáticas e computacionais que possibilitam a ciência de dados. Isso abrange coisas como pesquisa estatística sobre novos métodos de aprendizado de máquina, a implementação desses métodos e a construção de infraestrutura computacional para empregar esses métodos no mundo real. Esta é a divisão mais distante do cliente e a menor divisão. Grande parte desse trabalho é realizada por acadêmicos ou pesquisadores das grandes empresas (Google, Facebook, etc.). Isso é para coisas como desenvolver o TensorFlow do Google, as redes neurais SPSS da IBM ou qualquer que seja o próximo grande banco de dados de gráficos.

A segunda divisão está usando as ferramentas subjacentes para criar pacotes específicos de aplicativos para executar qualquer análise de dados que seja necessária. As pessoas são contratadas para usar Python ou R ou o que quer que seja para criar capacidade de análise em algum conjunto de dados. Muito desse trabalho, na minha experiência, envolve fazer a 'lavagem de dados', transformando dados brutos, sob qualquer forma, em algo utilizável. Outra grande parte desse trabalho é a base de dados; descobrindo como armazenar os dados de uma maneira que possa ser acessada em qualquer linha do tempo em que você precisar. Este trabalho não exige muito ferramentas, mas o uso de bibliotecas de banco de dados, estatísticas e análises gráficas existentes para produzir alguns resultados.

A terceira divisão está produzindo análises a partir dos dados recém-organizados e acessíveis. Esse é o lado mais voltado para o cliente, dependendo da sua organização. Você precisa produzir análises que os líderes de negócios possam usar para tomar decisões. Isso seria o menos técnico das três divisões; muitos empregos são híbridos entre a segunda e a terceira divisões neste momento, uma vez que a ciência de dados está em sua infância. Mas, no futuro, eu suspeito fortemente que haverá uma divisão mais limpa entre esses dois empregos, com as pessoas ganhando o segundo emprego precisando de uma educação técnica, ciência da computação ou estatística, e esse terceiro emprego precisando apenas de um ensino geral.

Em geral, os três poderiam se descrever como 'cientistas de dados', mas apenas os dois primeiros poderiam se descrever como 'engenheiros de aprendizado de máquina'.

Conclusão

Por enquanto, você terá que descobrir o que cada trabalho implica. Meu trabalho atual me contratou como 'analista', para fazer algumas coisas de aprendizado de máquina. Mas, quando começamos a trabalhar, ficou claro que a base de dados da empresa era inadequada e agora provavelmente 90% do meu tempo é gasto trabalhando nos bancos de dados. Agora, minha exposição ao aprendizado de máquina está executando rapidamente coisas através do pacote scikit-learn que parecer mais apropriado, e enviando arquivos csv aos analistas da terceira divisão para fazer apresentações em powerpoint para o cliente.

O campo está em fluxo. Muitas organizações estão tentando adicionar a tomada de decisões em ciência de dados a seus processos, mas sem saber claramente o que isso significa. Não é culpa deles, é muito difícil prever o futuro, e as ramificações de uma nova tecnologia nunca são muito claras. Até que o campo esteja mais estabelecido, muitos empregos em si serão tão nebulosos quanto os termos usados ​​para descrevê-los.

kingledion
fonte
9

[Completamente uma opinião pessoal]

Quando o termo 'cientista de dados' ultrapassou 'estatístico', é mais para parecer legal, do que para qualquer grande diferença. Da mesma forma, o termo 'Deep Learning'. São apenas redes neurais (que é outro algoritmo de Machine Learning) com mais algumas camadas. Ninguém pode explicar quando uma rede neural específica pode ser chamada DL, em vez de ML, porque a definição em si é imprecisa. Então, é o termo 'cientista de dados'.

No entanto, como as empresas estão adotando a mentalidade do DevOps para a ciência de dados, o termo ML Engineer evoluiu.

Qual é a mentalidade do DevOps para a ciência de dados?

É aqui que você cria o modelo, implanta e também espera mantê-lo em produção. Isso ajuda a evitar muitos atritos nas equipes de software.

[PS: DevOps é uma maneira de fazer software, mais como uma filosofia. Então, usá-lo como uma designação, novamente me confunde].

Portanto, os engenheiros de ML devem conhecer as nuances da engenharia de sistemas, ML e estatísticas (obviamente).

Uma generalização vaga seria Data Engineer + Data Scientist = ML Engineer.

Dito isto, as designações nesse espaço estão se tornando vagas dia a dia, e o termo 'Estatístico' está se tornando cada vez mais relevante (a ironia!).

Dawny33
fonte
2
O Machine Learning é muito mais do que apenas redes neurais (apenas como exemplo, considere todos os tipos de classificadores baseados em árvores), portanto, não veja como "o Deep Learning é apenas o Machine Learning com mais algumas camadas".
S. Kolassa - Restabelece Monica
@StephanKolassa Yeah. Aceita. Não deveria ter generalizado demais :) Obrigado por apontar.
Dawny33
11
(+1) mas não acho que o "estatístico" se torne mais relevante é uma ironia, apenas ... uma transição esperada? Onde estão os "pesquisadores operacionais" hoje em dia? ;)
usεr11852 diz Reinstate Monic
7

Pode variar de empresa para empresa, mas o Data Scientistexiste há algum tempo e geralmente é utilizado para extrair conhecimento e insights dos dados .

Eu vi cientistas de dados fazendo

  • Escrever algoritmos de processamento e reconhecimento de imagens,
  • Projetar e implementar árvores de decisão para um caso de uso de negócios,
  • Ou simplesmente projete e implemente alguns relatórios ou grave ETLs para transformações de dados.

A ciência de dados , no entanto, é um superdomínio do aprendizado de máquina

Ele emprega técnicas e teorias extraídas de muitos campos nas amplas áreas de matemática, estatística, ciência da informação e ciência da computação, em particular dos subdomínios de aprendizado de máquina, classificação, análise de cluster, quantificação de incertezas, ciência da computação, mineração de dados, bancos de dados, e visualização .

O engenheiro de aprendizado de máquina parece ser uma designação em que seu empregador já se reduziu ao

  • Aproximação,
  • Ferramentas,
  • e um modelo aproximado (do que entregar)

para extrair conhecimento ou insights dos dados usando o aprendizado de máquina e seu trabalho será projetar e implementar algoritmos de aprendizado de máquina para fornecer o mesmo .

gurvinder372
fonte
5

Engenheiros de Machine Learning e Data Scientist focados em engenharia são os mesmos, mas nem todos os Data Scientist são focados em engenharia. Cerca de 5 anos atrás, quase todos os Data Scientist eram focados em engenharia, por exemplo, eles tinham que escrever um código de produção. Agora, no entanto, existem muitas funções de cientista de dados que são a maior parte: jogar no caderno Jupyter, entender dados, fazer gráficos bonitos, explicar a clientes, gerentes, analistas ... Eles não fazem engenharia. E acredito que o termo Engenheiros de Aprendizado de Máquina sublinhou que essa é uma posição de engenharia.

Akavall
fonte
2

TL; DR: Depende de quem está perguntando.

A resposta a essa pergunta depende muito das expectativas, conhecimentos e experiências de quem está perguntando. Uma pergunta análoga com uma resposta confusa é:

Qual é a diferença entre um desenvolvedor de software, um engenheiro de software e um cientista da computação?

Para algumas pessoas, principalmente as que estudam ou ensinam ciência da computação e engenharia de software, há uma diferença grande e definida entre esses campos. Mas para o trabalhador médio de RH, recrutador técnico ou gerente, essas são apenas "pessoas do computador".

Eu amo esta citação de Vincent Granville , ênfase minha:

No início de minha carreira (por volta de 1990), trabalhei em tecnologia de sensoriamento remoto de imagens, entre outras coisas, para identificar padrões (ou formas ou recursos, por exemplo, lagos) em imagens de satélite e para realizar segmentação de imagens: naquela época, minha pesquisa era rotulada como computacional estatísticas, mas as pessoas que fazem exatamente a mesma coisa no departamento de ciência da computação ao lado da minha universidade de origem chamam a pesquisa de inteligência artificial. Hoje, isso seria chamado de ciência de dados ou inteligência artificial, sendo os subdomínios processamento de sinais, visão computacional ou IoT.

lfalin
fonte
1

O Machine Learning é mais específico e, nesse campo, você precisará dominar o seguinte:

  • Recursos vs Etiquetas
  • Dados de teste x dados de treinamento
  • Normalização de recursos
  • Estruturas de dados comuns (matrizes de matrizes)
  • Seleção de Recursos
Daniel
fonte
0

Não discordo de nenhuma das respostas dadas. No entanto, acho que há um papel do Data Scientist que está sendo encoberto em praticamente todas as respostas aqui. A maioria dessas respostas diz algo como "Bem, um engenheiro apenas escreve e implanta o modelo...". Espere um segundo - há muito trabalho nessas duas etapas!

Minha definição central de cientista de dados é alguém que aplica o método científico ao trabalho com dados. Então, eu estou constantemente pensando em hipóteses, projetando testes, coletando meus dados e executando esses testes, verificando meus resultados de validação cruzada, tentando novas abordagens, transformando meus dados, etc. etc. "em um ambiente profissional.

Portanto, para sua resposta, acho que "o diabo está nos detalhes", porque você não pode simplesmente encobrir alguns desses passos / termos. Além disso, se você procura emprego, deve ter cuidado, pois "engenheiro de dados" e "cientista de dados" podem ter escalas de pagamento lamentavelmente diferentes - você não deseja ser cientista de dados com um salário de engenheiro de dados!

Sempre me coloco como cientista de dados, digo às empresas que trabalho em modelos preditivos (não apenas analíticos) e que não sou um jóquei do Excel - escrevo em linguagens de programação (R, Python, etc.). Se você conseguir encontrar uma posição que permita fazer as duas coisas, estará no caminho de ser um cientista de dados.

I_Play_With_Data
fonte