Escolar Documentos
Profissional Documentos
Cultura Documentos
Cada modelo de aprendizado possui seu conjunto próprio de parâmetros e hiperparâmetros e assim
sendo deve observar atentamente cada um dos hiperparâmetros para que se possa estabelecer
valores que promovam, pelo menos satisfatoriamente, um resultado adequado ao problema. Em
geral, os modelos de aprendizado já oferecem valores aos hiperparâmetros que atinjam um
resultado na direção certa, entretanto os valores-padrão não podem ser considerados “balas de
prata”.
Sugerimos, agora, que você dê uma pausa na sua leitura e reflita sobre sua
aprendizagem realizando a questão a seguir.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 1/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
Os hiperparâmetros não podem ser definidos pelo usuário, eles são fixos através do
estado da arte da técnica escolhida, já os parâmetros podem ser alterados pelo usuário.
AVALIAÇÃO DE MODELOS
Segundo Norvig e Russell (2014) quando treinamos modelo de aprendizado, independente de suas
características, temos um conjunto de dados de treinamento e um conjunto de teste, e
estabelecemos seus hiperparâmetros, os resultados obtidos no treinamento podem não ser
satisfatórios no teste, ou seja, podem resultar em overffitting (super-treinamento) do modelo, que
acontece quando o este “memoriza” os dados de treinamento ao invés de aprender a generalização
do domínio do problema, ou então, resulta em underfitting (sub-treiamento) do modelo, que
acontece quando o este não abstrai informações suficientes do domínio de dados.
Nesse sentido, para evitar ao máximo esses efeitos podemos usar uma parte do conjunto de
treinamento como validador do modelo, chamado de conjunto de validação, isto é, uma espécie de
pré-teste que vai dizer se o modelo foi eficaz ou não. Tal abordagem é especialmente interessante
quando não temos o conjunto de teste facilmente disponível ou quando não conhecemos a priori a
variável target deste. Além disso, caso não haja conjunto de teste disponível é possível separar uma
parte do conjunto de dados para tal fim. Entretanto, ao diminuir o conjunto de treinamento, damos
ao modelo menos dados na fase de treinamento impactando negativamente os resultados a
depender da divisão que faremos entre conjunto de treinamento e conjunto de validação.
Esse processo é chamado de k-fold cross validation e é ilustrado na Figura 1, na qual vemos que o
conjunto de dados (All Data) está dividido em treinamento (verde) e teste (azul), e
subsequentemente, o 5-fold cross-validation é aplicado ao conjunto de dados, gerando 5 partes,
treinando, assim, o modelo 5 vezes (splits) no qual, em cada vez, uma das partes é usada como
validação (pré-teste). É importante ressaltar que, a cada treinamento realizado o modelo é
reiniciado, isto é, o modelo volta para os parâmetros iniciais, uma vez que queremos mitigar
qualquer influência da partição dos dados na avaliação do modelo em questão.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 2/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
Ao observar a Figura 36, podemos notar que o resultado geral do modelo é a média da métrica de
desempenho escolhida para o modelo, obtida em cada treinamento do k-fold cross-validation. Além
disso, é possível obter o desvio-padrão, indicando, assim, qualquer variabilidade sobre a média.
Além da figura, ao analisar o Código 1, vemos que ele apresenta o uso da função cross_validate do
scikit-learn para realizar a tarefa do k-fold cross-validation, num conjunto de dados que divide
instâncias à partir de informações sobre imagens de tumores em mamas de pacientes em benigno
e maligno (breast cancer dataset), usando RandomForest. A função em questão (linha 12) recebe o
classificador, as entradas e os targets , seguido da quantidade de divisões (k-folds) que serão
feitos. Após a sua execução, os resultados são retornados em scores e as acurácias apresentadas
individualmente, e também sua média e desvio-padrão (linhas 19 e 20). Sendo assim, é possível ter
uma ideia do desempenho do modelo, independentemente, do conjunto de dados escolhido para
treinamento e teste.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 3/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
Tal técnica visa super utilizar o conjunto de dados de forma a mitigar qualquer viés
promovido pela divisão do conjunto de dados em treinamento e teste, sendo assim, em
algum momento, cada uma das instâncias é usada como treinamento ou teste.
Tal técnica visa super utilizar os dados de forma a descobrir quais são os principais
vieses na construção do modelo de classificação.
Tal técnica visa super utilizar o conjunto de dados, dividindo-os em k grupos (k-folds), e
treinando diferentes modelos com técnicas diversas em cada uma das rodadas.
Tal técnica deve ser utilizada apenas em conjunto de dados extremamente volumosos e
com expressiva quantidade de atributos.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 4/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
Tal técnica é voltada apenas para problemas de classificação, não sendo possível utilizá-
la em problemas de regressão.
Cada vez que criamos modelos para realização de tarefas de aprendizado de máquina, temos que
estabelecer os valores dos hiperparâmetros. Nesse sentido, a questão levantada para todo usuário
que constrói modelos de aprendizado é:
A maneira mais imediata e simples de responder essa questão é através do mecanismo de treinar-
validar o modelo em questão com diferentes valores de parâmetros no mecanismo do cross-
validatiton. Por exemplo, seja um problema de classificação qualquer, e desejamos criar um
classificador baseado em Support Vector Machines (SVM). Sabendo que uma SVM possui o
hiperparâmetro C, o qual modula a regularização do modelo em questão, bem como o
hiperparâmetro kernel, o qual estabelece a função usada pelo modelo no processo de aprendizado,
poderíamos construir diferentes classificadores SVM, variando os hiperparâmetros citados:
A essa técnica damos o nome de Grid Search, mais especificamente: Exaustive Grid Search, uma
vez que essa técnica visa combinar todas as possibilidades de valores especificados e verificar o
desempenho de cada modelo criando, assim, um mapa para verificarmos quais hiperparâmetros
promoveram o melhor desempenho do modelo em questão.
O Código 2 apresenta o uso de uma Exaustive Grid Search, por meio do Scikit-Learn para
determinar os melhores valores dos hiperparâmetros e para um classificador SVM no
conjunto de dados breast cancer, observamos que na linha 13 fazemos o classificar SVM é criado, e
na linha 15 são demonstrados todos os hiperparâmetros disponíveis com seus respectivos valores-
padrão. Além disso, a linha 17 indica o dicionário contendo os hiperparâmetros, como também os
respectivos valores que deverão ser verificados junto ao cross validation. Já na linha 19 , o objeto
que realizará o processo de Exaustive Grid Search é criado a partir do classificado SVC e dos
parâmetros de busca da linha 17. Na linha 21 faz-se o processo de grid search, chamando o
método fit. Por fim, as linhas 23 e 24 apresentam o melhor desempenho obtido, bem como os
hiperparâmetros que proporcionaram tal desempenho.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 5/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
1. import pprint
2. from sklearn.model_selection import GridSearchCV
3. from sklearn.datasets import load_breast_cancer
4. from sklearn.svm import SVC
6. bc_dataset = load_breast_cancer()
7. # Acessando os dados de entrada (X) e o target (y)
8. X = bc_dataset.data
9. y = bc_dataset.target
11. pp = pprint.PrettyPrinter(indent=4)
17. params_svc = {‘C’: [1, 10, 50, 250, 1000], ‘kernel’: [‘linea
22. pp.pprint(grid_cv.cv_results_)
Esse método de busca de hiperparâmetros, no qual todas as possibilidades são testadas, apesar de
mostrar-se eficaz, dependendo da quantidade e natureza dos hiperparâmetros, bem como do
tamanho do conjunto de dados, pode se tornar computacionalmente caro e impraticável.
Seguindo esse raciocínio, uma estratégia mais eficiente é necessária. É possível realizar uma busca
aleatória dentro do espaço determinado de hiperparâmetros, chamada de Random Search (Bergstra
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 6/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
e Bengio, 2012), esta técnica permite que estabeleçamos um intervalo válido para os
hiperparâmetros e uma busca aleatória é realizada tentando encontrar a melhor combinação de
parâmetros.
No Código 3 temos um código que, faz uso da busca aleatória de parâmetros, por meio do Scikit-
learn. Assim, é possível perceber que na linha 18: os parâmetros C e gamma são gerados através
de uma função que gera um valor a partir do intervalo estabelecido de maneira logarítmica-
uniforme. Essa abordagem acelera a busca de parâmetros, fazendo com que mais hiperparâmetros
e seus respectivos valores possam ser explorados.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 7/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
1. import pprint
2. from sklearn.model_selection import RandomizedSearchCV
3. from sklearn.datasets import load_breast_cancer
4. from sklearn.svm import SVC
5. from sklearn.utils.fixes import loguniform
7. bc_dataset = load_breast_cancer()
8. # Acessando os dados de entrada (X) e o target (y)
9. X = bc_dataset.data
10. y = bc_dataset.target
12. pp = pprint.PrettyPrinter(indent=4)
24. rd_cv.fit(X, y)
25. pp.pprint(rd_cv.cv_results_)
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 8/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
Desejamos uma boa leitura e ressaltamos que a busca por conhecimento deve ser
constante em sua vida; assim, se tornará um excelente profissional!
Depois de ler as indicações de leitura, qual tal agora assistir ao vídeo complementar deste ciclo, o
qual consta o passo a passo sobre a optimização de modelos através da busca de hiperparâmetros.
Tanto a busca exaustiva (exaustive) quanto a busca aleatória (random) têm por objetivo
determinar um conjunto de valores para os hiperparâmetros determinados que promovam o
melhor desempenho por parte do modelo.
Apenas a busca exaustiva é capaz de trabalhar com múltiplos hiperparâmetros, uma vez
que ela vai testar o modelo com todas as combinações.
A busca aleatória tenta, por meio da escolha aleatória de valores, influenciar o algoritmo
em questão no ajuste dos parâmetros.
A busca exaustiva deve ser aplicada em situações, nas quais todos os parâmetros do
modelo sejam conhecidos, já a busca aleatória permite que os parâmetros possam ser
parcialmente conhecidos.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 9/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
Por fim, veja o vídeo de encerramento proposto para esta disciplina, leia as considerações,
responda às questões on-line e participe do Fórum deste ciclo.
CONSIDERAÇÕES
Neste ciclo, vimos como podemos aumentar o grau de confiança no desempenho
dos modelos de aprendizado, por meio da aplicação da técnica de k-fold cross-validation, podendo,
assim, analisar com mais assertividade um dado algoritmo proposto para um problema de
classificação ou regressão. Além disso, podemos compreender como os hiperparâmetros impactam
no desempenho de um algoritmo e como usar estratégias para estabelecer bons valores para eles.
INTERATIVIDADE NO FÓRUM
OBJETIVO
Compreender os principais hiperparâmetros dos modelos
estudados nesta disciplina.
DESCRIÇÃO DA INTERATIVIDADE
Escolha qualquer um dos modelos de aprendizado supervisionado de classificação que
vimos nessa disciplina, a seguir, identifique seus hiperparâmetros, refletindo e elencando
quais hiperparâmetros podem ser explorados para gerar melhores resultados.
Disponibilize sua resposta no Fórum, justificando suas escolhas, aproveite também para
analisar outras respostas e interagir com seus colegas.
PONTUAÇÃO
A atividade vale de 0 a 1,0 ponto.
CRITÉRIOS DE AVALIAÇÃO
Na avaliação desta tarefa serão utilizados os seguintes critérios:
Acesse o Fórum
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 10/11
16/12/2020 Ciclo 5 – Otimização dos Algoritmos – Fundamentos de Machine Learning
QUESTÕES ON-LINE
Responda as Questões on-line disponibilizadas na Sala
de Aula Virtual.
PONTUAÇÃO
De 0 a 0,5 ponto.
https://mdm.claretiano.edu.br/funmaclea-g04120-2020-02-grad-ead/2019/12/10/ciclo-5-otimizacao-dos-algoritmos/ 11/11