Meus comentários sobre o Exercício 4

Use os dados Breast Cancer Wisconsin (Diagnostic) Data Set do UCI Machine Learning Repository.

Use validação cruzada para avaliar qual dos algoritmos tem maior acurácia nos dados

Decida que tipo de padronização dos dados voce usará para cada algoritmo (ou nenhuma). justifique.

É preciso fazer a padronização de cada uma das dimensões. Os valores são muito discrepantes. Por exemplo o atributo 21 vai de 0.007 a 0.079, enquanto que o atributo 26 vai de 185 a 4254. Ou seja toda a variação dentro dos valores possíveis do 21 é quase 2000 vezes menor que o menor valor do atributo 26- o atributo 26 tera pelo menos 2000 mais importância no KNN e nos pontos do support vector que o atributo 21!!

E redução de dimensionalidade usando PCA? A resposta é mais difícil. Voces ja viram no exercício 2 que a redução de dimensionalidade ajuda o KNN (se os dados estão em alta dimensão). Mas 30 é alta dimensão? Não sei dizer de forma geral. Se o problema não fosse tão facil, com taxas de acerto tão altas, teria sido importante fazer o PCA e verificar que dados nao estão em um subespaço de baiza dimensão antes de tentar o KNN. Mas se voce não fez a padronização das dimensões, voce so esta trabalhando em 1 a 3 dimensões de qualquer forma (as que tem maiores valores e que portanto carregam muito mais peso na medida de distancia que as outras 27 dimensões)!! No futuro, sempre verifique os autovalores do PCA para determinar se alguma redução de dimensionalidade não seria obvia.

Para o SVM, na maioria das vezes redução de dimensionalidade nao traz beneficios. Um de voces testou isso no exercício 3 - os resultados do SVM com e sem redução são basicamente iguais. Assim, para a parte do SVM, não é preciso fazer ou mesmo testar se o PCA seria útil.

Decida quantos folds voce usará nos experimentos. Justifique (não há resposta correta aqui, apenas alternativas).

Historicamente se usa 5, 10 ou mais folds. No nosso caso os valores possíveis sao de 5 ou 10. A vantagem do 5 fold é que cada fold tem mais dados e portanto tem mais chances de ser mais representativo do conjunto de dados como um todo. Isso é particularmente importante se voce não via fazer a validação cruzada para obter os hiper-parametros - como eu tinha sugerido para este problema. Neste caso voce quer que cada fold que seja o mais representativo dos dados o possível, ja que voce so vai usar um deles como conjunto de validação. Por outro lado, se voce usar 5 folds, será muito mais difícil mostrar que os resultados de um classificador sao significativamente diferente dos resultados de outro classificador! Se seu objetivo é mostrar que o seu classificador é melhor que o da competição, voce deve usar 10 folds. Se voce usar validação cruzada para determinar os valores dos hiper-parametros não há boa razão para usar 5 folds (quer dizer folds bem representativos dos dados). Assim, eu provavelmente usaria 10 folds para este problema.

Faça o grid search dos hiper-parametros apropriados para cada algoritmo

reporte as acurácias médias de cada algoritmo e os melhores valores dos hiper-parametros

Todos so algoritmos tem taxas de acerto bastante boas. Eu queria chamar a atenção ao random forest, que nós não vimos em detalhes em aula, mas que tem normalmente uma desempenho muito bom, comparável ao SVM. É uma técnica que deve ser sempre testada.

e finalmente, contrariamente ao que eu falei em aula, verifique se a diferença entre o melhor e o segundo melhor algoritmo é estatisticamente significante com 95\% de confiança

Como o problema era facil, todos os metodos tem alta taxa de acerto e portanto era improvável que as diferenças entre os métodos fosse significativa.