/K-foldCrossValidation_K-NearestNeighbors

O objetivo deste exercício é implementar o processo de k-fold cross validation (validação cruzada), técnica predominantemente utilizada em Aprendizado de Máquina para avaliar o poder de generalização de modelos. Esta técnica será aplicada para avaliação de modelos de k-nearest neighbors (KNN) para classificação com o dataset Pima Indian Diabetes (disponível para download no projeto), o qual tem como objetivo tentar predizer se um paciente tem diabetes baseado em um pequeno conjunto de atributos demográficos e clínicos. Este conjunto de dados é composto por 768 instâncias, sendo 500 da classe negativa (0, não possui diabetes) e 268 da classe positiva (1, possui diabetes). Além da classe (coluna “Outcome”), existem 8 atributos preditivos numéricos a partir do qual a predição deverá ser realizada. Observe que os atributos possuem escalas diferentes, sendo necessário normalizar os valores antes da aplicação do KNN.

Primary LanguageC

K-foldCrossValidation_K-NearestNeighbors

O objetivo deste exercício é implementar o processo de k-fold cross validation (validação cruzada), técnica predominantemente utilizada em Aprendizado de Máquina para avaliar o poder de generalização de modelos. Esta técnica será aplicada para avaliação de modelos de k-nearest neighbors (KNN) para classificação com o dataset Pima Indian Diabetes (disponível para download no projeto), o qual tem como objetivo tentar predizer se um paciente tem diabetes baseado em um pequeno conjunto de atributos demográficos e clínicos. Este conjunto de dados é composto por 768 instâncias, sendo 500 da classe negativa (0, não possui diabetes) e 268 da classe positiva (1, possui diabetes). Além da classe (coluna “Outcome”), existem 8 atributos preditivos numéricos a partir do qual a predição deverá ser realizada. Observe que os atributos possuem escalas diferentes, sendo necessário normalizar os valores antes da aplicação do KNN.

O código deve primeiramente realizar a divisão dos dados originais em k folds de forma estratificada (mantendo a proporção de exemplos por classe em cada fold), e então iterativamente treinar um modelo utilizando k-1 folds e testá-lo no fold restante, variando o fold de teste a cada repetição deste processo. A cada teste realizado, deverão ser calculadas e armazenadas as medidas de acurácia e F1-measure (F-measure com β=1). Deverá ser fornecida como saída uma tabela, onde são incluídas as métricas calculadas a cada fold e, ao final, reportados a média e desvio padrão para estas medidas de desempenho dentre todos os folds testados.