Exercício 5
Data de entrega 8/5 em aula
Use os dados do problema Bank datasets (dataset bank8FM)
disponível em http://www.dcc.fc.up.pt/~ltorgo/Regression/DataSets.html
Use o data set bank8FM. O problema é predizer o valor do ultimo
atriburo "rej" baseado nos outros 8.
O dataset ja esta separado em um conjunto de treino e outro de
teste. Portanto, treine e ajuste seus regressores no comjunto de
treino e reporte o erro quadrático médio para o conjunto de
teste. Nao se esqueca que para ajustar os hiperparametros voces nao
podem usar o conjunto de teste, mas precisam dividir o conjunto de
treino em dois, e testar em uma dessas partes. No problema de
classificacao, usamos o 5-fold tanto no loop externo (para medir a
acurácia) como no loop interno, para escolher os
hiperparametros. Neste problema usaremos o hold out (apenas um
conjunto de teste e um de treino) tanto no loop externo como no
interno. Use 3/4 do conjunto de treino para treinar e 1/4
(aleatoriamente escolhido) para medir o erro, quando escolhendo os hiperparametros).
Teste os seguintes algoritmos de regressão. Reporte o erro no
conjunto de teste.
- regressão logística multipla
- Random Fores. Teste para mtry (em R) ou n_features (em Python) em
[2,3,4,5]
- k-vizinhos para regressão (retorne a média dos
valores dos k-vizinhos mais proximos). Teste para valores do k em
[1,2,5,10,20]
- redes neurais de feed-forward de uma camada
escondida e o neuronio de saida com a função de transferencia normal
(logistica), ja que a o valor de saida esta entre 0 e 1. Teste para o
número de neuronios na camada escondida em [1,2,5,10,20]. Redes
neurais dependem muito da inicializacao dos pesos. Assim algumas
implementacoes de redes neurais fazem varias inicializacoes e escolhem
a melhor rede. Se a implementacoa que voce esta usando NAO faz varias
reinicializacoes, entao repita o experimento pelo menos 10 vezes (com
diferentes inicializacoes dos pesos) e escolha a melhor rede.
- SVM-R (SVM para regressão) com Kernel RBF. Teste para os valores
de C e gamma no intervalo de 1e-3 a 1e5 com multiplos de 10.
- Radial Basis functions networks. Este tipo de rede neural estava
bem em moda ha ums 10 anos atrás. O parendizado nestas redes é
muito mais rápido e nao depende tanto da sorte. Ha uma implementacao
de RBF network no pacote RSNNS (em R) e ha algumas implementacoes em
Python (PyRadbas e outras). Use o mesmo numero de neuronios na camada
escondida que o problema de feed forward acima.