Hiperparâmetros na classificação

Concluído

Você pode pensar em hiperparâmetros como configurações usadas para treinamento. Por exemplo, podemos optar por treinar devagar ou rapidamente. Os hiperparâmetros afetam o treinamento, portanto, afetam o desempenho do modelo final. Exatamente quais hiperparâmetros estão disponíveis depende do tipo de modelo que estamos treinando. Geralmente experimentamos hiperparâmetros para otimizar o desempenho do nosso modelo.

Florestas aleatórias como exemplo

Florestas aleatórias têm diferentes tipos de hiperparâmetros disponíveis. Com florestas aleatórias especificamente, a linha entre os hiperparâmetros de decisões arquitetônicas pode ser borrada. Isso ocorre porque os hiperparâmetros não afetam apenas os parâmetros dentro do modelo, mas também como as árvores e a floresta são estruturadas.

Lembre-se que no início do treino cada árvore de decisão é fornecida inúmeras amostras, como 100 ginastas, algumas das quais ganharam medalhas. Temos de construir uma árvore que divida progressivamente estas amostras em subgrupos mais pequenos de atletas. O objetivo é que esses subgrupos contenham atletas que são iguais, como dentro de cada subgrupo todos os atletas ganharam medalhas, ou todos não. Vamos explorar alguns hiperparâmetros que podem afetar esse processo de treinamento.

Critérios de divisão

Durante o treinamento, o otimizador deve decidir quando dividir um nó. Existem diferentes maneiras de tomar decisões como essa, e qual método é escolhido é chamado de hiperparâmetro. Em essência, diferentes métodos referem-se a diferentes maneiras de avaliar o quão semelhante é uma amostra.

Os métodos comuns de divisão de nós são baseados na teoria da informação. Você pode pensar nisso aproximadamente como dividir uma amostra para que as duas subamostras resultantes sejam "mais puras" do que o original. Os métodos disponíveis diferem ligeiramente e podem resultar em pequenas diferenças na árvore resultante final, de forma muito semelhante à forma como as funções de custo usadas para descida de gradiente podem dar diferentes modelos finais. Vamos experimentar dois critérios no próximo conjunto de exercícios.

Diminuição mínima das impurezas

Você pode personalizar ainda mais o critério usado para dividir nós. Por exemplo, definir a diminuição de pureza mínima significa que um nó só pode ser dividido se melhorar o modelo em uma certa quantidade ou mais. Existem vários hiperparâmetros relacionados que podem bloquear novos nós que estão sendo criados, como a profundidade máxima ou o número mínimo de amostras em um nó.

A razão pela qual restringimos um crescimento excessivo de uma árvore é para evitar o sobreajuste. Árvores maiores são melhores em corresponder ao conjunto de dados de treinamento, mas podem ficar tão sintonizadas com esse conjunto de treinamento que param de funcionar para outros dados. Em outras palavras, restringir o quão complexa uma árvore se torna pode reduzir sua tendência a se sobreajustar.

Número máximo de funcionalidades

Quando árvores em uma floresta aleatória são criadas, elas recebem um subconjunto de dados de treinamento para ajustar e uma lista de recursos para usar. É importante ressaltar que cada árvore pode receber diferentes coleções de características. Por exemplo, uma árvore pode usar Peso e Altura, enquanto outra usa Altura e Idade.

Aumentar o número máximo de recursos que cada árvore pode receber provavelmente melhorará o quão bem cada árvore pode se encaixar no conjunto de treinamento à medida que mais informações são fornecidas. Se isso ajuda ou prejudica suas habilidades no conjunto de teste pode exigir experimentação. Isso ocorre porque sempre fornecer muitas características pode significar que as árvores na floresta acabam mais parecidas entre si, reduzindo a vantagem de uma floresta aleatória sobre uma árvore de decisão simples. Encontrar o equilíbrio entre esses extremos geralmente requer alguma experimentação.

Semeadura

O ajuste do modelo geralmente depende, em algum momento, de números aleatórios. Os computadores não produzem números verdadeiramente aleatórios, mas contêm regras que afirmam como produzir uma lista de números aleatórios, dado um número inicial chamado semente aleatória.

Por exemplo, se o nosso valor de semente foi 10 e tomar os três primeiros números 'aleatórios', o computador pode produzir 0,75, 0,13, 0,68. Embora esses números pareçam aleatórios, toda vez que semeamos a partir de 10, obteremos o mesmo conjunto de números.

No aprendizado de máquina, usamos números aleatórios para inicializar os parâmetros do modelo e/ou dividir conjuntos de dados em conjuntos de treinamento e teste. Se a semente aleatória for definida, os valores aleatórios usados durante o processo de treinamento serão os mesmos toda vez que executarmos novamente nosso código, o que significa que cada vez que executamos novamente nosso código, atribuímos os mesmos dados a conjuntos de teste ou treinamento e modelos de treinamento que têm o mesmo estado de inicialização (parâmetros iniciais).

Por outro lado, se não definirmos a semente, o computador selecionará uma para nós (por exemplo, com base no tempo), o que significa que executar nosso treinamento duas vezes pode dar resultados ligeiramente diferentes.

A semente aleatória não é estritamente um hiperparâmetro, mas introduzimo-la aqui para destacar que este parâmetro externo pode desempenhar um papel na eficácia do treino. Embora isso seja geralmente menor, se o modelo for muito complexo e/ou a quantidade de dados disponíveis for pequena, o desempenho do conjunto de testes do modelo pode ser marcadamente diferente se duas sementes diferentes forem usadas. Em tais situações, muitas vezes vale a pena executar o treinamento com várias sementes diferentes para avaliar até que ponto seu design de modelo é adequado e até que ponto seu desempenho é simplesmente "sorte cega".