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 treinar uma rede neural, é fundamental avaliar o desempenho em dados não vistos. Essa avaliação permite determinar se o modelo aprendeu padrões relevantes ou apenas memorizou os exemplos de treinamento. Para isso, o conjunto de dados é dividido em duas partes:

  • Conjunto de treinamento — utilizado para treinar a rede neural, ajustando seus pesos e vieses por meio do backpropagation;
  • Conjunto de teste — utilizado após o treinamento para avaliar a capacidade de generalização do modelo em novos dados não vistos.

Uma divisão comum é 80% para treinamento e 20% para teste, embora essa proporção possa variar conforme o tamanho e a complexidade do conjunto de dados.

A divisão dos dados geralmente é realizada com 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 determina a proporção de dados reservados para teste. Por exemplo, ao definir test_size=0.1, 10% dos dados serão usados para teste, enquanto 90% serão usados para treinamento.

Se o modelo apresentar bom desempenho no conjunto de treinamento, mas desempenho ruim no conjunto de teste, pode estar ocorrendo overfitting — aprendizado de padrões muito específicos dos dados de treinamento, sem generalização para novos exemplos. O objetivo é obter bom desempenho em ambos os conjuntos, garantindo que o modelo generalize adequadamente.

Após a divisão dos dados e o treinamento do modelo, o desempenho deve ser medido utilizando métricas de avaliação apropriadas, que dependem da tarefa de classificação específica.

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;
  • Revocação;
  • 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 rótulos reais. Ela fornece informações sobre a quantidade 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 treinamento 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 treinamento 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 evaluation 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 treinar uma rede neural, é fundamental avaliar o desempenho em dados não vistos. Essa avaliação permite determinar se o modelo aprendeu padrões relevantes ou apenas memorizou os exemplos de treinamento. Para isso, o conjunto de dados é dividido em duas partes:

  • Conjunto de treinamento — utilizado para treinar a rede neural, ajustando seus pesos e vieses por meio do backpropagation;
  • Conjunto de teste — utilizado após o treinamento para avaliar a capacidade de generalização do modelo em novos dados não vistos.

Uma divisão comum é 80% para treinamento e 20% para teste, embora essa proporção possa variar conforme o tamanho e a complexidade do conjunto de dados.

A divisão dos dados geralmente é realizada com 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 determina a proporção de dados reservados para teste. Por exemplo, ao definir test_size=0.1, 10% dos dados serão usados para teste, enquanto 90% serão usados para treinamento.

Se o modelo apresentar bom desempenho no conjunto de treinamento, mas desempenho ruim no conjunto de teste, pode estar ocorrendo overfitting — aprendizado de padrões muito específicos dos dados de treinamento, sem generalização para novos exemplos. O objetivo é obter bom desempenho em ambos os conjuntos, garantindo que o modelo generalize adequadamente.

Após a divisão dos dados e o treinamento do modelo, o desempenho deve ser medido utilizando métricas de avaliação apropriadas, que dependem da tarefa de classificação específica.

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;
  • Revocação;
  • 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 rótulos reais. Ela fornece informações sobre a quantidade 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 treinamento 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 treinamento 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