Avaliaçã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.
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=allcorrect=TP+TN+FP+FNTP+TNEmbora 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=predicted positivecorrect positive=TP+FPTPRecall (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=all positivecorrect positive=TP+FNTPF1-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=precision+recall2×precision×recall1. 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?
Obrigado pelo seu feedback!
Pergunte à IA
Pergunte à IA
Pergunte o que quiser ou experimente uma das perguntas sugeridas para iniciar nosso bate-papo
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
Avaliaçã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.
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=allcorrect=TP+TN+FP+FNTP+TNEmbora 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=predicted positivecorrect positive=TP+FPTPRecall (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=all positivecorrect positive=TP+FNTPF1-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=precision+recall2×precision×recall1. 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?
Obrigado pelo seu feedback!