MO432 -capitulo 4
Jacques Wainer
tuning parameters é tambem conhecido por hyperparameters
hiperparametros, de forma geral (mas nao sempre) controlam a complexidade do preditor onde geralmente
alta complexidade - preditor esta muito ajustado aos dados - overfitting
baixa complexidade - o preditor não tem “poder” para se ajustar aos dados de forma geral - de vez em quando se usa underfitting para isso
resampling/cross validation:
separa em 1 ou múltiplos conjuntos de treino e teste.
conjunto de teste não tem nenhum dado do conjunto de treino
ajusta/treina/fit o modelo no conjunto de treino,
avalia no conjunto de teste
Ajustar hiperparametros:
teste deve ser “grande” (para que a medida seja robusta - sem ruído)
mas treino tambem deve ser grande (para que o preditor possa aprender algo)
use mais de um conjunto de treino/teste - so um pode dar um resultado ruidoso (pode ser que o resultado dependa muito do particular conjunto de teste escolhido ou sorteado)
amostra aleatoria simples - selecione aleatoriamente o teste
amostra aleatoria estratificada - mesma proporção das classes no treino e no teste - para a regressão divida os valores em grupos e faça a estratificação (processo incomum)
maximum dissimilarity sampling - nunca vi isso sendo usado - pode pular esses paragrafos
k-fold cv - k conjuntos aproximadamente iguais. k-1 usados para treino, o restante para teste, todas as k combinações - figura 4.6
usualmente k-fold com estratificação,
k é normalmente 3, 5 ou 10
leave one out (LOOCV) - só usado raramente, se voce tem poucos dados.
Generalized CV (PULE)
Repeated training/test splits (usual tambem)
Boostrap (um dia leia sobre isso)
usa 5x 10-fold (50 rodadas para cada valor do hiperparametro)
figura 4.9 - veja o overfitting: curva vermelha sobre (melhora) mas a curva preta (no conjunto de teste) se mantem mais ou menos constante
normalmente escolhe-se o valor do hiperparametro que maximiza a medida (nesse caso taxa de acerto) - 2^3
o texto discute tambem uma tecnica mais elaborada que usa nao so o valor médio da taxa de acerto mas o desvio padrão. “one standard error”
ou a diferença relativa (“precent descrease in performance”)
nesses casos voce escolhe o modelo “mais simples” dentro dos limites (mas isso me parece exagerado - o modelo mais simples é para evitar overfitting e ja estamos evitando dado a separação treino e teste)
ha uma lição importante nessa figura ** Ha varios valores do hiperparametro que não mudam o valor (maximo) da taxa de acerto Nao vale a pena gastar muito tempo procurando pelo melhor** hiperparametro
https://scikit-learn.org/stable/modules/classes.html#module-sklearn.model_selection
k-fold estratificado https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.StratifiedKFold.html#sklearn.model_selection.StratifiedKFold
(repeated) split treino teste https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.ShuffleSplit.html#sklearn.model_selection.ShuffleSplit
https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.cross_validate.html#sklearn.model_selection.cross_validate calcula os vários varios valores da medida de qualidade da predição usando os conjuntos treino/teste especificados no parâmetro cv (parte rosa da figura 4.4)
grid search ou random search de hiperparametros (toda a figura 4.4) https://scikit-learn.org/stable/modules/generated/sklearn.model_selection.GridSearchCV.html#sklearn.model_selection.GridSearchCV