Estimação de acurácia¶
Prática com R Notebook¶
Neste hands-on, organizamos uma atividade prática no sits
de acordo com o fluxograma apresentado ao lado. Nele, mostramos como é realizada a avaliação de acurácia do método de classificação. Aqui você aprenderá a:
realizar validação cruzada usando amostras de treinamento
Notebook Kaggle: https://www.kaggle.com/rolfsimoes/sits-kaggle
Validação Cruzada¶
Existem muitas maneiras de estimar a acurácia ou performance de um classificador. Aqui nos concentraremos em uma técnica conhecida como validação cruzada ou k-fold cross-validation. A figura abaixo ilustra como diferentes partições dos dados de treinamento podem ser divididos para o treinamento e para a validação. A técnica consiste em realizar esse processo k
vezes e agregar os resultados numa matriz de confusão.
No sits
, a função sits_kfold_validate()
realiza a validação cruzada. Ela recebe como argumento o conjunto de amostras usado para treinar o modelo de validação. O exemplo a seguir mostra a sintaxe:
1 2 3 4 5 | # Realiza uma avaliação de acurácia de um modelo Random Forest
# usando parâmetros default. k=5
prediction.mx <- sits_kfold_validate(samples_2bands,
folds = 5,
ml_method = sits_rfor(num_trees = 200))
|
Matriz de Confusão¶
Uma matriz de confusão é uma matriz cujas linhas (colunas) representam as amostras classificadas numa determinada classe e colunas (linhas) representam as classes de referências das amostras. Cada célula pode conter uma contagem ou proporção de amostras. A tabela a seguir ilustra a configuração de uma matriz de confusão.
Classes Preditas |
Classes de Referência |
Total |
||
---|---|---|---|---|
Classe A |
Classe B |
Classe C |
||
Classe A |
AA |
AB |
AC |
AT |
Classe B |
BA |
BB |
BC |
BT |
Classe C |
CA |
CB |
CC |
CT |
Total |
TA |
TB |
TC |
TT |
Algumas métricas de acurácia que podem ser calculadas a partir da matriz de confusão são:
Onde \(AG\) é a Acurácia Global; \(AU_i\) é a Acurácia do Usuário da classe \(i\); e \(AP_i\) é a Acurácia do Produtor da classe \(i\). A função que mostra a matriz de confusão é sits_conf_matrix()
e já computa as métricas de acurácia acima.
1 2 | # Mostra a matriz de confusão e métricas de acurácia
sits_conf_matrix(prediction.mx)
|