Programa
Os profissionais de machine learning precisam avaliar tanto a qualidade dos seus dados quanto o desempenho dos seus modelos preditivos.
Várias métricas podem ajudar, principalmente quando se trata de tarefas de classificação binária. ;, aquelas em que cada ponto de dados é previsto como pertencente a uma de duas categorias possíveis. Exemplos incluem aprovação de crédito (aprovar/não aprovar), classificação de malware (malicioso/não malicioso), triagem de currículos (pré-selecionar/não pré-selecionar) e diagnóstico de doenças (tem doença/não tem doença). Até mesmo testes A/B estão bem relacionados, basicamente perguntando: “A versão B é melhor que a versão A?” (sim/não).
Embora a precisão forneça um resumo rápido do desempenho, ela pode esconder informações importantes sobre a natureza dos erros de um modelo. Por exemplo, um detector de fraudes de crédito que classifica todas as transações como legítimas pode atingir 99% de precisão, mas falhar completamente na detecção de fraudes reais. A sensibilidade e a especificidade oferecem insights mais detalhados, ajudando você a entender não só com que frequência um modelo está certo, mas também que tipos de erros ele comete e se esses erros são aceitáveis no contexto.
Neste guia, você vai aprender o que realmente significam sensibilidade e especificidade, quando cada métrica é mais adequada, como são calculadas e como aplicá-las na prática no seu trabalho, com exemplos claros e reais.
Testes diagnósticos e tomada de decisões clínicas
Sensibilidade e especificidade surgiram na avaliação médica. Enquadrar essas métricas através da lente dos testes de diagnóstico e da tomada de decisões clínicas ajuda a esclarecer muitos dos conceitos apresentados neste artigo. Para mostrar como funciona, vamos usar dois exemplos práticos: detecção de doenças e fraude com cartão de crédito.
- Teste de diagnóstico é um procedimento médico que ajuda a confirmar ou descartar uma doença.
- Teste de ensaio medem se uma determinada substância está presente em uma amostra.
- A tomada de decisão clínica é o processo pelo qual os profissionais de saúde juntam informações sobre um paciente, consideram opções de diagnóstico e tratamento e tomam decisões informadas com base em evidências.
Público-alvo
Esse artigo é pra quem trabalha com dados e usa inferência estatística e querem entender métricas mais detalhadas do que a precisão para tomar decisões melhores. Essas métricas ajudam a avaliar que tipos de erros um modelo comete e se esses erros são aceitáveis no contexto. As aplicações incluem diagnósticos médicos e detecção de fraudes, como vimos. Outras aplicações incluem detecção de invasão, controle de qualidade na fabricação e filtragem de spam.
Noções básicas de sensibilidade e especificidade
Antes de interpretar ou aplicar a sensibilidade e a especificidade, é essencial entender os conceitos básicos por trás deles. Nesta seção, vamos falar sobre as origens históricas, definições básicas, derivações e cálculos.
História
Os conceitos de sensibilidade e especificidade vêm da bioestatística. Embora já fosse usado antes na literatura médica, o pesquisador de bioestatística Jacob Yerushlamy popularizou o termo em seu artigo de 1976 publicado no New England Journal of Medicine, que descrevia um estudo de sobrevivência de pacientes com artigo “Problemas estatísticos na avaliação de métodos de diagnóstico médico, com referência especial às técnicas de raios X”.
Nos anos 70, a curva característica de operação do receptor (ROC) (que vamos falar mais tarde) virou uma ferramenta pra analisar visualmente a sensibilidade versus a especificidade nos testes clínicos. Nos anos 90, o machine learning pegou esses conceitos e deu uma adaptada. Hoje, esses termos são muito usados na área da saúde e no machine learning pra medir como os sistemas identificam os verdadeiros positivos e os verdadeiros negativos.
Matriz de confusão
Imagina que um modelo de machine learning é usado pra detectar transações fraudulentas com cartão de crédito. Em uma amostra de 10.000 transações, tem 9.800 transações legítimas e 200 casos de fraude.
Como estamos interessados principalmente em casos de fraude, vamos chamar os casos fraudulentos de positivos e os não fraudulentos de negativos. (Os casos que são considerados “positivos” e “negativos” são meio arbitrários; mas geralmente dá pra saber como classificar os casos.)
Depois de rodar o modelo e comparar os casos de fraude previstos com os casos reais, descobrimos que 160 casos de fraude foram sinalizados corretamente, 9.500 transações legítimas foram identificadas corretamente, 300 transações legítimas foram sinalizadas incorretamente como fraude e 40 casos de fraude não foram detectados pelo modelo.
Para manter todos esses dados organizados, geralmente usamos a nomenclatura a seguir.
- Verdadeiros positivos (TP): 160 casos de fraude foram sinalizados corretamente,
- Verdadeiros negativos (TN): 9.500 transações legítimas são identificadas corretamente,
- Falsos positivos (FP): 300 transações legítimas são sinalizadas como fraudes por engano, e
- Falsos negativos (FN): O modelo não detecta 40 casos de fraude.
A segunda letra (P ou N) mostra se o caso foi previsto como positivo ou negativo, e a primeira letra diz se a previsão estava certa (T) ou errada (F).
Então, um “falso positivo” quer dizer que o caso foi previsto como positivo, mas essa previsão estava errada, ou seja, o caso foi previsto como positivo, mas na verdade era negativo. Da mesma forma, um falso negativo é um caso que foi previsto como negativo, mas que na verdade é positivo.
Para mostrar essas informações, geralmente usamos uma “matriz de confusão”.matriz de confusão, assim chamada porque mantém um programa de quanto tempo o modelo confunde previsões incorretas com resultados reais (FN, FP). Aqui vai um exemplo:
|
Fraude real (positiva) |
Legítimo real (negativo) |
|
|
Fraude prevista (positiva prevista) |
160 (TP) |
300 (FP) |
|
Previsão legítima (previsão negativa) |
40 (FN) |
9500 (TN) |
Agora, vamos dar uma olhada nos totais das linhas e colunas. As somas das linhas mostram o total de casos previstos e as somas das colunas mostram o total real.
|
Fraude real (positiva) |
Legítimo real (negativo) |
||
|
Fraude prevista (positiva prevista) |
160 (TP) |
300 (FP) |
460 (TP + FP) Total de positivos previstos |
|
Previsão legítima (previsão negativa) |
40 (FN) |
9500 (TN) |
9540 (FN + TN) Total de negativos previstos |
|
200 (TP + FN) Total de positivos reais |
9800 (FP + TN) Total de negativos reais |
10.000 |
O que esses totais significam?
- A primeira linha total (460) mostra o número total de casos de fraude previstos (TP + FP).
- A segunda linha total (9540) mostra o número total de casos legítimos previstos (FN + TN).
- O total da primeira coluna (200) mostra o número total de casos reais de fraude (TP + FN).
- A segunda coluna total (9800) mostra o número total de casos legítimos reais (FP + TN).
- O total geral (10.000) é igual ao tamanho total da nossa amostra.
Definições
A sensibilidade (também conhecida como taxa de verdadeiros positivos ou recall) mede a capacidade do modelo de identificar corretamente os verdadeiros positivos. Mais precisamente, a sensibilidade é a proporção de verdadeiros positivos em relação aos positivos reais, TP / (TP + FN).
Da mesma forma, a especificidade (taxa de verdadeiros negativos) mede a capacidade do modelo de identificar verdadeiros negativos. É a proporção de negativos verdadeiros em relação aos negativos reais, TN / (FP + TN).
Do ponto de vista da probabilidade, a sensibilidade é a chance de um teste dar positivo se o paciente tiver a doença, e a especificidade é a chance de um teste dar negativo se o paciente não tiver a doença.
Calculando a sensibilidade e a especificidade
No nosso exemplo de fraude, a sensibilidade = TP / (TP + FN) = 160/200, ou 80%. A especificidade é de 9500/9800, ou cerca de 97%.
A relação entre sensibilidade e especificidade e a análise ROC
À medida que os limites do modelo mudam, a sensibilidade e a especificidade geralmente se movem em direções opostas. Aumentar a sensibilidade geralmente diminui a especificidade e vice-versa. Nesta seção, a gente vai ver essa troca e como a análise da Curva Característica de Operação do Receptor (ROC) dá uma visão visual e quantitativa pra avaliar o desempenho do modelo em vários limites.
Compromissos
Vamos ajustar o exemplo de fraude para que haja mais 20 falsos negativos, FN = 60. Como o número total de casos reais de fraude ainda é 200, agora deve haver 20 menos verdadeiros positivos (TP = 140).
|
Fraude real (positiva) |
Legítimo real (negativo) |
||
|
Fraude prevista (positiva prevista) |
140 (TP) |
300 (FP) |
460 (TP + FP) Total de positivos previstos |
|
Previsão legítima (previsão negativa) |
60 (FN) |
9500 (TN) |
9540 (FN + TN) Total de negativos previstos |
|
200 (TP + FN) Total de positivos reais |
9800 (FP + TN) Total de negativos reais |
10.000 |
A sensibilidade caiu de 80% para 140/200 = 70%. À medida que o número de falsos negativos aumenta, a sensibilidade diminui e vice-versa. Isso quer dizer que uma sensibilidade alta mostra que o número de falsos negativos é baixo.
Em termos médicos, um teste com alta especificidade identifica corretamente a maioria das pessoas que não têm a doença. No nosso exemplo de rastreio do cancro, um teste com alta especificidade garante que as pessoas que não têm cancro não sejam informadas incorretamente de que têm.
Isso mostra a relação entre sensibilidade e especificidade. Alguns pacientes podem ficar preocupados quando descobrem que têm câncer, mesmo que não seja verdade, mas as pessoas que realmente têm a doença são identificadas corretamente. Nesse caso, uma alta especificidade é uma métrica melhor. Num mundo que não é perfeito, a gente precisa tomar decisões certas com base numa avaliação das vantagens e desvantagens entre as métricas.
Dinâmica de limiar
Um limite de diagnóstico define o valor de corte que determina se um resultado de teste é considerado positivo ou negativo. Converte um valor contínuo, como uma probabilidade, em um valor binário (sim/não). Em termos simples, é o que decide onde colocar a linha entre resultados positivos e negativos.
O limite é geralmente de 50%, ou 0,50. Uma probabilidade acima de 50% é considerada positiva, e uma probabilidade abaixo de 50% é negativa.
Alterar os limites determina quais casos são considerados positivos e negativos. Essa mudança mexe com o equilíbrio entre pegar os verdadeiros positivos e evitar os falsos negativos.
Por exemplo, pense num modelo que mostra a probabilidade de alguém ter câncer. Se o limite for definido como 0,3, o modelo vai classificar muitas pessoas como positivas. Essa abordagem funciona bem para triagem porque reduz a chance de perder casos.
Mas isso aumenta o risco de falsos positivos. Se o limite for 0,8, o modelo vai classificar menos pessoas como positivas. Essa abordagem reduz os falsos positivos, mas aumenta o risco de perder casos reais.
Quando o limite muda, o modelo altera a frequência com que detecta verdadeiros positivos e evita falsos positivos. Limites mais baixos aumentam a sensibilidade, mas diminuem a especificidade; limites mais altos diminuem a sensibilidade, mas aumentam a especificidade.
Interpretação da curva ROC
Uma curva ROC (Receiver Operating Characteristic) é uma representação visual comum para comparar limites de classificação entre valores de sensibilidade e especificidade. A curva ROC mostra a sensibilidade em relação a 1 - especificidade. Cada ponto na curva mostra um limite específico. Conforme o limite muda, a sensibilidade e a especificidade do modelo se ajustam de acordo, acompanhando a curva ROC.

A curva ROC mostra o equilíbrio entre sensibilidade e especificidade. Pontos importantes na curva:
- (0,1): Um classificador perfeito que identifica todos os verdadeiros positivos sem falsos negativos.
- (0,0): Um modelo extremo que prevê tudo como negativo, classificando errado todos os casos positivos.
- (1,1): Um modelo extremo que prevê tudo como positivo, classificando errado todos os casos negativos.
A linha tracejada na diagonal mostra o acaso. Um modelo que funciona assim não tem poder de distinguir direito.
Para avaliar um modelo usando uma curva ROC, dá uma olhada na “Área sob a curva” (AUC). A AUC é a área total (integral) sob a curva, que representa uma média ponderada do desempenho em todos os limites. Uma AUC mais alta mostra que é mais fácil distinguir entre classes positivas e negativas.
|
Pontuação AUC |
Interpretação |
|
1.0 |
Classificador perfeito |
|
0,9 - 1,0 |
Ótimo! |
|
0,8 - 0,9 |
Boa |
|
0,7 - 0,8 |
Justo |
|
0,6 - 0,7 |
Pobre |
|
0,5 |
Sem discriminação (igual a adivinhar aleatoriamente) |
|
< 0.5 |
Pior do que aleatório |
Valores preditivos e razões de verossimilhança
Nesta seção, vamos ver como a prevalência afeta a confiabilidade dos resultados dos testes. Também analisamos como os índices de probabilidade juntam a sensibilidade e a especificidade em um único número que ajuda os médicos a atualizar as probabilidades de diagnóstico depois dos testes.
Métricas dependentes da prevalência
O Valor Preditivo Positivo (VPP), que é igual à precisão no machine learning, mostra a chance de uma previsão positiva estar certa. Mede a proporção de positivos previstos que são realmente positivos: PPV = TP / (TP + FP).
O Valor Preditivo Negativo (VPN) mostra o quão confiável é um resultado negativo. Mede a proporção de resultados negativos que são realmente negativos. A fórmula é VPL = VT / (VT + CF).
Vamos supor que testamos 1000 pessoas para uma doença com essa matriz de confusão.
|
Positivo real (doente) |
Negativo real (saudável) |
||
|
Positivo previsto (doente) |
80 (TP) |
20 (FP) |
100 |
|
Previsão negativa (saudável) |
10 (FN) |
890 (TN) |
900 |
|
90 |
910 |
1000 |
- PPV = TP / (TP + FP) = 80/100 = 80%.
- NPV = TN / (FN + TN) = 890 / 900 = 98,9%.
Para comparar, vamos supor que mais pessoas estão doentes (300 em vez de 90) e ajustar a matriz de confusão de acordo com isso.
|
Positivo real (doente) |
Negativo real (saudável) |
||
|
Positivo previsto (doente) |
270 (TP) |
70 (FP) |
340 |
|
Previsão negativa (saudável) |
30 (FN) |
630 (TN) |
660 |
|
300 |
700 |
1000 |
À medida que a prevalência aumenta, o número de casos verdadeiros positivos também aumenta.
- PPV mais alto. Agora, é mais provável que um resultado positivo reflita a doença real. Na verdade, PPV = 270 / 300 = 90%, comparado com 80% antes, um aumento de 10%.
- NPV mais baixo. Um resultado negativo fica um pouco menos confiável, porque tem mais chances de deixar passar casos reais. A gente vê que o VPL é 630 / 700 = 90%, o que é uma queda de 8,9%.
Razões de verossimilhança
As razões de verossimilhança juntam a sensibilidade e a especificidade num único número que ajuda os médicos a atualizar a confiança no diagnóstico com base nos resultados dos exames.
Probabilidade versus chances
Antes de usar os índices de verossimilhança, é importante saber a diferença entre probabilidade e odds. Probabilidade é a chance de um evento acontecer, expressa por um valor entre 0 e 1. As probabilidades mostram a chance de um evento acontecer em relação à chance de ele não acontecer.
Uma probabilidade de 75% quer dizer que o evento vai acontecer 75 vezes em 100. As chances correspondentesno do evento são 0,75 / (1 - 0,75) = 0,75 / 0,025 = 3. Isso quer dizer que as chances são de 3 para 1 de que o evento vai rolar.
De um jeito mais geral, se p é a chance de algo acontecer, então as probabilidades são p / (1 - p). Convertendo de chances para probabilidade, p = chances / (1 + chances).
Razões de verossimilhança
A razão de verossimilhança positiva (LR+) mostra o quanto um resultado positivo aumenta as chances de ter a condição em comparação com alguém que não a tem. Valores mais altos (>10) mostram que o teste é bem eficaz pra confirmar a condição. A fórmula é LR+ = Sensibilidade / (1 - Especificidade).
A razão de verossimilhança negativa (LR-) mostra o quanto um resultado negativo diminui as chances de ter a condição em comparação com alguém que não a tem. Valores mais baixos (< 0,1) sugerem que o teste é muito eficaz para descartar uma condição. A fórmula é LR- = (1 - Sensibilidade) / Especificidade.
Probabilidade pós-teste
Para tomar decisões, os médicos começam com uma probabilidade pré-teste estimada com base em fatores como os sintomas e o histórico do paciente. Essa estimativa é combinada com a razão de verossimilhança para calcular a probabilidade pós-teste.
O procedimento é o seguinte.
- Comece com uma probabilidade pré-teste p.
- Converta em probabilidades. Probabilidade pré-teste = p / (1 - p).
- Aplique a razão de verossimilhança. Se o teste der positivo, multiplica a probabilidade pré-teste pelo LR+, se der negativo, multiplica pelo LR-. Probabilidade pós-teste = probabilidade pré-teste x LR.
- Converta as probabilidades pós-teste de volta em probabilidades. Probabilidade pós-teste = Probabilidade pós-teste / (1 + probabilidade pós-teste).
Por exemplo, digamos que a probabilidade pré-teste da doença é de 30% e LR+ = 10. Qual é a probabilidade pós-teste?
- p = 0,3
- Probabilidade pré-teste = 0,3/0,7 = 0,43.
- Probabilidade pós-teste = 0,43 * 10 = 4,3
- Probabilidade pós-teste = 4,3 / (1 + 4,3) = 81%.
A gente vê que o LR+ mudou bastante a chance e a confiança no diagnóstico.
Metodologias avançadas e rumos futuros
À medida que os testes de diagnóstico e os sistemas de classificação ficam mais complexos, novas metodologias estão surgindo para ir além dos limites tradicionais de desempenho. Nesta seção, a gente vê como as abordagens bayesianas permitem limites de decisão personalizados e como tecnologias novas, como diagnósticos baseados em CRISPR, estão expandindo os limites da sensibilidade e especificidade analítica.
Abordagens bayesianas
A ideia de começar com uma crença prévia e atualizá-la com base em novas informações está no centro da estatística bayesiana. É uma maneira formal de revisar as probabilidades com base em novos dados.
O raciocínio bayesiano depende de três coisas principais.
- Probabilidade prévia. Essa é a ideia inicial antes de ver novas evidências. (“A previsão do tempo disse que tem 60% de chance de chover.”)
- A probabilidade. É assim que a nova evidência é provável se a crença estiver correta. (“Eu ouvi chuva, então a probabilidade de uma previsão correta é alta.”)
- Probabilidade posterior. Essa é a minha opinião depois de ver novas evidências. É calculado multiplicando a probabilidade prévia pela verossimilhança.
Isso é descrito matematicamente pelo teorema de Bayes.
P(A|B) = P(B|A) x P(A) / P(B)
onde P(A|B) é a posterior (a probabilidade de A dado B), P(B|A) é a verossimilhança (a probabilidade de B dado que A é verdadeiro), P(A) é a anterior e P(B) é a evidência.
Otimizando limites com abordagens bayesianas
Como vimos, os modelos de classificação tradicionais costumam usar um limite fixo, tipo 0,5, pra decidir se um resultado deve ser rotulado como positivo ou negativo. Já as abordagens bayesianas permitem que esses limites se adaptem de acordo com o contexto, incluindo fatores de risco individuais, dados demográficos, histórico de comportamento ou dados em tempo real. Essa flexibilidade permite que os sistemas ajustem os limites de forma dinâmica, em vez de depender de um limite estático único para todos os casos.
Pense num modelo que diz a chance de alguém ter uma doença cardíaca. Um modelo tradicional pode usar um limite de 0,5. Pacientes com uma chance de mais de 50% são considerados positivos, e aqueles com menos de 50% são considerados negativos.
Agora, vamos pensar numa abordagem bayesiana com dois pacientes hipotéticos:
- O paciente A tem 68 anos, fuma desde sempre, tem histórico de doenças cardíacas na família e recentemente apresentou dor no peito.
- O paciente B tem 25 anos, não fuma e não tem sintomas nem histórico relevante.
Os dois pacientes recebem uma probabilidade gerada pelo teste de 0,45. Um modelo de limite fixo com um limite de 0,5 trataria esses dois pacientes como negativos.
Mas, um modelo bayesiano leva em conta informações de risco anteriores e pode ser usado junto com intervalos de previsão. Para o paciente A, o sistema pode diminuir o limite de decisão, sinalizando o caso para uma avaliação mais aprofundada. Para o paciente B, pode manter o limite e não é recomendado nenhum acompanhamento.
Assim, os métodos bayesianos adaptam o limite de classificação ao contexto de cada paciente, levando a decisões mais adequadas do ponto de vista clínico.
Testes de alta sensibilidade/especificidade
Uma tecnologia nova que está a ultrapassar os limites da sensibilidade e especificidade analítica é o diagnósticos baseados em CRISPR. Os cientistas adaptaram o CRISPR (Clustered Regularly Interspaced Short Palindromic Repeats), uma ferramenta de edição genética, para detectar material genético. Ele usa proteínas Cas pra detectar sequências específicas de ácido nucleico com muita sensibilidade.
Testes baseados em CRISPR têm sido usados para detectar o câncer bem no começo. Estão sendo desenvolvidas ferramentas portáteis para diagnosticar câncer, que vão ser usadas em ambientes clínicos. Duas plataformas de diagnóstico importantes são o SHERLOCK e o DETECTR.
Os testes baseados em CRISPR têm várias vantagens. Eles têm uma sensibilidade alta, então conseguem detectar quantidades minúsculas de DNA ou RNA.
Isso os torna valiosos para identificar infecções em estágio inicial, câncer ou mutações raras. Eles também são super específicos, o que permite distinguir entre sequências genéticas bem parecidas para reduzir falsos positivos. Outras vantagens são resultados rápidos e equipamentos baratos e fáceis de transportar.
Esses testes são bons para várias coisas, tipo detectar doenças infecciosas, diagnosticar câncer e fazer exames de doenças genéticas. Os pesquisadores podem usar o machine learning para otimizar o design do RNA guia e melhorar a precisão do diagnóstico.
Os testes baseados em CRISPR também têm seus desafios. A maioria só dá um resultado binário (positivo ou negativo). Padronização e reprodutibilidade continuam sendo preocupações, já que os resultados variam entre laboratórios e condições de teste.
Além disso, esses testes precisam seguir as regras, como a aprovação da FDA e da CLIA, que exigem muita validação, documentação e revisão. Por fim, as questões relacionadas à propriedade intelectual complicam o licenciamento e atrasam a comercialização.
Conclusão
A sensibilidade e a especificidade são super importantes na hora de avaliar testes diagnósticos e modelos de classificação. Elas podem ser mais perspicazes do que a precisão, especialmente em conjuntos de dados desequilibrados ou quando falsos positivos ou falsos negativos têm custos diferentes. Junto com ferramentas relacionadas, como índices de probabilidade e análise ROC, elas ajudam a entender melhor e tomar decisões mais acertadas.
Quer aprofundar suas habilidades práticas na avaliação do desempenho de modelos? Não deixe de conferir esses recursos do DataCamp:
- Fundamentos de Machine Learning em Python: Aprenda conceitos e técnicas básicas.
- Validação de modelos em Python: Adquira experiência prática com sensibilidade, especificidade, curvas ROC e muito mais.
- Análise de imagens biomédicas em Python: Aplique esses conceitos diretamente em cenários de diagnóstico na área da saúde.
Perguntas frequentes sobre sensibilidade e especificidade
Qual é a diferença entre sensibilidade e especificidade?
A sensibilidade mede o quão bem um teste identifica os verdadeiros positivos (aqueles com a condição), enquanto a especificidade mede o quão bem ele identifica os verdadeiros negativos (aqueles sem a condição).
Por que não podemos usar só a precisão?
A precisão pode ser enganosa, principalmente com dados desequilibrados. Um modelo que prevê “ausência de doença” para todas as pessoas em um cenário de doenças raras pode ter alta precisão, mas sensibilidade zero.
O que é uma curva ROC e como ela é usada?
Uma curva ROC mostra como a sensibilidade e a especificidade mudam em diferentes limites. Isso ajuda a visualizar as vantagens e desvantagens e escolher os limites ideais.
O que são índices de probabilidade e como os médicos usam isso?
As razões de verossimilhança juntam a sensibilidade e a especificidade num único valor. Eles ajudam os médicos a revisar a probabilidade de uma doença com base no resultado de um teste usando o raciocínio bayesiano.
Os modelos de ML podem usar essas mesmas métricas?
Sim. Os classificadores ML costumam usar sensibilidade, especificidade, curvas ROC e AUC para avaliar o desempenho, principalmente quando as classes estão desequilibradas ou o custo dos erros é diferente.

Mark Pedigo, PhD, é um ilustre cientista de dados com experiência em ciência de dados de saúde, programação e educação. Com doutorado em matemática, bacharelado em ciência da computação e certificado profissional em IA, Mark combina conhecimento técnico com solução prática de problemas. Sua carreira inclui funções em detecção de fraudes, previsão de mortalidade infantil e previsão financeira, além de contribuições para o software de estimativa de custos da NASA. Como educador, ele lecionou no DataCamp e na Washington University em St. Louis e foi mentor de programadores juniores. Em seu tempo livre, Mark curte o ar livre de Minnesota com sua esposa Mandy e seu cachorro Harley e toca piano jazz.