Guia de entrevista Data Science

 

Guia de entrevista de Ciência de Dados.

  • Data Science é um campo bastante amplo e diversificado. Como resultado, é realmente difícil ser um pau para toda obra. 
  • Tradicionalmente, a ciência de dados se concentraria em matemática, ciência da computação e especialização no domínio.

Ferramentas de software(Software Tools)

Na maioria dos locais de trabalho de ciência de dados , as habilidades de software são essenciais..

Linguagem de programação(Programming Language)

Python e R são os mais populares no espaço da Data Science. No entanto, também encontrei C / C ++, Java e Scala. Embora, eu recomendaria pessoalmente o Python, pois tem todas as bibliotecas matemáticas, bem como bibliotecas especializadas para consultar vários bancos de dados e manter interfaces de usuário da web interativas. Bibliotecas Python comuns de escolha são matplotlib, numpy, pandas e scikit-learn.

 

 

 

Gerenciamento de banco de dados(Database management)

É comum ver a maioria dos cientistas de dados em um dos dois campos: matemáticos e arquitetos de banco de dados. É provável que sinta que escrever uma consulta SQL aninhada dupla é um pesadelo absoluto. Dito isso, é importante ter algum conhecimento de otimização de consulta (para sistemas SQL e noSQL).

.Coleta e limpeza de dados(data Collection and Cleaning)

Agora que cobrimos as necessidades de software, começaremos a fazer uma transição suave para o domínio da matemática. Em torno desta parte do processo, geralmente você precisa ter alguma coleta de dados e limpeza de fundo. Isso pode ser coletar dados de sensores, analisar sites ou realizar pesquisas. Depois de coletar os dados, eles precisam ser transformados em um formato utilizável (por exemplo, armazenamento de valores-chave em arquivos JSON Lines). Depois que os dados são coletados e colocados em um formato utilizável, é essencial realizar algumas verificações de qualidade dos dados. Algumas verificações de qualidade comuns são descritas abaixo:

  • Manuseio NaN

NaN ou “Não é um número” é um marcador comum para dados ausentes. Se o número de NaNs para o recurso específico for pequeno, geralmente é suficiente preencher os NaNs com o valor médio (de todo o conjunto de dados ou de uma janela) ou com 0s (para um conjunto de dados esparsos).NaNs em um conjunto de dados geralmente indica:

– os dados não existem

– os dados existem, mas não sabemos o que são

Com base no caso de uso específico, as medidas apropriadas devem ser tomadas.

  • Desequilíbrio de classe(Class Imbalance)

Especificamente para modelos de aprendizagem supervisionada, é importante que as classes (ou alvos) sejam equilibradas. No entanto, em casos de fraude, é muito comum haver grande desequilíbrio de classes (por exemplo, apenas 2% do conjunto de dados é fraude real).Essas informações são importantes para decidir sobre as escolhas apropriadas para engenharia de recursos, modelagem e avaliação de modelo. 

 

  • Análise Univariada(Univariate Analysis)

A análise univariada de características únicas (ignorando os efeitos coovariáveis) é importante ao tentar procurar outliers e picos incomuns na variância. A análise univariada comum de escolha é o histograma

 

 

  • Análise Bivariada(Bivariate Analysis)

Na análise bivariada, cada recurso é comparado a outros recursos no conjunto de dados. Isso incluiria matriz de correlação, matriz de covariância ou minha favorita, a matriz de dispersão.

As matrizes de dispersão nos permitem encontrar padrões ocultos, como

– recursos que devem ser projetados juntos

– recursos que podem precisar ser eliminados para evitar a multicolinearidade. 

A multicolinearidade é, na verdade, um problema para vários modelos, como a regressão linear e, portanto, precisa ser tratada de acordo.

 

Engenharia de Recursos(Feature Engineering)

Depois que os dados são coletados, limpos e analisados, é hora de começar a criar recursos a serem usados ​​no modelo. Nesta seção, exploraremos algumas táticas comuns de engenharia de recursos.

  • Transformação(Transformation)

Às vezes, o recurso por si só pode não fornecer informações úteis. Por exemplo, imagine o uso de dados de uso da Internet. Você terá usuários do YouTube chegando a Gigabytes, enquanto os usuários do Facebook Messenger usam alguns Megabytes. A solução mais simples aqui seria pegar o LOG dos valores. Outro problema é o uso de valores categóricos. Embora os valores categóricos 

 

Embora sejam comuns no mundo da ciência de dados, perceba que os computadores só podem compreender números. Para que os valores categóricos façam sentido matemático, eles precisam ser transformados em algo numérico. Normalmente, para valores categóricos, é comum realizar um One Hot Encoding. Em One Hot Encoding, um novo recurso é criado para cada valor categórico para indicar se ele está presente no registro fornecido. O exemplo de uma codificação ativa é fornecido abaixo:

  • Combinação(Combination)

Certos recursos são redundantes por si só, mas são úteis quando agrupados. Por exemplo, imagine que você tenha um modelo preditivo para densidade de tráfego e uma coluna para cada tipo de carro. Naturalmente, você não se preocupa com o tipo de carro, mas com a frequência do número total de carros. Portanto, um somatório de todos os tipos de carros pode ser feito para criar uma nova variável “all_cars”.

  • Redução de dimensionalidade(Dimensionality Reduction)

Às vezes, ter muitas dimensões esparsas pode prejudicar o desempenho do modelo. Para tais situações (como comumente feito no reconhecimento de imagem), algoritmos de redução de dimensionalidade são usados.

 

 

Um algoritmo comumente usado para redução de dimensionalidade é Análise de Componentes Principais ou PCA.

Seleção de recursos(Feature Selection)

Agora que você projetou sua lista de recursos, é hora de selecionar os recursos que ajudarão a construir o modelo mais adequado para o caso de uso. As categorias comuns e suas subcategorias são explicadas nesta seção.

  • Métodos de Filtro(Filter Methods)

Os métodos de filtro geralmente são usados ​​como uma etapa de pré-processamento. A seleção de recursos é independente de quaisquer algoritmos de aprendizado de máquina. Em vez disso, os recursos são selecionados com base em suas pontuações em vários testes estatísticos para sua correlação com a variável de resultado. A correlação é um termo subjetivo aqui. Os métodos comuns nesta categoria são Correlação de Pearson, Análise Discriminante Linear, ANOVA e Qui-quadrado.

 

 

 

Métodos de Wrapper(Wrapper Methods)

Nos métodos wrapper, tentamos usar um subconjunto de recursos e treinar um modelo usando-os. Com base nas inferências que extraímos do modelo anterior, decidimos adicionar ou remover recursos de seu subconjunto. O problema é essencialmente reduzido a um problema de pesquisa. Esses métodos são geralmente muito caros do ponto de vista computacional. Os métodos comuns nesta categoria são Seleção direta, Eliminação retroativa e Eliminação de recurso recursivo.

  • Métodos Embutidos(Embedded Methods)

Os métodos incorporados combinam as qualidades dos métodos de filtro e invólucro. É implementado por algoritmos que possuem seus próprios métodos de seleção de recursos integrados. LASSO e RIDGE são comuns. As regularizações são dadas nas equações abaixo como referência:

Laço:

 

Ridge:

Dito isso, é MUITO IMPORTANTE entender a mecânica por trás do LASSO e do RIDGE para entrevistas.

Machine Learning Models(Modelos de aprendizado de máquina)

Agora que temos nossos recursos ideais, é hora de treinar nosso modelo real! Os modelos de aprendizado de máquina se enquadram em um dos dois campos: supervisionado e não supervisionado. NÃO MISTURE A DIFERENÇA ENTRE APRENDIZAGEM SUPERVISIONADA E NÃO SUPERVISIONADA !!! Muitos modelos (como a regressão linear) são muito sensíveis ao dimensionamento. Por isso. Regra de ouro. SEMPRE NORMALIZE OS RECURSOS ANTES DE USAR !!!

  • Regressão Linear e Logística(Linear and Logistic Regression)

Regressão linear e logística são os algoritmos de aprendizado de máquina mais básicos e comumente usados. Antes de fazer qualquer análise CERTIFIQUE-SE DE QUE VOCÊ FAZ A REGRESSÃO LINEAR / LOGÍSTICA PRIMEIRO COMO REFERÊNCIA! Um erro comum de entrevista que as pessoas cometem é começar sua análise com um modelo mais complexo como a Rede Neural. 

Sem dúvida, a Rede Neural é altamente precisa. No entanto, benchmarks são importantes. Se o seu modelo de regressão simples já tem 98% de precisão e está muito próximo do overfiting, obter um modelo mais complexo não é uma jogada inteligente. Dito isto, a regressão linear é usada para alvos contínuos, enquanto a regressão logística é usada para alvos binários (principalmente porque a curva sigmóide força as entradas de recursos para 0 ou 1).

Eu recomendaria aprender a derivação de regressão logística e linear (variável única e multivariada). O modelo de regressão linear é usado como base para uma grande variedade de outros modelos de aprendizado de máquina

  • Árvores de decisão e florestas aleatórias(Decision Trees and Random Forests)

Um modelo um pouco mais complexo do que um modelo de regressão linear ( Linear  Regression) é a árvore de decisão(Decision Tree). O algoritmo da árvore de decisão se divide em recursos diferentes com base no ganho de informação, até atingir uma folha pura (ou seja, um conjunto de registros com apenas 1 rótulo). Uma árvore de decisão pode ser interrompida após um certo número de divisões para impedir que ela receba folhas puras (tática comum para corrigir problemas de ajuste excessivo).

O ganho de informação calculado para dividir a árvore é importante. As funções comuns de cálculo de ganho de informação são Gini e Entropia.

O que é importante na curva acima é que a entropia fornece um valor mais alto para o ganho de informação e, portanto, causa mais divisão em comparação com Gini.

Quando uma árvore de decisão Decision Tree não é complexa o suficiente, geralmente é usada uma floresta aleatória Random Forests (que nada mais é do que várias árvores de decisão sendo cultivadas em um subconjunto dos dados e uma votação final por maioria é realizada). Algoritmos de floresta aleatória podem se ajustar se o número de árvores não for determinado corretamente. 

K-Means é um modelo de aprendizagem não supervisionado que classifica os pontos de dados em clusters. O número de clusters é fornecido, fazendo com que o modelo desloque o centróide até que encontre iterativamente os centros de cluster ideais. KNN é a mesma coisa, exceto que é um modelo supervisionado com os clusters atuando como tags.

O número de clusters é determinado usando uma curva de cotovelo(Elbow Curve).

O número de clusters pode ou não ser fácil de encontrar (especialmente se não houver uma dobra clara na curva). Além disso, perceba que o algoritmo K-Means otimiza localmente e não globalmente. Isso significa que seus clusters dependerão do valor de inicialização. O valor de inicialização mais comum é calculado em K-Means ++, onde os valores iniciais estão longe uns dos outros. 

  • Rede neural(Neural Network)

Rede Neural é um daqueles algoritmos de palavras da moda que todo mundo está procurando atualmente.

É importante conhecer os mecanismos básicos, bem como o conceito de retropropagação( Back propagation) e gradiente de desaparecimento(vanishing gradient). Também é importante perceber que uma rede neural é essencialmente uma caixa preta(Black Box). Se o estudo de caso exigir que você construa um modelo interpretativo, escolha um modelo diferente ou esteja preparado para explicar como você descobrirá como os pesos estão contribuindo para o resultado final (por exemplo, a visualização de camadas ocultas durante o reconhecimento da imagem).

  • Modelos de conjunto(Ensemble Models)

Finalmente, um único modelo pode não determinar com precisão o alvo. Certos recursos precisarão de modelos especiais. Para tais circunstâncias, um conjunto de vários modelos é usado. Um exemplo é dado abaixo:

Aqui, os modelos estão em camadas ou pilhas. A saída de cada camada é a entrada para a próxima camada.

  • Avaliação de modelo(Model Evaluation)

Pontuação de Classificação(Classification Score)

Uma das formas mais comuns de avaliar o desempenho do modelo é calculando a porcentagem de registros cujos registros foram previstos com precisão.

Curva de Aprendizado(Learning Curve)

A curva de aprendizado também é um método comum para avaliar modelos. Aqui, estamos procurando ver se nosso modelo é muito complexo ou se não é complexo o suficiente.

Se o modelo não for complexo o suficiente (por exemplo, decidimos usar uma regressão linear quando o padrão não é linear), terminamos com alta tendência e baixa variância. Quando nosso modelo é muito complexo (por exemplo, decidimos usar uma rede neural profunda para um problema simples), acabamos com baixa tendência e alta variância. Alta variância porque o resultado VAI VARIAR conforme randomizamos os dados de treinamento (ou seja, o modelo não é muito estável). NÃO MISTURE A DIFERENÇA ENTRE BIAS E VARIÂNCIA DURANTE A ENTREVISTA !!! Agora, para determinar a complexidade do modelo, usamos uma curva de aprendizado conforme mostrado abaixo:

Na curva de aprendizado, variamos a divisão do teste de treinamento no eixo x e calculamos a precisão do modelo nos conjuntos de dados de treinamento e validação. Se a lacuna entre eles for muito grande, é muito complexo (ou seja, ajuste excessivo(Overfiting)). Se nenhuma das curvas estiver atingindo a precisão desejada e a lacuna entre as curvas for muito pequena, o conjunto de dados é altamente enviesado.

ROC( Receiver Operating Characteristic)

Ao lidar com conjuntos de dados de fraude com forte desequilíbrio de classe, uma pontuação de classificação não faz muito sentido. Em vez disso, a Receiver Operating Characteristic ou as curvas ROC oferecem uma alternativa melhor.

A linha de 45 graus é a linha aleatória, onde a área sob a curva ou AUC é 0,5. Quanto mais longe a curva estiver dessa linha, maior será a AUC e melhor será o modelo. O mais alto que um modelo pode obter é um AUC de 1, onde a curva forma um triângulo retângulo. A curva ROC também pode ajudar a depurar um modelo. Por exemplo, se o canto esquerdo inferior da curva estiver mais próximo da linha aleatória, isso implica que o modelo está classificado incorretamente em Y = 0. Ao passo que, se for aleatório no canto superior direito, isso implica que os erros estão ocorrendo em Y = 1. Além disso, se houver picos na curva (em vez de ser suave), isso implica que o modelo não é estável. Ao lidar com modelos de fraude, a ROC é seu melhor amigo. 

 

 

 

 

 

 

 

FONTES:

 

Data Science Interview Guide,Syed Sadat Nazrul, Apr 3,2018/towards data science.

Curso da Awari – Intensivo Machine Learning Instrutor Fernando /mai-2021

Curso da Awari -Data Science Instrutora Sara Malvar Nov-2021

Curso da Digital House– Data Science – Professores Marcelo & Abelardo/ Dez-2019