Data de entrega 10/4 em aula
Use os dados Sonar, Mines vs Rocks dataset do UCI Machine Learning Repository. Use o arquivo sonar.all-data .
Voce vai verificar qual dentre os algoritmos abaixo é o melhor para classificar os dados.
divida os dados em k folds
usando o fold i como teste e os outros como treino (-i)
para todos os valores dos hiperparametros
divida o treino (-i) em q folds
usando o fold j para teste e os outros (-j) para treino
treine o classificador com (-j) e com os valores dos hiperparametros
calcule a acuracia do classificador em j
calcule a acuracia media para esse conjunto de hiperparametros
h_i e o conjunto de hiperparametros com maior acuracia media
treine (-i) com h_i e meca a acuracia a_i
reporte a acuracia media entre os a_i
ou em python
out=0
for TR,TE in kfold(DADOS,k):
maxacc=0
for H in hipergrid():
accur=0
for TR2,TE2 in kfold(TR,q):
classific=train(TR2,H)
accur+=test(classific,TE2)
if accur>maxacc:
maxacc=accur
maxhiper=H
class2=train(TR,maxhiper)
out+=test(class2,TE)
print out/k
onde:
É tambem possivel trocar a ordem dos dois "for" de dentro
for TR2,TE2 in kfold(TR,q):
for H in hipergrid():
ATENCAO. No SkitLearn, o kfold correto e o StratifiedKFold