‫Então, vamos começar a mergulhar em diferentes maneiras de melhorar nossos modelos usando o ajuste de hiperparâmetro.
‫O primeiro aqui é feito à mão.
‫Então, vamos fazer um pequeno título.
‫5 1 tipo de ajuste de parâmetros manualmente.
‫E até agora, falamos sobre como lidar com conjuntos de dados de treinamento e teste, um modelo é treinado no lado
‫do treinamento, encontra padrões e então é avaliado no conjunto de teste.
‫Portanto, ele usa esses padrões.
‫Mas o ajuste de hiperparâmetro introduz um terceiro conjunto, um conjunto de validação.
‫Então, se dermos uma olhada aqui, é assim que vai ficar quando treinarmos os parâmetros manualmente.
‫Então, se estivéssemos começando com 100 registros de pacientes no caso de nosso problema de doença cardíaca.
‫Agora, novamente, isso pode mudar dependendo do problema com o qual você está trabalhando.
‫E acabei de usar o número 100 porque é um número fácil de imaginar.
‫Portanto, esses são nossos dados iniciais e o que podemos fazer é dividi-los.
‫Isso é o que quero dizer com três conjuntos diferentes.
‫Então nos separamos.
‫Podemos usar 70 a 80 por cento.
‫Portanto, 70 registros de pacientes como uma divisão de treinamento.
‫Podemos usar de 10 a 15 por cento como uma divisão de validação e podemos usar de 10 a 15 por cento em uma divisão de teste.
‫Agora, é claro, você pode ajustar esses números.
‫Esses são apenas alguns números comuns que você verá usados.
‫E então, naturalmente, o modelo é treinado nisso, é o que vimos antes.
‫E normalmente sem o conjunto de validação, nosso modelo será avaliado neles, mas agora, como temos um conjunto de validação, é aqui que vamos
‫ajustar as configurações do nosso modelo, a. k. uma. os hiperparâmetros, sintonize
‫na divisão de validação e, finalmente, como normal, um modelo é avaliado na divisão de teste.
‫E agora a analogia aqui é, se você se lembrar desde o início, o conceito mais importante no aprendizado
‫de máquina é o conjunto de três.
‫Então, isso foi logo no início.
‫O aprendizado de máquina no conjunto de treinamento é análogo a dizer que você está em um curso universitário e está
‫aprendendo os materiais do curso.
‫O conjunto de validação é onde você testaria um pouco o seu conhecimento e veria o que você precisa ajustar.
‫Então, você faria o exame simulado do seu professor e tentaria e pensaria: Oh, uau, estou me
‫saindo muito mal nas perguntas um, dois e quatro.
‫Talvez eu precise ajustar a maneira como abordo isso.
‫E então você faz o exame simulado novamente.
‫E depois de melhorar suas habilidades no exame simulado, você se sentirá
‫um pouco confiante e finalmente se avaliará no exame final, que é o conjunto de testes.
‫Então, como faríamos isso com o código?
‫Voltemos ao nosso caderno.
‫Tipo de treinamento de parâmetros com a mão, vamos fazer três séries, treinamento, validação e teste.
‫Então o que faremos é apenas nos lembrar de nossos Get Prem's ou nos lembrar de nossos classificadores de
‫floresta aleatórios, parâmetros de linha de base.
‫Portanto, todos esses são parâmetros de linha de base, a. k. uma. as configurações em nosso modelo, que podemos ajustar.
‫E agora, na verdade, quais vamos ajustar?
‫Bem, depois de ler a documentação da floresta aleatória e novamente, você pode fazer isso para qualquer estimativa
‫ou modelo de aprendizado de máquina com ciclone, começamos a ter uma ideia de como poderíamos ajustar cada configuração.
‫E mesmo com alguns dos modelos, haverá algumas notas sobre diferentes tipos de parâmetros.
‫Portanto, não consigo aprender a sugerir mudanças.
‫É como aqueles que você deseja alterar primeiro para tentar.
‫E então, depois de ler isso.
‫Depois de passar por isso.
‫Portanto, em nosso caso, vamos tentar ajustar o seguinte.
‫Portanto, queremos profundidade máxima.
‫Na verdade, nós os colocamos em prática porque sabemos que existem, então sabemos que eles podem ter profundidade máxima.
‫Recursos máximos.
‫Quero dizer, as amostras saem se nada disso fizer sentido.
‫Lembre-se de que a definição de tudo isso está na documentação de qualquer modelo.
‫Então, subimos aqui, amostras médias, deixamos o número mínimo de amostras necessário para estar em um nó folha.
‫E você pode ler mais a fundo sobre o que é um nó folha se verificar em profundidade alguns recursos em uma floresta
‫aleatória.
‫Mas, por enquanto, estamos apenas nos concentrando em como podemos ajustar os parâmetros de um modelo de aprendizado de máquina.
‫Quer dizer, amostras de folhas.
‫E as amostras médias se dividem e uma estimativa é maravilhosa.
‫Então, esses são os tipos de parâmetros que vamos ajustar e agora vamos usar nosso mesmo código
‫de antes, exceto que desta vez precisamos criar uma validação de treinamento e divisão de teste, que usa apenas essas divisões aqui.
‫Portanto, a divisão de treinamento será criada com 70 por cento dos dados, os conjuntos de validação e teste conterão cada
‫um 15 e obteremos alguns resultados de linha de base.
‫Então, já os temos, mas faremos de novo, obteremos alguns resultados de linha de base
‫e veremos como podemos ajustar os parâmetros híbridos dos modelos manualmente.
‫E como iremos avaliar alguns modelos, acho importante criarmos uma função de
‫avaliação.
‫Então é isso que você pode querer fazer.
‫Seja qual for o modelo em que você está trabalhando, crie funções se você souber que deseja fazer algo mais de
‫uma vez.
‫Portanto, isso economiza a escrita de muito código.
‫Mas, novamente, isso é provavelmente um pouco diferente do que vimos no passado.
‫Sabemos que gostamos de escrever tudo à mão.
‫Nós apenas deixamos um pouco de medicação aqui.
‫Comparação de avaliação de desempenho sobre por que rótulos verdadeiros, rótulos generalizados.
‫E agora, como vimos na seção de avaliação, a principal coisa que avalia o modelo de aprendizado
‫de máquina é comparar suas previsões com os rótulos verdadeiros.
‫Então é isso que esta função fará.
‫Portanto, como estamos trabalhando com o classificador, queremos exatidão, exatidão, pontuação.
‫Por que é verdade?
‫Por que desfiles?
‫Também queremos precisão.
‫E agora podemos realmente observar aqui em nosso modelo de classificação, porque se usarmos esse spread de avaliação
‫em um modelo de regressão, estamos colocando métricas de classificação, vamos obter erros porque um modelo
‫de regressão prevê coisas diferentes para o que uma classificação modelo prevê precisão.
‫E então não lembraremos, é claro, é igual a pontuação de revocação.
‫E agora, novamente, você pode ajustar isso, avaliar desfiles, funcionar para o que você precisa.
‫Mas vou apenas incluir algumas das métricas mais comuns que cobrimos para os modelos de classificação, algumas
‫das coisas que você deseja prestar atenção para basicamente todos os seus modelos de classificação.
‫Por que desfiles?
‫E então criaremos um dicionário para que ele possa retornar a previsão para que
‫possamos compará-las com outras previsões posteriormente.
‫A precisão irá para duas casas decimais.
‫Sim, precisão, precisão redonda.
‫Para.
‫Agora, lembre-se sempre, se isso parece muito, é porque, em primeiro lugar, é meio que muito para receber
‫com um golpe.
‫E a segunda coisa é que tenho um pouco de prática com isso, então, inerentemente, sei o que
‫usar.
‫Novamente, estou sempre aprendendo, mas acabei de praticar um pouco na construção desses tipos específicos de sistemas.
‫E esses padrões surgem uma e outra vez.
‫Vá imprimir.
‫Queremos apenas dar-nos uma pequena impressão do que está acontecendo.
‫Ach, precisão.
‫Vezes 100, e então queremos apenas duas casas decimais que serão suficientes, então iremos para
‫a mesma coisa se precisão.
‫Isso pode ser precisão, não precisamos multiplicar por 100, que pode ficar apenas em duas casas decimais.
‫Precisamos de uma string com uma impressão maravilhosa e vamos lembrar que isso é muito para digitar para começar.
‫Mas como poderemos reutilizá-lo, isso nos salvará no futuro.
‫E então, finalmente, queremos Trent.
‫Se uma escola.
‫Estamos fazendo isso, estamos finalmente fazendo um excelente esforço.
‫Aqui vamos nós.
‫OK.
‫E, finalmente, queremos retornar nossa data métrica.
‫Agora, o que está acontecendo aqui?
‫Bem, essencialmente, essa função apenas leva alguns rótulos verdadeiros e alguns rótulos de previsão de nossos modelos de classificação.
‫Sabemos disso pela string aqui.
‫Ele irá computar diferentes funções de avaliação aqui e, em seguida, retornará um dicionário de métricas para que possamos
‫salvá-lo para mais tarde.
‫E também imprimirá algumas métricas para que possamos obter uma impressão assim que executarmos esta função.
‫Portanto, é apenas uma função de avaliação para nossos modelos de classificação.
‫Maravilhoso.
‫E vou guardar o caderno aqui, como sempre.
‫Agora, como exatamente criaríamos esses pilotos de teste e validação de trem?
‫Bem, nossa função de divisão de teste de trem que vimos antes.
‫Lembra dessa exibição de um trem?
‫Portanto, este apenas retorna, treina divisões, matrizes de trem aleatório e subconjuntos de teste.
‫Este só se divide em conjuntos de treinamento e teste.
‫Portanto, o que precisamos fazer é dividir manualmente nossos dados em validação de trem no sentido de teste.
‫E assim fazer isso.
‫Podemos fazer isso porque nossos dados estão em um quadro de dados, doenças cardíacas, devemos apenas ser capazes de fazer isso usando
‫a boa e velha matemática e a indexação.
‫Vamos ver como diríamos do Ascalon, vamos importar nosso modelo primeiro, embora já tenhamos instanciado um classificador
‫de floresta aleatório.
‫Vamos.
‫Vá para a semente aleatória do MPLX e então embaralharemos os dados.
‫Por que estamos embaralhando os dados aqui se estamos dividindo em validação de trem e teste onde queremos misturá-los, certifique-se de
‫que não seja apenas o mesmo, os registros estão chegando para que entrem.
‫Se estivermos usando o slice para criar nossa validação de trem e testar o que queremos, ter certeza de que todos
‫esses registros estão misturados.
‫Então é isso que faremos.
‫Podemos embaralhá-lo usando a função de amostra do pandas ou difratar a função de águias para 100 por cento dos dados.
‫Isso vai apenas pegar a amostra de doenças cardíacas de forma aleatória e, em seguida, reatribuir o quadro
‫de dados de doenças cardíacas à sua variável normal.
‫Portanto, ele pegará nesta amostra um punhado de linhas aleatoriamente e, em seguida, reatribuirá a esta variável, a. k. uma.
‫embaralhar os dados.
‫Agora, agora, os dados estão sendo embaralhados, serão divididos em X e Y.
‫Na verdade, podemos salvar isso para doenças cardíacas.
‫Embaralhado como uma ideia melhor.
‫X é igual a desta vez, precisamos embaralhar as doenças cardíacas e, em seguida, deixaremos a coluna de destino aqui.
‫Este vídeo está avançando um pouco, mas é um conceito importante, certo?
‫Vamos ver aqui.
‫Tudo valerá a pena porque poderemos aprimorar nossos modelos usando sintonia de alto desempenho,
‫dividir a validação de dados e os conjuntos de teste.
‫Maravilhoso.
‫Então, o trem partiu, como vamos fazer isso?
‫Bem, precisamos criar um número que possamos usar para fatiar.
‫Portanto, queremos 70% do comprimento de nossos dados.
‫Então você vê o que está acontecendo aqui.
‫Experimente e divida quando precisar de um número.
‫Precisamos de 70 por cento.
‫Portanto, zero vírgula sete vezes a duração da doença cardíaca embaralhada.
‫E isso vai ser 70 por cento dos dados e, em seguida, precisamos de uma divisão válida.
‫Qual vai ser, você se lembra?
‫Você se lembra qual é a divisão, 15 por cento?
‫Isso é o que combinamos.
‫Maravilhoso.
‫Portanto, podemos fazer isso da mesma forma que faremos a divisão do trem porque queremos indexar.
‫Queremos os próximos 15%.
‫Portanto, tente dividir mais zero vírgula cinco um cinco.
‫A duração da nossa doença cardíaca mudou.
‫Quadro de dados, isto é 15 por cento dos dados, ótimo, e então o trem X do trem Y vai ser os dados X.
‫Até a divisão do trem.
‫E por que os dados até os trens seriam maravilhosos e então são válidos, por que válidos?
‫Desculpe, serão os dados da divisão do trem.
‫Para a divisão válida e a mesma coisa por que serão os dados do porquê da divisão do trem.
‫Para a divisão válida.
‫E então teremos o X teste será e por que o teste será os dados X da divisão válida
‫em diante.
‫Então, o resto dos dados e o motivo da divisão válida em diante, quem foi perdido até agora, vamos ver o que está
‫acontecendo.
‫Certo, vamos lá.
‫Len imprimiu o trem X e então queremos Lenn X válido.
‫E então queremos o teste de Glenn X.
‫OK.
‫Portanto, esse centro de treinamento tem 70 por cento dos dados, a. k. uma. 212 rose, o conjunto de
‫validação tem 46 rose, 15 por cento dos dados e o conjunto de teste tem 46 rose.
‫Portanto, são 15 por cento dos dados.
‫Existem diferentes quantidades aqui, mesmo que sejam de 15 por cento, porque usamos Rand.
‫Temos um número ímpar de amostras no conjunto de dados de doenças cardíacas.
‫Portanto, haverá um transbordamento de um em algum lugar que está perfeitamente bem.
‫Ok, agora temos nossas divisões.
‫Podemos fazer o CLF instanciar um classificador de floresta aleatório.
‫E agora, como não passamos nada aqui, isso irá instanciá-lo com os parâmetros da linha de base.
‫Portanto, se fizermos isso, CLF não obterá Perens.
‫Oh, isso não é um atributo, é uma função, portanto, sem passar nada para ouvir nosso primeiro classificador aleatório e instanciar o classificador de forma aleatória com os
‫parâmetros de linha de base, a. k. uma. isto.
‫E é isso que queremos, porque queremos fazer algumas previsões básicas.
‫Então, vamos ao topo do precipício, vamos ajustar os dados de treinamento como de costume e, em seguida, vamos
‫fazer previsões.
‫Então, por que desfiles é igual a Cele depois de prever?
‫Não, vamos prever os dados de validação porque voltamos aqui.
‫Queremos ajustar nosso modelo na divisão de validação.
‫Então é nisso que estamos baseando nossa métrica, primeiro criaremos uma métrica de linha de base, que é executando nossa função
‫de avaliação na divisão de validação, então ajustaremos os hiperparâmetros e tentaremos nosso modelo novamente na divisão de
‫validação e ver como eles se comparam.
‫Então, vamos seguir em frente e fazer previsões, vamos chamar essas previsões de linha de base e, em seguida,
‫avaliaremos o classificador no conjunto de validação.
‫Portanto, obtivemos as métricas básicas e é aqui que nossa função de avaliação será útil.
‫Metrics Eagles avaliam os vermelhos e válidos.
‫Então, eu vejo como postamos o porquê do conjunto de validação e por que as taxas.
‫E então queremos ir para as métricas básicas.
‫Bem, o que temos, referência de precisão de variável local antes, oh, isso é o que perdemos.
‫Isso precisa ser uma pontuação de precisão novamente.
‫Isso é terrível.
‫Agora, o que está acontecendo aqui no mesmo ponto para dois?
‫Fizemos isso corretamente?
‫Oh, lá vamos nós.
‫É por isso que usamos nosso C original que era assim.
‫Precisamos usar a ordem aleatória de doenças cardíacas porque, do contrário, nosso modelo estava prevendo os rótulos originais em vez
‫de agora embaralhar os rótulos.
‫Então foi isso que perdemos.
‫Eles têm um cara que está recebendo este aviso aqui de que o valor de uma estimativa mudará
‫de 10 inversão, zero vírgula dois a cem e ponto a dois.
‫Portanto, esta é a nossa métrica de linha de base.
‫Agora, o que fizemos foi criar uma validação de trem e uma divisão de teste.
‫Instanciamos e modelamos apenas se o tivéssemos feito antes nos dados de treinamento aqui.
‫E então avaliamos os parâmetros da linha de base, o tipo de parâmetro da linha de base no conjunto de
‫validação e obtivemos essas métricas.
‫Então, se tentássemos melhorar nossos resultados, se tentássemos ajustar nossos modelos, hiperparâmetros.
‫Esses aqui em nossa floresta aleatória à mão, porque é isso que esta seção é, parâmetros de ajuste à
‫mão.
‫Como faríamos isso?
‫Vamos tomar este aviso como um exemplo de alteração de um hiperparâmetro.
‫Vamos mudar de novo.
‫Se você estiver usando psicodelia e apontar para o tour acima, não receberá este aviso.
‫Mas já que estamos, estamos recebendo este aviso, vamos tentar e ajustar.
‫Nossos parâmetros híbridos mudarão.
‫Uma estimativa é qual é essa aqui?
‫Iremos alterá-lo da linha de base de 10 para 100 e ver se
‫obtemos uma pontuação diferente no conjunto de validação, ótima semente aleatória, semente aleatória 40 para o que vamos fazer é criar um
‫segundo classificador com diferentes tipos de parâmetros porque lembre-se.
‫Instanciar nosso disparo aleatório de primeira classe aqui, sem passar nada, instancia o classificador com os hiperparâmetros
‫de linha de base que ele vem pronto para uso.
‫É como usar as configurações predefinidas do Arvind quando ele sai da caixa para cozinhar seu prato favorito.
‫Essas escolas não estão realmente nos ajudando aqui.
‫Queremos que um modelo melhor crie CLF também, e vamos ajustar os hiperparâmetros como você
‫ajustaria seu forno para tentar melhorar aquele delicioso prato favorito de frango assado que você está fazendo.
‫Talvez você esteja se preparando para um grande evento para o qual você ou seus amigos irão e você prometeu a eles
‫um ótimo prato.
‫Então você está tentando aperfeiçoá-lo.
‫É isso que estamos fazendo com nosso modelo de aprendizado de máquina.
‫Então, novamente, a mesma coisa, os mesmos dados ajustados aos dados de treinamento.
‫Mas desta vez temos CLF dois, que usa uma estimativa de 100 em vez de 10.
‫E agora, novamente, podemos tentar configurações diferentes para todos esses recursos aqui, aqueles
‫que vamos tentar e ajustar, mas podemos começar com apenas um, ver um exemplo dele, e então iremos
‫fazer previsões.
‫Então, por que desfilar também, porque estamos usando nós mesmos para ajudar a prever.
‫É válido.
‫Estamos fazendo a mesma coisa aqui, as previsões de linha de base estão no conjunto de
‫validação e agora fazemos previsões com parâmetros diferentes.
‫No mesmo dia, há um modelo diferente, mesmos dados, e agora vamos avaliar o segundo
‫classificador.
‫Ela deixou duas métricas, Eagles, já estamos usando nossa função de avaliação novamente, a que criamos
‫antes, e estamos salvando algumas linhas de código apenas puxando-a assim.
‫Tudo bem.
‫Agora vamos dar uma olhada.
‫Ah, OK, então agora se compararmos usando os hiperparâmetros de linha de base com os quais nosso modelo veio, o que podemos dizer que
‫é diferente aqui?
‫Tudo o que mudamos é uma estimativa igual a 100, então ajustamos um dial em nosso modelo.
‫Assim como ajustar um botão em seu forno, podemos ver um ligeiro aumento na precisão dos mesmos dados.
‫Portanto, o CAFTA tem uma precisão um pouco maior.
‫Vai com maior precisão.
‫Mas um recall inferior e na mesma escola F uma.
‫Hmm, OK, isso está nos dando uma pequena ideia de que talvez se continuássemos com parâmetros altos
‫diferentes, continuamos tentando ajustá-los.
‫Com a mão, poderíamos, com sorte, continuar melhorando essas métricas.
‫Então, o que você acha que faríamos a seguir se subirmos aqui?
‫Talvez tenhamos tentado alterar a profundidade máxima.
‫Qual é a profundidade máxima padrão?
‫Nós o encontramos aqui, Max.
‫A profundidade não é nenhuma.
‫Então, talvez devêssemos olhar a documentação e ir para as diferentes variáveis que o comprimento máximo pode ter para que
‫possa receber inteiros ou nenhum.
‫O padrão é nenhum.
‫A profundidade máxima da árvore e fazendo nossa pesquisa, lendo a documentação, vemos alguns valores diferentes para
‫a profundidade máxima.
‫Então, voltaríamos ao nosso modelo aqui e talvez criaríamos um classificador de floresta aleatório auto-três igual a.
‫Desta vez, manteremos uma estimativa como igual a cem e, em seguida, alteraremos a profundidade máxima de nove para
‫igual a 10.
‫Bem, eu não inventei esse número, fiz algumas pesquisas, li a documentação e descobri idéias diferentes
‫para profundidade máxima e, então, podemos fazer a mesma coisa que fizemos aqui.
‫Avalie nosso terceiro classificador, como você deve ter adivinhado, como você deve ter pensado,
‫se estivermos examinando e ajustando tudo isso manualmente, ajustando todos os botões manualmente, isso vai dar um
‫pouco de trabalho.
‫Direito.
‫Então, assim como aperfeiçoar seu prato na vida real, como se você estivesse fazendo um prato de frango favorito, todo mundo vindo
‫para jantar, você está tentando ajustar as configurações do seu forno.
‫Você pode ter que passar por um pouco de tentativa e erro.
‫Direito.
‫Você pode cozinhá-lo uma vez e depois não fica tão bom.
‫E então, pela décima vez, você começa a ficar realmente bom.
‫Mas isso pode demorar muito mais com o que estamos tentando fazer aqui.
‫Escrever código, se tivermos todas essas configurações diferentes aqui, tentando alterá-las, tentando encontrar as
‫melhores configurações que podem levar muito mais tempo do que temos.
‫E a regra está em código, não se repita.
‫Então você deve ter adivinhado.
‫Portanto, não posso aprender de uma maneira, de um método embutido que pode fazer isso por nós.
‫Experimente várias configurações diferentes para nós.
‫E essa é a pesquisa aleatória c. v.
‫Vamos dar uma olhada nisso no próximo vídeo.
‫Este já está ficando muito longo.
‫Mas a principal lição aqui é que, quando estamos ajustando um tipo de parâmetro de modelo, você pode pensar no
‫conjunto de treinamento como os materiais do curso, onde você está aprendendo os dados básicos.
‫Esse é o conjunto de treinamento.
‫E então, no exame simulado, você está refinando o que sabe.
‫Então você já aprendeu todos os padrões básicos como nosso modelo.
‫E então, com a validação definida, estamos ajustando a configuração.
‫Portanto, estamos refinando o que o modelo sabe, como ele aprende coisas diferentes antes de nos testarmos
‫no exame final.
‫Assim.
‫Ok, antes de avaliarmos nosso modelo no conjunto de teste.
‫Agora, não se preocupe, se você estiver se sentindo um pouco sobrecarregado, volte ao código
‫que escrevemos e verifique-o.
‫Você pode tentar ajustar alguns parâmetros diferentes sozinho, mas não se preocupe.
‫Vamos ver no próximo vídeo como podemos usar um módulo no Saikat, aprender a experimentar diferentes tipos de
‫parâmetros para nós.