Course
28 principais perguntas para entrevistas com cientistas de dados para todos os níveis
Nesta postagem, descrevemos as perguntas mais frequentes feitas durante os estágios de estatística e aprendizado de máquina, análise, codificação e entrevista sobre o senso de produto. Praticar essas perguntas de entrevista para cientistas de dados ajudará os alunos que estão procurando estágios e os profissionais que estão procurando emprego a passar por todas as etapas da entrevista técnica.
Obter uma certificação Python
Perguntas não técnicas para entrevistas sobre ciência de dados
Vamos começar analisando algumas das perguntas sobre competências gerais que você poderá enfrentar na entrevista. Estas são algumas das habilidades sociais de que você precisará como cientista de dados:
Conte-me sobre uma ocasião em que você teve que explicar um conceito de dados complexo para alguém sem formação técnica. Como você se certificou de que eles entenderam?
Esta pergunta avalia suas habilidades de comunicação e sua capacidade de simplificar tópicos complexos. Aqui está um exemplo de resposta:
Em minha função anterior, eu tinha que explicar o conceito de aprendizado de máquina para nossa equipe de marketing. Usei a analogia de ensinar uma criança a reconhecer diferentes tipos de frutas. Assim como você mostraria a uma criança muitos exemplos para ajudá-la a aprender, um modelo de aprendizado de máquina é treinado com dados. Essa analogia ajudou a tornar um conceito complexo mais relacionável e fácil de entender.
Descreva um projeto em que você teve de trabalhar com um membro da equipe difícil. Como você lidou com a situação?
Isso explora suas habilidades de colaboração em equipe e de resolução de conflitos. Você poderia responder a isso com algo como:
Em um projeto, trabalhei com um colega que tinha um estilo de trabalho muito diferente. Para resolver nossas diferenças, agendei uma reunião para entender a perspectiva dele. Encontramos pontos em comum em nossas metas de projeto e concordamos com uma abordagem compartilhada. Essa experiência me ensinou o valor da comunicação aberta e da empatia no trabalho em equipe.
Você pode dar um exemplo de uma ocasião em que teve de trabalhar com um prazo apertado? Como você gerenciou suas tarefas e entregou no prazo?
Esta pergunta é sobre gerenciamento de tempo e priorização. Aqui está um exemplo de resposta:
Certa vez, tive que entregar uma análise em um prazo muito curto. Priorizei as partes mais importantes do projeto, comuniquei meu plano à equipe e me concentrei na execução eficiente. Ao dividir a tarefa e definir pequenos prazos, consegui concluir o projeto no prazo sem comprometer a qualidade.
Você já cometeu um erro significativo em sua análise? Como você lidou com isso e o que aprendeu com isso?
Aqui, o entrevistador está avaliando sua capacidade de assumir os erros e aprender com eles. Você poderia responder com:
Em um caso, interpretei erroneamente os resultados de um modelo de dados. Ao perceber meu erro, informei imediatamente minha equipe e reanalisei os dados. Essa experiência me ensinou a importância de verificar novamente os resultados e o valor da transparência no local de trabalho.
Como você se mantém atualizado com as últimas tendências e os avanços da ciência de dados?
Isso mostra que você está comprometido com o aprendizado contínuo e com a relevância em sua área. Aqui está um exemplo de resposta:
Mantenho-me atualizado lendo revistas do setor, assistindo a webinars e participando de fóruns on-line. Também separo um tempo toda semana para experimentar novas ferramentas e técnicas. Isso não apenas me ajuda a me manter atualizado, mas também aprimora continuamente minhas habilidades.
Você pode nos contar sobre uma ocasião em que teve de trabalhar em um projeto com requisitos pouco claros ou em constante mudança? Como você se adaptou?
Essa pergunta avalia a adaptabilidade e as habilidades de resolução de problemas. Como exemplo, você poderia dizer:
Em um projeto anterior, os requisitos mudavam com frequência. Eu me adaptei mantendo uma comunicação aberta com as partes interessadas para entender suas necessidades. Também usei metodologias ágeis para ser mais flexível em minha abordagem, o que ajudou a acomodar as mudanças de forma eficaz.
Descreva uma situação em que você teve que equilibrar a tomada de decisão baseada em dados com outras considerações (como preocupações éticas, necessidades comerciais, etc.).
Isso avalia sua capacidade de considerar vários aspectos além dos dados. Um exemplo de resposta poderia ser:
Em minha última função, tive que equilibrar a necessidade de decisões baseadas em dados com considerações éticas. Assegurei que todo o uso de dados estivesse em conformidade com os padrões éticos e as leis de privacidade, e apresentei alternativas quando necessário. Essa abordagem ajudou a tomar decisões informadas, respeitando os limites éticos.
Perguntas gerais da entrevista sobre ciência de dados
Quais são as suposições necessárias para uma regressão linear?
As quatro premissas de uma regressão linear são:
- Relação linear: deve haver uma relação linear entre a variável independente x e a variável dependente y.
- Independência: não há correlação entre resíduos consecutivos. Isso ocorre principalmente em dados de séries temporais.
- Homocedasticidade: em cada nível de x, a variação deve ser constante.
- Normalidade: os resíduos são distribuídos normalmente.
Imagem da Statology
Você pode explorar os conceitos e as aplicações dos modelos lineares fazendo nosso curso Introduction to Linear Modeling in Python.
Como você lida com um conjunto de dados em que faltam vários valores?
Há várias maneiras de lidar com dados ausentes. Você pode:
- Elimine as linhas com valores ausentes.
- Elimine as colunas com vários valores ausentes.
- Preencha o valor ausente com uma string ou constante numérica.
- Substitua os valores ausentes pelo valor médio ou mediano da coluna.
- Use análises de regressão múltipla para estimar um valor ausente.
- Use várias colunas para substituir os valores ausentes por valores simulados médios e erros aleatórios.
Saiba como diagnosticar, visualizar e tratar dados ausentes ao concluir o curso Handling Missing Data with Imputations in R.
Como você explica os aspectos técnicos dos seus resultados às partes interessadas com formação não técnica?
Primeiro, você precisa saber mais sobre o histórico do interessado e usar essas informações para modificar seu texto. Se ele tiver formação em finanças, aprenda sobre os termos comumente usados em finanças e use-os para explicar a metodologia complexa.
Em segundo lugar, você precisa usar muitos recursos visuais e gráficos. As pessoas aprendem visualmente, pois aprendem muito melhor com o uso de ferramentas de comunicação criativas.
Imagem do autor
Terceiro, fale em termos de resultados. Não tente explicar as metodologias ou estatísticas. Tente se concentrar em como eles podem usar as informações da análise para melhorar o negócio ou o fluxo de trabalho.
Por fim, incentive-os a fazer perguntas a você. As pessoas têm medo ou até mesmo vergonha de fazer perguntas sobre assuntos desconhecidos. Crie um canal de comunicação bidirecional, envolvendo-os na discussão.
Aprenda a criar seus próprios relatórios e painéis SQL fazendo nosso curso Reporting in SQL.
Perguntas da entrevista técnica sobre ciência de dados
Quais são os métodos de seleção de recursos usados para selecionar as variáveis certas?
Há três métodos principais para a seleção de recursos: filtro, invólucro e métodos incorporados.
Métodos de filtro
Os métodos de filtro são geralmente usados nas etapas de pré-processamento. Esses métodos selecionam recursos de um conjunto de dados independentemente de qualquer algoritmo de aprendizado de máquina. Eles são rápidos, exigem menos recursos e removem recursos duplicados, correlacionados e redundantes.
Imagem do autor
Algumas técnicas usadas são:
- Limite de variação
- Coeficiente de correlação
- Teste de qui-quadrado
- Dependência mútua
Métodos de wrapper
Nos métodos de wrapper, treinamos o modelo iterativamente usando um subconjunto de recursos. Com base nos resultados do modelo treinado, mais recursos são adicionados ou removidos. Eles são computacionalmente mais caros do que os métodos de filtro, mas oferecem melhor precisão do modelo.
Imagem do autor
Algumas técnicas usadas são:
- Seleção de encaminhamento
- Eliminação retroativa
- Eliminação bidirecional
- Eliminação recursiva
Métodos incorporados
Os métodos incorporados combinam as qualidades dos métodos de filtro e de invólucro. O algoritmo de seleção de recursos é combinado como parte do algoritmo de aprendizado, fornecendo ao modelo um método de seleção de recursos incorporado. Esses métodos são mais rápidos, como os métodos de filtro, precisos, como os métodos de wrapper, e também levam em consideração uma combinação de recursos.
Imagem do autor
Algumas técnicas usadas são:
- Regularização
- Métodos baseados em árvores
Como você pode evitar o ajuste excessivo do seu modelo?
Overfitting refere-se a um modelo que é treinado muito bem em um conjunto de dados de treinamento, mas falha no conjunto de dados de teste e validação.
Você pode evitar o ajuste excessivo:
- Manter o modelo simples, diminuindo a complexidade do modelo, levando em conta menos variáveis e reduzindo o número de parâmetros em redes neurais.
- Usando técnicas de validação cruzada.
- Treinar o modelo com mais dados.
- Usando o aumento de dados que aumenta o número de amostras.
- Usando o ensembling (Bagging e Boosting)
- Usar técnicas de regularização para penalizar determinados parâmetros do modelo se eles puderem causar ajuste excessivo.
Liste os diferentes tipos de relacionamentos no SQL
Há quatro tipos principais de relacionamentos SQL:
- Um para um: existe quando cada registro de uma tabela está relacionado a apenas um registro em outra tabela.
- Um para muitos e muitos para um: é a conexão mais comum, em que cada registro em uma tabela está vinculado a vários registros em outra.
- Muitos para muitos: existe quando cada registro da primeira tabela está relacionado a mais de um registro na segunda tabela, e um único registro na segunda tabela pode estar relacionado a mais de um registro da primeira tabela.
- Relacionamentos de autorreferência: ocorre quando uma tabela precisa declarar uma conexão com ela mesma.
Saiba como explorar as tabelas, os relacionamentos entre elas e os dados armazenados nelas, concluindo nosso curso Exploratory Data Analysis in SQL.
O que é redução de dimensionalidade e seus benefícios?
A redução da dimensionalidade é um processo que converte o conjunto de dados de várias dimensões em menos dimensões, mantendo informações semelhantes.
Imagem do autor | Gráficos de howecoresearch
Benefícios da redução da dimensionalidade:
- Comprimir os dados e reduzir o espaço de armazenamento.
- Reduzem o tempo de computação e nos permitem realizar um processamento de dados mais rápido.
- Ele remove recursos redundantes, se houver.
Entenda o conceito de redução de dimensionalidade e domine as técnicas praticando o curso Redução de Dimensionalidade em Python.
Qual é o objetivo do teste A/B?
Imagem do autor
Os testes A/B eliminam as suposições e nos ajudam a tomar decisões baseadas em dados para otimizar o produto ou o site. Também éconhecido como teste de divisão, em que são realizados experimentos aleatórios para analisar duas ou mais versões de variáveis (página da Web, recurso de aplicativo etc.) e determinar qual versão gera o máximo de tráfego e métricas de negócios.
Saiba como criar, executar e analisar testes A/B fazendo nosso curso Customer Analytics and A/B Testing in Python.
Perguntas da entrevista sobre codificação de ciência de dados
Se você tiver um dicionário composto de várias raízes e uma frase, enumere todas as palavras da frase com a raiz que a forma.
O stemming é comumente usado na análise de texto e de sentimentos. Nesta pergunta, você escreverá uma função Python que converterá determinadas palavras da lista em sua forma de raiz - Interview Query.
Entrada:
A função receberá dois argumentos: lista de palavras-raiz e sentença.
roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"
Saída:
Ele retornará a frase com as palavras-raiz.
"the cat was rat by the bat"
Antes de começar a escrever o código, você precisa entender que realizaremos duas tarefas: verificar se a palavra tem uma raiz e substituí-la.
- Você dividirá a frase em palavras.
- Execute o loop externo sobre cada palavra da lista e o loop interno sobre a lista de palavras-raiz.
- Verifique se a palavra começa com a raiz. A string Python nos fornece a função `startswith()` para realizar essa tarefa.
- Se a palavra começar com a raiz, substitua a palavra pela raiz usando um índice de lista.
- Junte todas as palavras para criar uma frase.
roots = ["cat", "bat", "rat"]
sentence = "the cattle was rattled by the battery"
def replace_words(roots, sentence):
words = sentence.split(" ")
# looping over each word
for index, word in enumerate(words):
# looping over each root
for root in roots:
# checking if words start with root
if word.startswith(root):
# replacing the word with its root
words[index] = root
return " ".join(words)
replace_words(roots, sentence)
# 'the cat was rat by the bat'
Verificar se a cadeia de caracteres é um palíndromo
Dada a cadeia de caracteres text
, retorne True
se for um palíndromo, caso contrário, False
.
Depois de diminuir todas as letras e remover todos os caracteres não alfanuméricos, a palavra deve ser lida da mesma forma para frente e para trás.
Imagem do autor
O Python oferece maneiras fáceis de resolver esse desafio. Você pode tratar a cadeia de caracteres como iterável e invertê-la usando text[::-1]
ou usar o método reversed(text)
incorporado.
- Primeiro, você baixará o texto.
- Limpe o texto removendo caracteres não alfanuméricos usando regex.
- Inverta o texto usando
[::-1]
. - Compare o texto limpo com o texto invertido.
import re
def is_palindrome(text):
# lowering the string
text = text.lower()
# Cleaning the string
rx = re.compile('\W+')
text = rx.sub('',text).strip()
# Reversing and comparing the string
return text == text[::-1]
No segundo método, você apenas substituirá a inversão do texto por ''.join(reversed(text))
e o comparará com o texto limpo.
Ambos os métodos são simples.
def is_palindrome(text):
# lowering the string
text = text.lower()
# Cleaning the string
rx = re.compile('\W+')
text = rx.sub('',text).strip()
# Reversing the string
rev = ''.join(reversed(text))
return text == rev
Resultados:
Forneceremos a lista de palavras à função is_palindrome()
e imprimiremos os resultados. Como você pode ver, mesmo com caracteres especiais, a função identificou "Level" e "Radar" como palíndromos.
# Test cases
List = ['Anna', '**Radar****','Abid','(Level)', 'Data']
for text in List:
print(f"Is {text} a palindrome? {is_palindrome(text)}")
# Is Anna a palindrome? True
# Is **Radar**** a palindrome? True
# Is Abid a palindrome? False
# Is (Level) a palindrome? True
# Is Data a palindrome? False
Prepare-se para suas próximas entrevistas de codificação praticando perguntas de codificação para entrevistas em Python com nosso curso interativo.
Encontre o segundo salário mais alto
É fácil encontrar o maior e o menor valor, mas é difícil encontrar o segundo maior ou o enésimo maior valor.
Na pergunta, você recebe a tabela do banco de dados que consiste em id e base_salary. Você escreverá a consulta SQL para encontrar o segundo salário mais alto.
Imagem do autor
Nessa consulta, você encontrará os valores exclusivos e os ordenará do maior para o menor. Em seguida, você usará o site LIMIT 1
para exibir apenas o valor mais alto. No final, você compensará o valor por 1 para exibir o segundo maior número.
Você também pode alterar o valor OFFSET
para obter o enésimo salário mais alto.
SELECT DISTINCT base_salary AS "Second Highest Salary"
FROM employee
ORDER BY base_salary DESC
LIMIT 1
OFFSET 1;
O segundo maior salário-base é de 8.500.
Encontre os e-mails duplicados
Nesta pergunta, você escreverá uma consulta para exibir todos os e-mails duplicados.
Imagem do autor
Nesta consulta, você exibirá uma coluna email
e agrupará a tabela por email
. Depois disso, usaremos a cláusula HAVING
para localizar e-mails que são mencionados mais de uma vez.
HAVING
é usado como um substituto para a declaração WHERE
em conjunto com agregações.
SELECT email
FROM employee_email
GROUP BY email
HAVING COUNT(email) > 1;
Somente "matt@hotmail.com" ocorre mais de uma vez.
Escreva código SQL de fácil manutenção para responder a perguntas comerciais fazendo o curso Applying SQL to Real-World Problems (Aplicando SQL a problemas do mundo real ).
Pergunta sobre ciência de dados da FAANG
Pergunta da entrevista sobre ciência de dados do Facebook
O Facebook Composer, a ferramenta de postagem, caiu de 3% de postagens por usuário no mês passado para 2,5% de postagens por usuário hoje. Como você investigaria o que aconteceu?
Imagem do autor
A postagem de um mês atrás caiu de 3% para 2,5% hoje. Antes de chegar a uma conclusão, você precisa esclarecer o contexto do problema.
Você precisa fazer perguntas:
- Hoje é um dia de semana?
- Há um mês, a partir de hoje, era um fim de semana?
- Há ocasiões especiais, eventos ou sazonalidade?
- Há uma tendência de queda gradual ou uma ocorrência única?
Na segunda parte, você precisa explicar o que motivou a redução. O número de usuários aumentou ou o número de publicações diminuiu? Depois disso, o entrevistador pedirá que você inicie uma discussão usando um ou ambos os raciocínios.
Como você acha que é a distribuição do tempo gasto por dia no Facebook? Que métricas você usaria para descrever essa distribuição?
Em termos de distribuição do tempo gasto por dia no Facebook, pode-se supor que existam dois grupos:
- Pessoas que percorrem o feed rapidamente sem gastar muito tempo.
- Superusuários que passam grande parte do tempo no Facebook.
Na segunda parte, você deve usar o vocabulário estatístico para descrever a distribuição, por exemplo:
- Centro: média, mediana e moda
- Distribuição: desvio padrão, intervalo interquartil e intervalo
- Forma: assimetria, curtose e uni ou bimodal
- Excedentes
Dado um conjunto de dados de pontuações de testes, escreva o código do pandas para retornar a porcentagem cumulativa de alunos que receberam pontuações dentro dos intervalos <50, <75, <90, <100.
Nesta pergunta, você escreverá o código do pandas para primeiro dividir a pontuação em vários intervalos e, em seguida, calcular a porcentagem de alunos que obtiveram a pontuação nesses intervalos.
Entrada:
Nosso conjunto de dados tem as colunas user_id, grade e test_score.
Imagem do autor
Saída:
Você escreverá a função que usará as colunas grade e test_score. E exiba o dataframe com as notas, as pontuações por bloco e a porcentagem cumulativa de alunos que obtiveram pontuações por bloco.
Imagem do autor
- Você usará a função
pandas.cut()
para converter pontuações em pontuações de compartimento usando compartimentos e rótulos de compartimentos. - Calcule o tamanho de cada grupo (nota e pontuação do teste).
- Para calcular a porcentagem, precisamos do numerador (soma cumulativa) e do denominador (soma de todos os valores).
- Converter o valor da fração em uma porcentagem adequada, multiplicando-o por 100 e adicionando "%".
- Redefina o índice e renomeie a coluna como "porcentagem".
def bucket_test_scores(df):
bins = [0, 50, 75, 90, 100]
labels = ["<50", "<75", "<90", "<100"]
# converting the scores into buckets
df["test_score"] = pd.cut(df["test_score"], bins, labels=labels, right=False)
# Calculate size of each group, by grade and test score
df = df.groupby(["grade", "test_score"]).size()
# Calculate numerator and denominator for percentage
NUM = df.groupby("grade").cumsum()
DEN = df.groupby("grade").sum()
# Calculate percentage, multiply by 100, and add %
percentage = (NUM / DEN).map(lambda x: f"{int(100*x):d}%")
# reset the index
percentage = percntage.reset_index(name="percentage")
return percentage
bucket_test_scores(df)
Você obteve o resultado perfeito com uma pontuação de teste de balde e a porcentagem.
Saiba como limpar dados, calcular estatísticas e criar visualizações com o curso Manipulação de dados com pandas.
Pergunta da entrevista sobre ciência de dados da Amazon
Explicar os intervalos de confiança
O intervalo de confiança é um intervalo de estimativas para um parâmetro desconhecido que você espera que fique entre uma determinada porcentagem do tempo quando você executar o experimento novamente ou, de forma semelhante, reamostrar a população.
Imagem de omnicalculator
O nível de confiança de 95% é comumente usado em experimentos estatísticos e é a porcentagem de vezes que você espera reproduzir um parâmetro estimado. Os intervalos de confiança têm um limite superior e um limite inferior que é definido pelo valor alfa.
Você pode usar intervalos de confiança para várias estimativas estatísticas, como proporções, médias populacionais, diferenças entre médias ou proporções populacionais e estimativas de variação entre grupos.
Para desenvolver a base estatística, conclua nosso curso Statistical Thinking in Python (Parte 1).
Como você gerencia um conjunto de dados desequilibrado?
No conjunto de dados não balanceado, as classes são distribuídas de forma desigual. Por exemplo, no conjunto de dados de detecção de fraude, há apenas 400 casos de fraude em comparação com 300.000 casos de não fraude. Os dados não balanceados farão com que o modelo tenha um desempenho pior na detecção de fraudes.
Imagem do autor
Para lidar com dados desequilibrados, você pode usar:
- Subamostragem
- Amostragem excessiva
- Criação de dados sintéticos
- Combinação de amostragem insuficiente e excessiva
Subamostragem
Ele faz uma nova amostragem dos recursos da classe majoritária para torná-los iguais aos recursos da classe minoritária.
No conjunto de dados de detecção de fraude, ambas as classes serão iguais a 400 amostras. Você pode usar o site imblearn.under_sampling
para fazer uma nova amostragem do conjunto de dados com facilidade.
from imblearn.under_sampling import RandomUnderSampler
RUS = RandomUnderSampler(random_state=1)
X_US, y_US = RUS.fit_resample(X_train, y_train)
Amostragem excessiva
Ele faz uma nova amostragem dos recursos da classe minoritária para torná-los iguais aos recursos da classe majoritária. A repetição ou a repetição da ponderação dos recursos da classe minoritária são alguns dos métodos comuns usados para equilibrar os dados. Em resumo, ambas as classes terão 300 mil amostras.
from imblearn.over_sampling import RandomOverSampler
ROS = RandomOverSampler(random_state=0)
X_OS, y_OS = ROS.fit_resample(X_train, y_train)
Criação de dados sintéticos
O problema da repetição é que ela não fornece informações adicionais, o que resultará em um desempenho ruim dos modelos. Para combatê-la, podemos usar a técnica SMOTE (Synthetic Minority Oversampling) para criar pontos de dados sintéticos.
from imblearn.over_sampling import SMOTE
SM = SMOTE(random_state=1)
X_OS, y_OS = SM.fit_resample(X_train, y_train)
Combinação de amostragem insuficiente e excessiva
Para melhorar as tendências e o desempenho do modelo, você pode usar uma combinação de sobreamostragem e subamostragem. Usaremos o SMOTE para superamostragem e o EEN (Edited Nearest Neighbours) para limpeza.
O site imblearn.combine
nos fornece várias funções que executam automaticamente ambas as funções de amostragem.
from imblearn.combine import SMOTEENN
SMTN = SMOTEENN(random_state=0)
X_OUS, y_OUS = SMTN.fit_resample(X_train, y_train)
Escreva uma consulta para retornar o número total de vendas de cada produto no mês de março de 2022.
Como cientista de dados, você escreverá um tipo semelhante de consulta para extrair os dados e realizar a análise de dados. Neste desafio, você usará a cláusula WHERE
com sinais de comparação ou WHERE
com a cláusula BETWEEN
para realizar a filtragem.
Tabela: pedidos
Imagem do autor
Exemplo de saída:
Imagem do autor
- Você exibirá o ID do produto e a soma da quantidade da tabela de pedidos.
- Filtre os dados da data "2022-03-01" a "2022-04-01" usando as cláusulas WHERE e AND. Você também pode usar BETWEEN para executar uma ação semelhante.
- Use um grupo por product_id para obter o número total de vendas de cada produto.
SELECT product_id,
SUM(qty)
FROM orders
WHERE order_dt >= '2022-03-01'
AND order_dt < '2022-04-01'
GROUP BY product_id;
Pergunta da entrevista sobre ciência de dados do Google
Se os rótulos forem conhecidos em um projeto de agrupamento, como você avaliaria o desempenho do modelo?
No aprendizado não supervisionado, encontrar o desempenho do projeto de agrupamento pode ser complicado. Os critérios de um bom agrupamento são grupos distintos com pouca similaridade.
Não há métrica de precisão nos modelos de agrupamento, portanto, usaremos a similaridade ou a distinção entre os grupos para avaliar o desempenho do modelo.
Imagem da documentação do scikit-learn
As três métricas comumente usadas são:
- Pontuação da silhueta
- Índice Calinski-Harabaz
- Índice Davies-Bouldin
Silhouette Score
Ela é calculada usando a distância média intra-cluster e a distância média do cluster mais próximo.
Podemos usar o scikit-learn para calcular a métrica. A pontuação de silhueta varia de -1 a 1, em que pontuações mais altas significam menor similaridade entre grupos e clusters distintos.
from sklearn import metrics
model = KMeans().fit(X)
labels = model.labels_
metrics.silhouette_score(X, labels)
Índice Calinski-Harabaz
Ele calcula a distinção entre grupos usando a dispersão entre clusters e a dispersão dentro do cluster. A métrica não tem limite e, assim como o Silhouette Score, uma pontuação mais alta significa melhor desempenho do modelo.
metrics.calinski_harabasz_score(X, labels)
Índice Davies-Bouldin
Ele calcula a semelhança média de cada cluster com seu cluster mais semelhante. Diferentemente de outras métricas, uma pontuação mais baixa significa melhor desempenho do modelo e melhor separação entre os clusters.
metrics.davies_bouldin_score(X, labels)
Saiba como aplicar clustering hierárquico e k-means fazendo nosso curso Cluster Analysis in R.
Há quatro pessoas em um elevador e quatro andares em um edifício. Qual é a probabilidade de que cada pessoa desça em um andar diferente?
Imagem do autor
Nós usaremos:
- F = Número de andares
- P = Número de pessoas
Para resolver esse problema, precisamos primeiro encontrar o número total de maneiras de sair dos pisos: 44 = 4x4x4x4 = 256 maneiras.
Depois disso, calcule o número de maneiras pelas quais cada pessoa pode descer em um andar diferente: 4! = 24.
Para calcular a probabilidade de cada pessoa descer em um andar diferente, precisamos dividir o número de maneiras pelas quais cada pessoa desce em um andar diferente pelo número total de maneiras de descer dos andares.
24/256 = 3/32
Aprenda estratégias para responder a perguntas complicadas sobre probabilidade com o R fazendo nosso curso Probability Puzzles in R.
Escreva uma função para gerar N amostras de uma distribuição normal e desenhe o histograma.
Para gerar N amostras da distribuição normal, você pode usar o Numpy (np.random.randn(N))
ou o SciPy (sp.stats.norm.rvs(size=N))
.
Para desenhar um histograma, você pode usar o Matplotlib ou o Seaborn.
A pergunta é bastante simples se você conhecer as ferramentas certas.
- Você gerará amostras aleatórias de distribuição normal usando a função randn do Numpy.
- Traçar histograma com o KDE usando o Seaborn.
- Trace um histograma para 10 mil amostras e retorne a matriz Numpy.
import numpy as np
import seaborn as sns
N = 10_000
def norm_dist_hist(N):
# Generating Random normal distribution samples
x = np.random.randn(N)
# Plotting histogram
sns.histplot(x, bins = 20, kde=True);
return x
X = norm_dist_hist(N)
Você aprenderá a criar visualizações informativas e atraentes em segundos ao concluir o curso Introduction to Data Visualization with Seaborn.
Como se preparar para a entrevista sobre ciência de dados
Imagem do autor
As entrevistas de ciência de dados são divididas em quatro ou cinco etapas. Você será questionado sobre estatística e aprendizado de máquina, codificação (Python, R, SQL), comportamento, senso de produto e, às vezes, perguntas sobre liderança.
Você pode se preparar para todos os estágios:
- Pesquisar a empresa e as responsabilidades do trabalho: isso ajudará você a priorizar seu esforço em um determinado campo da ciência de dados.
- Revisão de projetos anteriores do portfólio: o gerente de contratação avaliará suas habilidades fazendo perguntas sobre seus projetos.
- Revisão dos fundamentos da ciência de dados: probabilidade, estatística, teste de hipóteses, estatística descritiva e bayesiana e redução de dimensionalidade. As folhas de dicas são a melhor maneira de você aprender o básico rapidamente.
- Praticar a codificação: faça testes de avaliação, resolva desafios de código on-line e analise as perguntas mais frequentes sobre codificação.
- Praticar em projetos de ponta a ponta: aprimore suas habilidades com limpeza, manipulação, análise e visualização de dados.
- Você pode ler as perguntas mais comuns das entrevistas: senso de produto, estatística, análise, comportamento e liderança.
- Fazer uma entrevista simulada: pratique uma entrevista com um amigo, melhore seu vocabulário estático e ganhe confiança.
Leia o blog Preparação para a entrevista de ciência de dados para saber o que você deve esperar e como abordar a entrevista.
Perguntas frequentes sobre a entrevista de ciência de dados
Quais são os quatro principais componentes da ciência de dados?
Os quatro principais componentes da ciência de dados são:
- Compreensão dos negócios e estratégia de dados.
- Preparação de dados (limpeza, imputação, validação).
- Análise e modelagem de dados.
- Visualização e operacionalização de dados.
As entrevistas sobre ciência de dados são difíceis?
Normalmente, sim. Para ser aprovado em uma entrevista de ciência de dados, você precisa demonstrar proficiência em várias áreas, como estatística e probabilidade, codificação, análise de dados, aprendizado de máquina, percepção do produto e relatórios. Consulte nosso guia sobre perguntas para entrevistas com cientistas de dados para ajudar você a se preparar!
A ciência de dados é um trabalho estressante?
Depende. Toda a sua equipe/empresa pode contar com você para fornecer análises e informações acionáveis. Em alguns casos, você precisa usar vários papéis, como engenheiro de dados, analista de dados, engenheiro de aprendizado de máquina, engenheiro de MLOps, gerente de dados e líder de equipe. Algumas pessoas acham isso empolgante e desafiador, enquanto outras acham estressante e opressivo às vezes.
Um ano de aprendizado é suficiente para a ciência de dados?
Talvez. Depende do histórico que você tem. Se você estiver trabalhando como engenheiro de software e quiser mudar, poderá aprender a maioria das coisas em um ano. Mas, se você estiver começando do zero, será difícil se preparar para o emprego em um ano. Comece sua jornada como Cientista de dados com Python e aprenda todos os fundamentos em 6 meses.
A ciência de dados é uma matemática pesada?
Sim. Você precisa aprender estatística, probabilidade, matemática, análise de dados, visualização de dados e criação e avaliação de modelos de aprendizado de máquina.
A carreira em ciência de dados oferece um bom salário?
Sim. De acordo com a Glassdoor, o cientista de dados nos EUA recebe um salário total de US$ 124.817 por ano. O salário médio de um cientista de dados no mundo todo é de US$ 70.714 por ano.
Como posso apresentar meus conhecimentos de ciência de dados aos empregadores?
Além de concluir os cursos e trabalhar em projetos reais de ciência de dados, nossa Certificação de Cientista de Dados é a melhor maneira de comprovar sua experiência para os empregadores. Essa certificação reconhecida pelo setor testa suas habilidades por meio de dois exames cronometrados e, em seguida, um exame prático.
Cursos de ciência de dados
Course
Data Manipulation in SQL
Course
Introduction to Functions in Python
blog
As 31 principais perguntas e respostas de entrevistas com analistas de negócios para todos os níveis
blog
Preparação para a entrevista de ciência de dados
Artur Sannikov
12 min
blog
As 20 principais perguntas da entrevista sobre o NumPy: Do básico ao avançado
Tim Lu
20 min
blog
25 perguntas essenciais para entrevistas sobre o Power BI para todos os níveis
blog
As 20 principais perguntas do Snowflake para entrevistas de todos os níveis
Nisha Arya Ahmed
15 min
blog
As 26 principais perguntas e respostas da entrevista sobre pandas em Python
Srujana Maddula
15 min