Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Aprenda Avaliação de Modelo | Rede Neural do Zero
Introdução às Redes Neurais

bookAvaliação de Modelo

Divisão dos Dados

Após o treinamento de uma rede neural, é necessário um método para avaliar seu desempenho em dados não vistos. Isso permite compreender se o modelo realmente aprendeu padrões úteis ou apenas memorizou os dados de treinamento. Para isso, o conjunto de dados é dividido em duas partes:

  • Conjunto de treinamento: esta parte dos dados é utilizada para treinar a rede neural, permitindo o ajuste dos pesos e vieses por meio do backpropagation;
  • Conjunto de teste: após o treinamento, o modelo é avaliado neste conjunto separado para medir sua capacidade de generalização para novos exemplos não vistos.

Uma divisão típica é 80% para treinamento / 20% para teste, embora isso possa variar conforme o tamanho e a complexidade do conjunto de dados.

A divisão entre treino e teste geralmente é realizada utilizando a função train_test_split() do módulo sklearn.model_selection:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)

O parâmetro test_size especifica a proporção do conjunto de dados que será utilizada como conjunto de teste. Por exemplo, ao definir test_size=0.1, 10% dos dados serão usados para teste, enquanto os 90% restantes serão usados para treinamento.

Se um modelo apresenta bom desempenho nos dados de treinamento, mas desempenho ruim nos dados de teste, pode estar ocorrendo overfitting, ou seja, o modelo memorizou o conjunto de treinamento em vez de aprender padrões generalizáveis. O objetivo é alcançar alta acurácia no teste mantendo boa generalização.

Após o treinamento do modelo, é necessário quantificar seu desempenho utilizando métricas. A escolha da métrica depende da tarefa específica de classificação.

Métricas de Classificação

Para problemas de classificação, diversas métricas principais podem ser utilizadas para avaliar as previsões do modelo:

  • acurácia;
  • precisão;
  • recall;
  • F1-score.

Como o perceptron realiza classificação binária, a criação de uma matriz de confusão auxilia na compreensão dessas métricas.

Note
Definição

Uma matriz de confusão é uma tabela que resume o desempenho da classificação do modelo ao comparar os rótulos previstos com os reais. Ela fornece informações sobre o número de previsões corretas e incorretas para cada classe (1 e 0).

Acurácia mede a proporção de amostras classificadas corretamente em relação ao total. Se um modelo classifica corretamente 90 de 100 imagens, sua acurácia é 90%.

accuracy=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Embora a acurácia seja útil, ela pode não fornecer uma visão completa—especialmente para conjuntos de dados desbalanceados. Por exemplo, em um conjunto onde 95% das amostras pertencem a uma classe, um modelo pode atingir 95% de acurácia apenas prevendo sempre a classe majoritária—sem realmente aprender algo útil. Nesses casos, precisão, recall ou F1-score podem ser métricas mais informativas.

Precisão é a porcentagem de casos positivos corretamente previstos em relação a todos os positivos previstos. Essa métrica é especialmente útil quando falsos positivos têm alto custo, como em detecção de spam ou fraude.

precision=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (sensibilidade) mede quantos dos casos realmente positivos o modelo identifica corretamente. Um alto recall é essencial em cenários onde falsos negativos devem ser minimizados, como em diagnósticos médicos.

recall=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-score é a média harmônica de precisão e recall, fornecendo uma medida equilibrada quando tanto falsos positivos quanto falsos negativos são relevantes. Isso é útil quando o conjunto de dados é desbalanceado, ou seja, uma classe aparece significativamente mais do que a outra.

F1=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. Qual é o principal objetivo de dividir seu conjunto de dados em conjuntos de treino e teste?

2. Por que o F1-score pode ser preferido em relação à acurácia em um conjunto de dados desbalanceado?

question mark

Qual é o principal objetivo de dividir seu conjunto de dados em conjuntos de treino e teste?

Select the correct answer

question mark

Por que o F1-score pode ser preferido em relação à acurácia em um conjunto de dados desbalanceado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 11

Pergunte à IA

expand

Pergunte à IA

ChatGPT

Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo

Suggested prompts:

Can you explain what a confusion matrix is and how to interpret it?

How do I choose which metric to use for my classification problem?

Can you give examples of when to prioritize precision over recall, or vice versa?

Awesome!

Completion rate improved to 4

bookAvaliação de Modelo

Deslize para mostrar o menu

Divisão dos Dados

Após o treinamento de uma rede neural, é necessário um método para avaliar seu desempenho em dados não vistos. Isso permite compreender se o modelo realmente aprendeu padrões úteis ou apenas memorizou os dados de treinamento. Para isso, o conjunto de dados é dividido em duas partes:

  • Conjunto de treinamento: esta parte dos dados é utilizada para treinar a rede neural, permitindo o ajuste dos pesos e vieses por meio do backpropagation;
  • Conjunto de teste: após o treinamento, o modelo é avaliado neste conjunto separado para medir sua capacidade de generalização para novos exemplos não vistos.

Uma divisão típica é 80% para treinamento / 20% para teste, embora isso possa variar conforme o tamanho e a complexidade do conjunto de dados.

A divisão entre treino e teste geralmente é realizada utilizando a função train_test_split() do módulo sklearn.model_selection:

from sklearn.model_selection import train_test_split

X_train, X_test, y_train, y_test = train_test_split(X, y, test_size=...)

O parâmetro test_size especifica a proporção do conjunto de dados que será utilizada como conjunto de teste. Por exemplo, ao definir test_size=0.1, 10% dos dados serão usados para teste, enquanto os 90% restantes serão usados para treinamento.

Se um modelo apresenta bom desempenho nos dados de treinamento, mas desempenho ruim nos dados de teste, pode estar ocorrendo overfitting, ou seja, o modelo memorizou o conjunto de treinamento em vez de aprender padrões generalizáveis. O objetivo é alcançar alta acurácia no teste mantendo boa generalização.

Após o treinamento do modelo, é necessário quantificar seu desempenho utilizando métricas. A escolha da métrica depende da tarefa específica de classificação.

Métricas de Classificação

Para problemas de classificação, diversas métricas principais podem ser utilizadas para avaliar as previsões do modelo:

  • acurácia;
  • precisão;
  • recall;
  • F1-score.

Como o perceptron realiza classificação binária, a criação de uma matriz de confusão auxilia na compreensão dessas métricas.

Note
Definição

Uma matriz de confusão é uma tabela que resume o desempenho da classificação do modelo ao comparar os rótulos previstos com os reais. Ela fornece informações sobre o número de previsões corretas e incorretas para cada classe (1 e 0).

Acurácia mede a proporção de amostras classificadas corretamente em relação ao total. Se um modelo classifica corretamente 90 de 100 imagens, sua acurácia é 90%.

accuracy=correctall=TP+TNTP+TN+FP+FN\text{accuracy} = \frac {\text{correct}} {\text{all}} = \frac {TP + TN} {TP + TN + FP + FN}

Embora a acurácia seja útil, ela pode não fornecer uma visão completa—especialmente para conjuntos de dados desbalanceados. Por exemplo, em um conjunto onde 95% das amostras pertencem a uma classe, um modelo pode atingir 95% de acurácia apenas prevendo sempre a classe majoritária—sem realmente aprender algo útil. Nesses casos, precisão, recall ou F1-score podem ser métricas mais informativas.

Precisão é a porcentagem de casos positivos corretamente previstos em relação a todos os positivos previstos. Essa métrica é especialmente útil quando falsos positivos têm alto custo, como em detecção de spam ou fraude.

precision=correct positivepredicted positive=TPTP+FP\text{precision} = \frac {\text{correct positive}} {\text{predicted positive}} = \frac {TP} {TP + FP}

Recall (sensibilidade) mede quantos dos casos realmente positivos o modelo identifica corretamente. Um alto recall é essencial em cenários onde falsos negativos devem ser minimizados, como em diagnósticos médicos.

recall=correct positiveall positive=TPTP+FN\text{recall} = \frac {\text{correct positive}} {\text{all positive}} = \frac {TP} {TP + FN}

F1-score é a média harmônica de precisão e recall, fornecendo uma medida equilibrada quando tanto falsos positivos quanto falsos negativos são relevantes. Isso é útil quando o conjunto de dados é desbalanceado, ou seja, uma classe aparece significativamente mais do que a outra.

F1=2×precision×recallprecision+recall\text{F1} = \frac {2 \times \text{precision} \times \text{recall}} {\text{precision} + \text{recall}}

1. Qual é o principal objetivo de dividir seu conjunto de dados em conjuntos de treino e teste?

2. Por que o F1-score pode ser preferido em relação à acurácia em um conjunto de dados desbalanceado?

question mark

Qual é o principal objetivo de dividir seu conjunto de dados em conjuntos de treino e teste?

Select the correct answer

question mark

Por que o F1-score pode ser preferido em relação à acurácia em um conjunto de dados desbalanceado?

Select the correct answer

Tudo estava claro?

Como podemos melhorá-lo?

Obrigado pelo seu feedback!

Seção 2. Capítulo 11
some-alt