Data Notas do cientista: por onde começar e isso é necessário?



TL; DR é um post para perguntas / respostas sobre Data Science e como entrar e crescer na profissão. No artigo, irei analisar os princípios básicos e as perguntas frequentes e estou pronto para responder suas perguntas específicas - escreva nos comentários (ou em um pessoal), tentarei responder tudo em alguns dias.
Com o advento do ciclo de notas "data do satanista", muitas mensagens e comentários vieram com perguntas sobre como começar e onde cavar, e hoje iremos analisar as habilidades básicas e dúvidas que surgiram após as publicações.



Tudo o que é mencionado aqui não reivindica nenhuma verdade última e é a opinião subjetiva do autor. Examinaremos as principais coisas que parecem ser as mais importantes no processo.



Por que exatamente isso é necessário



Para que o objetivo seja alcançável melhor, para que pelo menos de alguma forma pareça concreto - você quer se tornar um DS ou Cientista de Pesquisa no Facebook / Apple / Amazon / Netflix / Google - veja os requisitos, idiomas e habilidades necessárias diretamente para cada posição. Qual é o processo de contratação? Como você passa um dia típico em tal função? Como é o perfil médio da pessoa que aí trabalha?



Freqüentemente, o quadro geral é que uma pessoa não entende realmente o que exatamente deseja e não é totalmente claro como se preparar para essa imagem vaga - portanto, vale a pena ter pelo menos um plano aproximado do que exatamente você deseja.

Limite sua visão de meta atual
Mesmo que mude ao longo do caminho, e geralmente seja normal mudar de planos durante a jogada, você deve ter um objetivo à sua frente e se concentrar nele, avaliando e repensando periodicamente.



Será ou ainda é relevante



Quando você chegar a uma posição.



Imagine que antes de sua posição você precise obter um PhD, trabalhar por 2-3 anos na indústria e geralmente cortar o cabelo enquanto medita em um monastério - a situação com Data Science não será a mesma que era antes com economistas e advogados? Nem tudo mudará além do reconhecimento na área que você deseja fazer.



Há uma boa chance de que todos corram para lá agora e veremos uma imagem quando houver uma ampla camada de pessoas tentando entrar na profissão - e haverá apenas vagas escassas para o início.



Pode valer a pena considerar as tendências atuais ao escolher um caminho, não apenas o estado atual do mercado de trabalho, mas também a sua ideia de como ele está mudando e onde está.



Por exemplo, o autor não planejou ir para a data dos satanistas, mas durante o PhD ele cortou projetos paralelos que se sobrepunham fortemente em habilidades com DS e depois de se formar na pós-graduação naturalmente mudou para quarta-feira, vendo uma boa posição.



Se no decorrer da peça descobrir que será necessário ir para outro lugar - pois agora existe o próprio movimento e todas as ações mais interessantes estão acontecendo, bem, então iremos para lá naturalmente.



Repartição de habilidades



Essas são categorias condicionais de habilidades que considero a chave para um trabalho completo e eficaz no DS. Vou destacar inglês separadamente - aprenda tudo o que você fizer em CS. Em seguida, serão as categorias principais.



Programação / Scripting



Com que idiomas você deve se familiarizar? Pitão? Java? Script Shell? Lua? Sql? C ++?



O que exatamente você precisa ser capaz de fazer e por quê em termos de programação - aqui a gama de posições é muito diferente.



Por exemplo, frequentemente tenho que implementar lógicas complexas, consultas, modelos, análises e geralmente desenvolver sistemas interpretados, mas quase nunca há requisitos para a velocidade do código, exceto para os mais gerais e razoáveis.



Portanto, meu conjunto de habilidades é muito diferente daquele que escreve a biblioteca Tensorflow e pensa em otimizar o código para o uso eficiente do cache l1 e similares, então veja o que exatamente você precisa e avalie o caminho certo para o aprendizado.



Por exemplo, para python, as pessoas já estão fazendo um mapa de aprendizagem de línguas.



Certamente, para as suas necessidades, já existem conselhos experientes e boas fontes - você precisa decidir sobre uma lista e começar a trabalhar nela.



Compreender os processos de negócios



Sem ele, em lugar nenhum: você precisa entender por que é necessário neste processo, o que está fazendo e por quê. Freqüentemente, isso é o que pode economizar muito tempo, maximizar seus benefícios e não perder tempo e recursos com besteiras.



Normalmente faço as seguintes perguntas:



  • O que exatamente estou fazendo na empresa?
  • Pelo que?
  • Quem vai usar e como?
  • Que opções eu tenho?
  • Quais são os limites dos parâmetros?


Aqui está um pouco mais de detalhes sobre os parâmetros: muitas vezes você pode mudar muito o cenário de trabalho, se você sabe que algo pode ser sacrificado: por exemplo, interpretabilidade ou vice-versa, alguns por cento não irão desempenhar um papel aqui e temos uma solução tãããããããããããããããããããããããããããã o rápida, e o cliente precisa, porque paga pelo tempo que o pipeline está em execução na AWS.



Matemáticas



Aqui você pensa e você mesmo entende tudo - sem conhecimento de matemática básica, você nada mais é do que um macaco bebê com uma granada (perdoe a Floresta Aleatória) - então você precisa entender pelo menos coisas básicas. Se eu fizesse a lista mínima, ela incluiria:



  • Álgebra linear - uma grande quantidade de recursos é fácil de pesquisar no Google, procure o que melhor se adapta a você;
  • Análise matemática - (pelo menos no volume dos dois primeiros semestres);
  • A teoria da probabilidade está em toda parte no aprendizado de máquina;
  • Combinatória - na verdade, é complementar ao teorizador;
  • Teoria de grafos - pelo menos BASIC;
  • Algoritmos - pelo menos o volume dos dois primeiros semestres (veja as recomendações de Cormen em seu livro);
  • Matlogic - pelo menos básico.


Análise prática de dados e visualização



Uma das coisas mais importantes é não ter medo de sujar as mãos nos dados e fazer uma análise abrangente do conjunto de dados, do projeto e lançar uma rápida visualização dos dados.



A análise exploratória de dados deve se tornar algo natural, como todas as outras transformações de dados e a capacidade de lançar um pipeline simples de tuzles unix (ver artigos anteriores) ou escrever um laptop legível e compreensível.



Mencionarei separadamente a visualização: é melhor ver uma vez do que ouvir cem vezes.



Exibir um gráfico para o gerente é cem vezes mais fácil e compreensível do que um conjunto de números, então matplotlib, seaborn e ggplot2 são seus amigos.



Habilidades interpessoais



É igualmente importante ser capaz de comunicar suas idéias, bem como resultados e preocupações (etc.) a outras pessoas - certifique-se de que você é capaz de declarar claramente a tarefa em termos técnicos e comerciais.



Você pode explicar a colegas, gerentes, chefes, clientes e a todos que precisam do que está acontecendo, com quais dados você opera e que tipo de resultados obteve.



Seus gráficos e documentação devem ser lidos sem você. Ou seja, você não precisa ir até você para entender o que está escrito ali.



Você pode fazer uma apresentação clara para transmitir a mensagem e / ou documentar seu projeto / trabalho.



Você pode transmitir sua posição de forma racional e sem emoção, dizer sim / não ou questionar / apoiar a decisão.



Treinamento



Existem muitos lugares diferentes onde você pode aprender tudo isso. Vou dar uma pequena lista - experimentei de tudo e, para ser honesto, cada item tem seus prós e contras. Experimente e decida o que funciona para você, mas eu recomendo fortemente tentar várias opções e não ficar preso a uma.



  • Cursos online: coursera, udacity, Edx, etc;
  • Novas escolas: online e offline - SkillFactory, SHAD, MADE;
  • Escolas clássicas: programas de mestrado universitário e cursos de atualização;
  • Projetos - você pode simplesmente selecionar tarefas que são de seu interesse e cortá-las, enviando-as para o github;
  • Estágios - é difícil sugerir algo, tem que procurar o que tem disponível e encontrar opções adequadas.


Isso é necessário?



Concluindo, talvez eu acrescente três princípios pessoais que tento seguir sozinho.



  • Deve ser interessante;
  • Para trazer prazer interior (= pelo menos não causar sofrimento);
  • « ».


Por que exatamente eles? É difícil imaginar que você estará fazendo algo no dia a dia e não gostará ou não se interessará. Imagine que você é um médico e odeia se comunicar com as pessoas - é claro que isso pode funcionar de alguma forma, mas você ficará constantemente desconfortável com o fluxo de pacientes que querem perguntar algo a você. Isso não funciona no longo prazo.



Por que mencionei especificamente até mesmo o prazer interior? Parece-me que isso é necessário para o desenvolvimento posterior e, em princípio, para o processo de aprendizagem. Eu realmente gosto quando consigo completar algum recurso complexo e construir um modelo ou calcular um parâmetro importante. Eu gosto quando meu código é esteticamente agradável e bem escrito. Portanto, é interessante estudar algo novo e não requer diretamente nenhuma motivação significativa.



“Ser seu” é exatamente o sentimento de que você queria fazer isso. Eu tenho uma pequena história. Desde criança gostava de rock (e metal - SALMON!) E de quantas pessoas queriam aprender a tocar, só isso. Acontece que eu não tinha audição e nem voz - isso não me incomodava de forma alguma (e devo dizer que não incomoda muitos artistas no palco), e quando era um garoto eu ganhei um violão ... e ficou claro que eu realmente não gostava de ficar sentado por horas e jogar. Estava indo muito, o tempo todo me parecia que algum tipo de lixo estava saindo - eu não sentia nenhum prazer nisso e só me sentia péssimo, estúpido e completamente incapaz. Eu literalmente me forcei a sentar para as aulas debaixo do pau e em geral não era na forragem do cavalo.



Ao mesmo tempo, eu poderia ficar sentado calmamente por horas desenvolvendo algum tipo de brinquedo, animar algo em um flash (ou outra coisa) usando um script, e estava extremamente motivado para terminar os elementos do jogo ou lidar com a mecânica do movimento e / ou conectando bibliotecas de terceiros, plug-ins e tudo mais.



E em algum momento percebi que tocar violão não é meu, e realmente gosto de ouvir, não de tocar. E meus olhos estavam em chamas quando escrevi jogos e códigos (ouvindo todos os tipos de metal naquele momento) e isso é o que eu gostava na época, e deveria estar fazendo isso.



Você ainda tem dúvidas?



Claro, não poderíamos passar por todos os tópicos e dúvidas, então escreva seus comentários e de forma pessoal - Fico sempre feliz em ter perguntas.










All Articles