O que são as métricas Sklearn e por que você precisa saber sobre elas?

Publicados: 2021-10-22

Python é uma das linguagens de programação mais usadas entre os desenvolvedores globalmente. Seus recursos de automação de dados e algoritmos o tornam ideal para construir e treinar programas, máquinas e sistemas baseados em computador e fazer previsões. Portanto, candidatos com habilidades em Python são cada vez mais preferidos para carreiras lucrativas, como Machine Learning e Data Science.

Se você é iniciante, encontrar as ferramentas certas por conta própria pode parecer assustador. Softwares gratuitos como o Scikit-learn podem capacitá-lo a adquirir habilidades relevantes com pouco esforço. A biblioteca de aprendizado de máquina possui vários algoritmos de classificação, regressão e clustering para programadores Python.

Este blog se concentrará especificamente em problemas de classificação e métricas de sklearn para guiá-lo em sua jornada de aprendizado. Você aprenderá sobre a aplicação de métricas de avaliação e também entenderá a matemática por trás delas.

Índice

Métricas de classificação no Scikit-Learn

A classificação é parte integrante da modelagem preditiva. Você o usa para identificar a classe à qual pertence uma determinada amostra de uma população. Suponha que você queira prever se um paciente será hospitalizado novamente. Os dois tipos possíveis aqui são – Positivo (hospitalizado) e Negativo (não hospitalizado). O modelo de classificação prevê o bucket onde a amostra deve ser colocada, Previsto Positivo ou Previsto Negativo. Você descobrirá a precisão das previsões depois de treinar o modelo.

A maioria dos cientistas de dados e engenheiros de aprendizado de máquina usa o pacote Scikit-Learn para analisar o desempenho de modelos preditivos. O módulo de métricas do sklearn oferece acesso a muitas funcionalidades integradas. Vamos descobrir o processo de escrever funções do zero com essas métricas.

Participe do Curso de Aprendizado de Máquina on-line das principais universidades do mundo - Mestrados, Programas de Pós-Graduação Executiva e Programa de Certificado Avançado em ML e IA para acelerar sua carreira.

Métricas do Sklearn explicadas

As métricas do Sklearn permitem implementar pontuações, perdas e funções de utilidade para avaliar o desempenho da classificação.

Aqui estão os principais passos envolvidos:

  • Carregar dados;
  • Divida-o em conjunto de trem e conjunto de teste;
  • Construir o modelo de treinamento;
  • Faça previsões ou previsões sobre os dados de teste;
  • Avalie o modelo de aprendizado de máquina com um método específico.

Para continuar, você precisará carregar um conjunto de dados de amostra e recursos de previsão para dois modelos, Random Forest e Linear Regression. Vamos chamá-los de Model_RF e Model_LR.

Execute este código para importar o módulo Pandas e ler o arquivo de dados e inspecionar seus elementos.

importar pandas como ps

df = ps.read_csv('data.csv')

df.head()

Na maioria dos projetos, você define um limite e rotula as probabilidades de previsão como positivas previstas e negativas previstas. Isso adicionaria mais duas colunas à sua tabela.

debulha = 0,5

df['forecasted_RF'] = (df.model_RF >= 0.5).astype('int')

df['forecasted_LR'] = (df.model_LR >= 0.5).astype('int')

df.head()

Agora que temos rótulos reais e previstos, podemos dividir nossas amostras em quatro grupos diferentes.

Com confusion_matrix, podemos obter um array 2X2 com os rótulos bifurcados nos seguintes buckets:

  • Verdadeiro Positivo (TP)
  • Falso Positivo (FP)
  • Falso Negativo (FN)
  • Verdadeiro Negativo (TN)

Depois de importar o confusion_matrix das métricas do sklearn e passar os rótulos reais e previstos, você pode definir suas funções para verificá-lo.

Você também pode verificar se seus resultados correspondem manualmente usando a função assert do Python e a função array_equal do NumPy.

Podemos calcular muitas outras métricas de desempenho usando os quatro buckets de TP, FP, TN e FN. Estes são:

1. precisão_pontuação

Ele pega os rótulos reais e previstos como entradas e produz a fração de amostras prevista corretamente.

2. recall_score

Ele fornece a fração de eventos positivos previstos corretamente. O recall também é conhecido como sensibilidade.

3. precisão_pontuação

Ele mostra a fração de eventos positivos previstos que são positivos.

Depois de calcular todas essas métricas, suponha que você ache o modelo de RF melhor em recall e precisão. A escolha aqui seria fácil. Mas e se o modelo LR fosse melhor em recall e o modelo RF fosse melhor em precisão? Nesse caso, você precisaria de outro método chamado pontuação F1.

4. f1_pontuação

É a média harmônica de recall e precisão. O modelo com maior pontuação é considerado a melhor opção.

As métricas acima foram calculadas com um limite definido de 0,5. Pode-se perguntar se uma mudança nesse limite também alteraria as métricas de desempenho. A resposta? Sim vai.

Temos outra maneira de avaliar um modelo sem escolher um limite, ou seja, curvas Receiver Operating Characteristic (ROC). O Scikit-learn também possui funções internas para analisá-los.

As funções roc_curve e roc_auc_score recebem os rótulos reais e as probabilidades previstas como entradas.

  • roc_curve

Ele retorna três listas, ou seja, limites (probabilidades previstas únicas em ordem decrescente), FPR (as taxas de falso-positivos) e TPR (as taxas de verdadeiros positivos).

  • roc_auc_curve

Ele encontra as áreas sob a curva para os modelos RF e LR.

Você pode determinar a melhor métrica de desempenho depois de traçar a curva ROC e adicionar a AUC às legendas.

Resumindo

Na análise preditiva, você pode escolher entre uma variedade de métricas. Precisão, recall, precisão, f1 e AUC são algumas das pontuações populares.

Alguns podem preferir definir um limite e usar métricas de desempenho como precisão, recall, precisão e pontuações f1. Outros podem gostar de usar a AUC para analisar o desempenho de um modelo, pois não requer seleção de limite. No final, você deve escolher a métrica que melhor se adapte ao problema de negócios em questão.

Com isso, fornecemos uma visão geral das métricas do sklearn. Você pode usar essas informações para esclarecer os fundamentos da programação python e continuar aprendendo com cursos online. Você também pode realizar trabalhos de projeto para praticar e refinar suas habilidades. Programas como o Master of Science in Machine Learning & Artificial Intelligence do upGrad podem ajudar com ambos.

O currículo familiariza você com o kit de ferramentas completo de ciência de dados e abrange aspectos práticos do Scikit-Learn e outros softwares. Além disso, credenciais de institutos de renome, como a Liverpool John Moores University e o IIIT Bangalore, diferenciam você da concorrência em solicitações de emprego e entrevistas de colocação.

O que são métricas de avaliação em Python?

As métricas de avaliação são normalmente usadas para problemas de classificação em Python. O Scikit-Learn é uma biblioteca de aprendizado de máquina gratuita que permite uma ampla variedade de tarefas de análise preditiva. Aspirantes a cientistas de dados e engenheiros de aprendizado de máquina podem usá-lo para fazer previsões sobre os dados e analisar a qualidade de modelos específicos.

Por que você precisa de métricas sklearn?

As métricas do Sklearn permitem avaliar a qualidade de suas previsões. Você pode usar este módulo no Scikit-Learn para vários conjuntos de dados, funções de pontuação e métricas de desempenho. A matriz de confusão no sklearn é uma representação útil da precisão das previsões. Com entradas como rótulos reais e previstos, juntamente com um limite definido ou valor de confiança, você pode calcular métricas como recall, precisão e pontuações f1. O método da curva ROC equilibra as estimativas de probabilidade e fornece uma métrica de desempenho em termos da área sob a curva.

Como a pós-graduação em IA e ML ajuda no avanço da carreira?

As certificações mais avançadas na área de Inteligência Artificial e Machine Learning incluem ferramentas como Scikit-Learn no currículo. É um componente essencial da programação Python e do treinamento em Ciência de Dados. Mas receitas de codificação em Python e Scikit-Learn não são suficientes no ambiente de trabalho competitivo de hoje. Você precisa obter conhecimento orientado para o setor e praticar suas habilidades. Portanto, escolha programas de estudo que ofereçam oportunidades para implementar projetos e tarefas.