Exercício 4 - Versão 1

Jacques Wainer

Exercício 4 - Versão 1

Data de entrega: 9/7 a meia noite, via Moodle

Objetivos: aplicar os vários classificadores visto em aula. Busca de hiperparametros. Nested cross validation

Leia

Leia o arquivo dados4.csv. O arquivo é um banco de dados conhecido sobre credito bancário na Australia, mas com alguns dos atributos categóricos originais descrição dos dados

O atributo de saída é V15 (classes 1 e 2).

Nested Cross validation

Nested cross validation é uma forma mais complexa para escolher os algoritmos e hiperparametros a serem usados num projeto que provavelmente escolherá soluções levemente melhores.

A ideia é separar a seleção de hiperparametros da seleção de algoritmos de classificação. Assim queremos saber qual é o melhor algoritmo a ser usado num conjunto de dado sem escolher o melhor conjunto de hiperparametros para esse algoritmo ao mesmo tempo.

Vamos assumir que o conjunto de dados A é separado em apenas um conjunto de treino B e um conjunto de teste Z. A questão é qual o melhor algoritmo para usar no conjunto A. O que fizemos no exercício 2 e treinar todos os algoritmos cada um com seu conjunto de possíveis valores para os hiperparametros no B e medir no Z. A combinação que tinha menor RMSE no Z seria considerada a melhor. Mas isso não diz qual é o “melhor algoritmo”, isso responde qual é a melhor solução (combinação de algoritmo e valores do hiperparametro).

Para definir qual o melhor algoritmo, temos que fazer a busca dos hiperparametros dentro do conjunto B. Para o algoritmo X

Treine o algoritmo X com os melhores hiperparametros no B (C+D) e meça no Z. O melhor algoritmo sera o que tiver melhor medida no Z!

A validação cruzada que usa B como treino e Z como teste é chamada de “outer loop”. A validação cruzada que quebra o B em C de treino e D de teste é chamada de “inner loop”.

Complicando o nested cross validation

Nesse exemplo essas validações cruzadas era apenas 1 vez split de treino e teste. Cada uma delas pode ser qualquer validação cruzada que nos vimos (K-fold, repetições de split train/test, etc).

4 links:

Preprocessamento, Cross validation, medida de erro e busca de hiperparametros

Faça a conversão dos atributos categóricos (V5, V6 e V12) para numéricos, usando one-hot-encoder/dummy variables. Faça o centering e scaling para todos os atributos.

A busca de hiperparametros será feira usando nested-cross validation, com 3-fold estratificado para o inner loop (busca de hiper parâmetros) e 4 repetições de split de 70% para treino e 30 para teste no outer loop (para medir a qualidade do algoritmo).

Use AUC como medida de qualidade do classificador

A busca de hiperparametros será aleatória com 10 valores. O problema especificará um intervalo para hiperparametro. Use uma distribuição uniforme para escolher 10 valores neste intervalo.

Se houver mais de um hiperparametro, escolha 10 combinações aleatórias deles.

Para cada um dos classificadores abaixo

Reporte o AUC médio no outer loop. Monte uma tabela final com cada algoritmo e seu valor de AUC no outer loop

Logistic regression sem regularização

Sem regularização (e portanto sem hiperparametros)

Logistic regression com regularização L2

alpha: 10 números aleatórios entre 10^{-3} e 10^3: Uniforme no expoente,

LDA

Sem hiperparametros

QDA

Sem hiperparametros

SVM Linear

Selecione 10 valores aleatórios ente:

SVM com kernel RBF

Selecione 10 duplas aleatórias ente:

Naive Bayes

Use o Gaussian NB. Sem hiperparametros.

KNN

MLP

Arvore de decisão

Use prunning.

Random Forest

Use todas as combinações dos valores abaixo.

GBM

Selecione 10 trinca aleatórias ente: