Aprendizado de máquina e redes neurais - página 73

 

11.4 Testes Estatísticos para Comparação de Algoritmos (Avaliação do Modelo L11. Parte 4)


11.4 Testes Estatísticos para Comparação de Algoritmos (Avaliação do Modelo L11. Parte 4)

Nos vídeos anteriores, discutimos como a inferência estatística pode ser usada para comparar diferentes modelos que já foram ajustados a um determinado conjunto de dados. Agora, vamos explorar testes estatísticos que nos permitem comparar algoritmos. Isso significa que podemos comparar modelos que foram ajustados com diferentes conjuntos de treinamento ou subconjuntos de treinamento. Esta discussão enfoca a aplicação de inferência estatística e vários testes estatísticos para comparação de algoritmos.

Existem vários testes estatísticos disponíveis para comparar algoritmos, cada um com seus prós e contras. Nas notas de aula, você pode encontrar uma explicação mais detalhada desses testes, juntamente com materiais adicionais. Aqui, fornecerei uma visão geral dos testes e destacarei alguns pontos-chave.

Um teste comum é o teste de McNemar, que é usado principalmente para comparar modelos em vez de algoritmos. Vale a pena mencionar porque tem uma baixa taxa de falsos positivos e é computacionalmente eficiente. No entanto, ele não foi projetado especificamente para comparação de algoritmos.

Outro teste é o teste de diferença de proporções, que infelizmente tem uma alta taxa de falsos positivos. Este teste requer o ajuste de vários modelos, tornando-o mais adequado para comparação de algoritmos. No entanto, pode ser computacionalmente caro devido à necessidade de vários ajustes de modelo.

O teste t de validação cruzada K-fold é outro método usado para comparação de algoritmos. Ele fornece uma avaliação mais precisa, mas ainda tem uma taxa de falsos positivos ligeiramente elevada. Apesar desta desvantagem, continua a ser um teste útil.

O teste t pareado com validação cruzada repetida é outra abordagem que requer o ajuste de vários modelos. Embora tenha uma taxa de falsos positivos menor do que alguns outros testes, ainda pode ser computacionalmente intensivo devido ao ajuste repetido do modelo.

Uma técnica mais avançada é o teste t pareado de validação cruzada 5x2, que exibe uma baixa taxa de falsos positivos e um poder estatístico ligeiramente maior em comparação com o teste de McNemar. Ele oferece uma abordagem mais robusta para a comparação de algoritmos. Além disso, existem abordagens mais recentes, como o teste f pareado de validação cruzada 5x2, que fornecem melhorias adicionais.

Nas notas de aula, me aprofundo em mais detalhes sobre esses testes e outras abordagens estatísticas. Além disso, implementei a maioria desses testes no MLA extend, uma biblioteca que acompanha os materiais das aulas. Você pode encontrar implementações do teste de McNemar, teste Q de Cochrane, teste t pareado com reamostragem (não recomendado), teste t pareado com validação cruzada K-fold, teste t combinado com validação cruzada 5x2 e muito mais.

Embora os testes estatísticos ofereçam informações valiosas, também existem abordagens computacionais ou empíricas para a comparação de algoritmos. No próximo vídeo, exploraremos a motivação por trás da seleção e comparação de algoritmos em aplicativos do mundo real. Por exemplo, podemos querer comparar diferentes algoritmos para identificar o melhor desempenho em cenários como o desenvolvimento de um aplicativo de e-mail ou a criação de um sistema de recomendação para artigos de pesquisa.

Em conclusão, existem vários testes estatísticos disponíveis para comparar algoritmos, cada um com seus pontos fortes e limitações. Esses testes podem fornecer informações sobre as diferenças de desempenho entre algoritmos ajustados com diferentes conjuntos de treinamento. No entanto, é importante considerar a eficiência computacional, as taxas de falsos positivos e o poder estatístico ao selecionar um teste apropriado. Além disso, abordagens empíricas podem complementar testes estatísticos na comparação de algoritmos.

11.4 Statistical Tests for Algorithm Comparison (L11 Model Eval. Part 4)
11.4 Statistical Tests for Algorithm Comparison (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video gives a brief overview of different statistical tests that exist for model and algorithm comparisons.More details in my article "Model Evaluation,...
 

11.5 CV aninhado para seleção de algoritmo (avaliação do modelo L11, parte 4)


11.5 CV aninhado para seleção de algoritmo (avaliação do modelo L11, parte 4)

Tudo bem, vamos mergulhar no tópico de seleção de algoritmo computacional. Nesta discussão, vamos nos concentrar em uma técnica chamada validação cruzada aninhada e explorar alguns exemplos de código no próximo vídeo. Antes de nos aprofundarmos na validação cruzada aninhada, vamos recapitular rapidamente alguns pontos-chave que abordamos anteriormente.

Anteriormente, discutimos o método de validação de três vias como um meio de seleção de modelo. Aqui está um breve resumo do processo: começamos dividindo nosso conjunto de dados original em um conjunto de treinamento e um conjunto de teste. Em seguida, dividimos ainda mais o conjunto de treinamento em um conjunto de treinamento menor e um conjunto de validação. O conjunto de treinamento é usado, juntamente com um algoritmo de aprendizado de máquina e valores de hiperparâmetros específicos, para treinar um modelo. Ao iterar por várias configurações de hiperparâmetros, obtemos vários modelos com seus respectivos desempenhos. Por fim, selecionamos o modelo com o maior desempenho, conforme medido no conjunto de validação, e avaliamos seu desempenho final no conjunto de teste. É importante incluir um conjunto de teste independente para atenuar qualquer viés de seleção introduzido durante a seleção do modelo.

Agora, vamos revisitar o conceito usando uma figura diferente para auxiliar nosso entendimento. Neste diagrama, podemos visualizar três cenários. No primeiro cenário, avaliamos um único modelo que é treinado no conjunto de treinamento e testado no conjunto de teste sem nenhum ajuste de modelo. Essa abordagem é adequada quando nenhum ajuste de modelo é necessário.

No segundo cenário, avaliamos vários modelos nos mesmos conjuntos de treinamento e teste. Cada modelo é treinado com diferentes configurações de hiperparâmetros e selecionamos o de melhor desempenho com base no desempenho do conjunto de teste. No entanto, usar o conjunto de teste várias vezes para seleção de modelo pode introduzir viés de seleção, tornando essa abordagem menos desejável.

O terceiro cenário corresponde ao método de validação de três vias que discutimos anteriormente. Vários modelos são treinados no conjunto de treinamento com diferentes configurações de hiperparâmetros. O conjunto de validação é então usado para selecionar o modelo de melhor desempenho, que é posteriormente avaliado no conjunto de teste. Essa abordagem ajuda a atenuar o viés de seleção usando um conjunto de validação separado para a classificação do modelo.

Embora o método de validação de três vias seja eficaz, uma abordagem melhor é a validação cruzada k-fold, que abordamos em nossa discussão anterior. Este método divide os dados em k dobras, com cada dobra se revezando como o conjunto de validação enquanto o restante serve como o conjunto de treinamento. Essa abordagem é particularmente benéfica quando o conjunto de dados é limitado em tamanho. Para conjuntos de dados maiores, a validação de três vias ainda pode ser uma opção viável, especialmente em aprendizado profundo, onde os tamanhos dos conjuntos de dados são geralmente maiores e considerações adicionais, como a convergência do modelo, entram em jogo.

Agora, vamos avançar e discutir a validação cruzada aninhada, que nos leva um passo adiante comparando diferentes algoritmos. Suponha que queremos comparar algoritmos como K vizinhos mais próximos, árvores de decisão, aumento de gradiente e florestas aleatórias. Cada algoritmo passará por ajuste de hiperparâmetros para selecionar o melhor modelo. Introduzimos outro loop no procedimento de validação cruzada, resultando em validação cruzada aninhada. O loop externo é responsável pela avaliação do modelo, enquanto o loop interno se concentra no ajuste de hiperparâmetros. Este procedimento de duas etapas torna a validação cruzada aninhada mais complexa do que a validação cruzada k-fold regular, pois compreende essencialmente duas validações cruzadas k-fold aninhadas.

Para entender melhor esse processo, vamos percorrer uma ilustração começando com nosso conjunto de dados original. Imagine que temos um conjunto de teste independente para avaliação final, mas, por enquanto, nosso conjunto de treinamento principal será suficiente. Semelhante à validação cruzada k-fold, iteramos através de um loop para um número especificado de dobras, digamos cinco neste caso. Em cada iteração, os dados são divididos em dobras de treinamento e uma dobra de teste. No entanto, em vez de treinar o modelo apenas na dobra de treinamento e avaliá-lo na dobra de teste, passamos para a próxima etapa.

Na próxima etapa, pegamos uma das dobras de treinamento, como a da parte inferior do diagrama, e a dividimos em um conjunto de treinamento menor e um conjunto de validação. O conjunto de treinamento menor é usado para treinar diferentes modelos com várias configurações de hiperparâmetros, enquanto o conjunto de validação é usado para selecionar o modelo de melhor desempenho.

Depois que o loop interno é concluído para a dobra de treinamento atual, temos um modelo selecionado com suas configurações de hiperparâmetros correspondentes. Em seguida, avaliamos esse modelo na dobra de teste do loop externo, que não foi usada durante o loop interno.

O processo continua para cada dobra no loop externo. A cada vez, uma dobra diferente é realizada como dobra de teste, enquanto as dobras restantes são usadas para treinamento e validação. Isso garante que cada dobra seja usada como um conjunto de teste e um conjunto de validação e que cada modelo seja avaliado em um conjunto de dados diferente. O desempenho final do modelo é determinado pela média do desempenho em todas as dobras.

A validação cruzada aninhada nos ajuda a comparar diferentes algoritmos, fornecendo uma estimativa mais robusta de seu desempenho. Repetindo o processo de validação cruzada aninhada várias vezes, podemos obter estimativas de desempenho mais confiáveis e estáveis.

Para resumir, a validação cruzada aninhada é uma técnica que combina os benefícios da seleção de modelo e do ajuste de hiperparâmetros. Ele nos permite comparar diferentes algoritmos avaliando seu desempenho em várias dobras de dados e selecionando o melhor modelo com base em iterações aninhadas de validação cruzada. Essa abordagem ajuda a atenuar o viés de seleção e fornece uma estimativa mais precisa do desempenho do algoritmo.

No próximo vídeo, exploraremos exemplos de código para demonstrar como a validação cruzada aninhada é implementada na prática. Fique ligado na próxima parte desta série.

11.5 Nested CV for Algorithm Selection (L11 Model Eval. Part 4)
11.5 Nested CV for Algorithm Selection (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
This video introduces the main concept behind nested cross-validation for algorithm selection.More details in my article "Model Evaluation, Model Selection, ...
 

11.6 CV aninhado para exemplo de código de seleção de algoritmo (avaliação do modelo L11, parte 4)


11.6 CV aninhado para exemplo de código de seleção de algoritmo (avaliação do modelo L11, parte 4)

Tudo bem, agora que discutimos o conceito por trás da validação cruzada aninhada, vamos nos aprofundar em um exemplo de código. Este exemplo ajudará você a entender melhor a validação cruzada aninhada de uma perspectiva computacional. Além disso, será útil para seus projetos de classe ao comparar algoritmos.

Em primeiro lugar, os exemplos de código podem ser encontrados no GitHub. Eu os carreguei em nosso repositório de classe regular sob o nome "l11_code". Há três notebooks disponíveis: "verbose_one", "verbose_two" e "compact". Todos os três notebooks produzem os mesmos resultados, mas diferem em sua abordagem de implementação.

No caderno "verbose_one", adotei uma abordagem mais manual usando o método k-fold estratificado manualmente. Por outro lado, no notebook "verbose_two", utilizei a função cross_validate. Finalmente, no notebook "compacto", usei cross_val_score. Cada notebook fornece diferentes níveis de informação quando analisados. Por enquanto, recomendo começar com o notebook "verbose_one", pois você já está familiarizado com o objeto k-fold estratificado.

Antes de prosseguirmos, vale a pena mencionar que a abordagem de implementação escolhida não afeta significativamente os resultados. No entanto, eu não recomendaria usar o notebook "compacto", pois fornece menos informações sobre os conjuntos de hiperparâmetros. Mais tarde, posso mostrar brevemente como ficam os conjuntos de hiperparâmetros depois de discutirmos o conteúdo a seguir.

Agora, vamos examinar o notebook "verbose_one", que demonstra a abordagem manual para validação cruzada aninhada. Neste notebook, você encontrará uma ilustração da validação cruzada aninhada e como ela funciona. O processo envolve um loop externo que executa os loops internos. Para cada loop externo, a dobra é dividida em porções de treinamento e teste. A parte de treinamento é então passada para o loop interno, que executa o ajuste de hiperparâmetros ou seleção de modelo. Isso pode ser feito usando a pesquisa em grade, como aprendemos na aula anterior.

No notebook, você encontrará as etapas de configuração necessárias, como a importação de bibliotecas e módulos necessários. Isso inclui pesquisa de grade para ajuste de modelo no loop interno, divisão do conjunto de dados usando validação cruzada estratificada k-fold, pipeline, escalares padrão e classificadores que queremos comparar. Para os fins deste exemplo, estamos usando uma versão menor do conjunto de dados "emnes", que consiste em 5.000 exemplos de treinamento para manter a viabilidade computacional intacta. Além disso, 20% do conjunto de dados é reservado como dados de teste, permitindo comparar o desempenho da validação cruzada aninhada com o desempenho do conjunto de teste.

Seguindo em frente, inicializamos os classificadores que usaremos. O primeiro classificador é um classificador de regressão logística, especificamente um classificador de regressão logística multinomial. Esse classificador também é conhecido como regressão softmax em aprendizado profundo. Embora não o tenhamos abordado nesta aula, iremos abordá-lo em "Estatísticas 453". A razão por trás do uso desse classificador é ter uma gama mais ampla de algoritmos para comparar. Além disso, é relativamente rápido em comparação com outros algoritmos. Outro classificador relativamente rápido que consideramos é a máquina de vetores de suporte, especificamente a linear. Ao incluir esses classificadores, pretendemos comparar várias configurações de hiperparâmetros.

É importante observar que os classificadores baseados em árvore de decisão, como a própria árvore de decisão e o classificador de floresta aleatória, não requerem escalonamento de parâmetros. Portanto, apenas realizamos o escalonamento para os outros classificadores. Para facilitar isso, usamos pipelines, que combinam o scaler padrão com o respectivo classificador. Assim, o pipeline pode ser visto como o próprio classificador. Para cada classificador, definimos uma grade de hiperparâmetros que iremos pesquisar. Essas grades contêm os parâmetros que queremos ajustar para cada classificador. Por exemplo, na regressão logística, consideramos a penalidade de peso de regularização e diferentes forças de regularização. Vizinhos mais próximos envolvem considerar o número de vizinhos mais próximos e a distância.

No notebook "verbose_one", após definir os classificadores e suas respectivas grades de hiperparâmetros, passamos a configurar os loops externo e interno para validação cruzada aninhada.

O loop externo usa validação cruzada estratificada k-fold para dividir o conjunto de dados em conjuntos de treinamento e teste. Ele itera sobre as dobras e acompanha o índice de dobra, os índices de treinamento e os índices de teste. Para cada dobra, os dados de treinamento são divididos em conjuntos de treinamento e validação para o loop interno.

O loop interno executa a seleção de modelo ou o ajuste de hiperparâmetro usando pesquisa de grade. Ele itera sobre a grade de hiperparâmetros para cada classificador e usa os conjuntos de treinamento e validação do loop externo para encontrar os melhores hiperparâmetros para cada combinação. A pesquisa de grade pesquisa exaustivamente a grade de hiperparâmetros especificada e avalia o desempenho de cada combinação usando validação cruzada.

Após a conclusão do loop interno, os melhores hiperparâmetros para cada classificador são registrados. Em seguida, o desempenho dos modelos selecionados é avaliado no conjunto de teste, que foi deixado de lado no início. As métricas de avaliação, como exatidão, precisão, recall e pontuação F1, são calculadas para cada classificador.

Por fim, os resultados da validação cruzada aninhada e da avaliação do conjunto de testes são exibidos, permitindo comparar o desempenho de diferentes classificadores e suas configurações de hiperparâmetros.

É importante observar que os notebooks "verbose_two" e "compact" fornecem implementações alternativas de validação cruzada aninhada usando a função cross_validate e a função cross_val_score, respectivamente. Essas funções lidam com algumas das etapas de validação cruzada automaticamente, simplificando o código. No entanto, eles podem fornecer informações menos detalhadas em comparação com o notebook "verbose_one".

Espero que esta visão geral ajude você a entender os exemplos de código e como a validação cruzada aninhada é implementada. Sinta-se à vontade para explorar os notebooks e experimentar diferentes conjuntos de dados e classificadores para entender melhor o conceito.

11.6 Nested CV for Algorithm Selection Code Example (L11 Model Eval. Part 4)
11.6 Nested CV for Algorithm Selection Code Example (L11 Model Eval. Part 4)
  • 2020.11.24
  • www.youtube.com
Picking up where the previous video left off, this video goes over nested cross-validation by looking at a scikit-learn code example.More details in my artic...
 

12.0 Visão Geral da Palestra (Avaliação do Modelo L12 5: Métricas de Desempenho)


12.0 Visão Geral da Palestra (Avaliação do Modelo L12 5: Métricas de Desempenho)

Olá pessoal,

Espero que todos tenham tido um feriado maravilhoso no Dia de Ação de Graças e que tenham conseguido relaxar e recarregar as energias antes das últimas semanas do semestre. Embora seja lamentável que o semestre esteja chegando ao fim, ainda há muito o que esperar, principalmente as apresentações de seus projetos. Estou animado para ver o que você construiu com base no conteúdo que abordamos nesta aula e testemunhar a criatividade e a aplicação de seu conhecimento de aprendizado de máquina.

Nas próximas duas semanas, tenho alguns planos para nosso tempo restante juntos. Nesta semana, abordarei a avaliação do modelo e focarei em cinco métricas de desempenho e avaliação. O objetivo é ampliar sua perspectiva além da precisão e dos erros de classificação. Exploraremos várias métricas que podem ajudar a avaliar os modelos de aprendizado de máquina de maneira eficaz. Não prevejo que esse tópico ocupe muito tempo, portanto, se tivermos mais tempo, também abordarei a seleção de recursos. Compartilhei algum material de autoestudo sobre esse tópico anteriormente, pois sabia que talvez não tivéssemos tempo para cobri-lo extensivamente. Quero estar atento aos desafios impostos pelo aprendizado on-line e não sobrecarregá-lo com muitos tópicos em um curto período. Entendo que todos vocês têm muito a fazer, incluindo o dever de casa 3, que será entregue em 4 de dezembro, e as apresentações de seus projetos em formato de vídeo em 6 de dezembro.

Em relação às apresentações do projeto, na próxima semana, criarei páginas do Canvas onde você poderá incorporar suas apresentações. Além disso, criarei um questionário em formato de votação para a premiação do projeto, incluindo o projeto mais criativo, a melhor apresentação oral e a melhor visualização. Esses prêmios serão determinados por seus votos. Acredito que isso adicionará um elemento divertido ao processo. Vou organizar tudo para a próxima semana, o que significa que não haverá palestras. No entanto, recomendo fortemente que todos assistam às apresentações do projeto. Haverá pontos concedidos pelo preenchimento de pesquisas relacionadas às apresentações. Também é justo assistir às apresentações uns dos outros, já que todos vocês se esforçam bastante. Podemos conversar e tirar dúvidas no Piazza ou explorar outras plataformas que permitem a interação. Vou considerar a melhor maneira de facilitar esse envolvimento.

Antes de mergulharmos na palestra de hoje, quero lembrá-lo sobre as avaliações do curso. Nosso departamento solicitou que você fornecesse feedback sobre como foi o semestre para você. Este ano foi diferente devido ao formato online, então seus insights seriam valiosos. Vou postar os links das avaliações do curso no Canvas. Ficaria muito grato se você pudesse reservar um tempo para preenchê-los. No entanto, quero enfatizar que não há penalidade se você optar por não completá-los. É apenas um pedido para coletar seu feedback.

Dito isso, vamos começar com a Aula 5 sobre desempenho e métricas de avaliação. Percorremos um longo caminho na avaliação de modelos, começando com decomposições de viés-variância para entender o overfitting e o underfitting. Exploramos o método holdout para a divisão do conjunto de dados e suas armadilhas, construindo intervalos de confiança usando o método de aproximação normal, técnicas de reamostragem como holdout repetido e bootstrapping e validação cruzada para seleção de modelo. Na semana passada, discutimos testes estatísticos para comparações de modelos e algoritmos, incluindo validação cruzada aninhada. Hoje, nosso foco será nas métricas de avaliação.

Começaremos discutindo a matriz de confusão, que difere da matriz de confusão de McNemar abordada na semana passada. A partir da matriz de confusão, podemos derivar métricas como taxa de falsos positivos, taxa de verdadeiros positivos e outras, que serão úteis quando nos aprofundarmos na característica operacional do receptor. Além disso, exploraremos precisão, recall, pontuação F1, coeficiente de correlação de Matthews e precisão balanceada. O último é particularmente útil nos casos em que existem desequilíbrios de classe no conjunto de dados. No final, abordaremos a extensão de métricas binárias para configurações multiclasse, com exceção da precisão balanceada, que já é compatível com a classificação multiclasse.

No próximo vídeo, começaremos nossa discussão com a matriz de confusão.

12.0 Lecture Overview (L12 Model Eval 5: Performance Metrics)
12.0 Lecture Overview (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This first video in L12 gives an overview of what's going to be covered in L12.-------This video is part of my Introduction of Machine Learning course.Next v...
 

12.1 Matriz de Confusão (Modelo L12 Avaliação 5: Métricas de Desempenho)



12.1 Matriz de Confusão (Modelo L12 Avaliação 5: Métricas de Desempenho)

Vamos começar discutindo a matriz de confusão e seu significado. Na palestra, o palestrante mencionou que não preparou notas de aula devido a vários motivos, como o final de semestre agitado e por ter abordado o tópico em um livro de aprendizado de máquina Python. Eles sugeriram consultar o capítulo 6 do livro para obter mais detalhes.

A matriz de confusão é uma ferramenta usada para avaliar o desempenho de um classificador de aprendizado de máquina. Ele mostra a comparação entre os rótulos de classe previstos e os rótulos de classe reais em um problema de classificação supervisionado. A matriz nos ajuda a entender o desempenho do classificador e quais rótulos de classe ele tende a confundir.

A matriz de confusão é normalmente representada no formato dois por dois, também conhecida como matriz de contingência. Consiste em quatro componentes: verdadeiros positivos (TP), falsos negativos (FN), falsos positivos (FP) e verdadeiros negativos (TN). A classe "positiva" refere-se à classe de interesse que queremos prever, enquanto a classe "negativa" refere-se à outra classe.

Os verdadeiros positivos (TP) são as instâncias que pertencem à classe positiva e são corretamente identificadas como tal pelo classificador. Por outro lado, falsos negativos (FN) são instâncias da classe positiva que são incorretamente previstas como negativas.

Da mesma forma, falsos positivos (FP) são instâncias da classe negativa que são incorretamente previstas como positivas. Por fim, verdadeiros negativos (TN) são instâncias da classe negativa que são corretamente identificadas como negativas.

Ao analisar esses componentes, podemos calcular várias métricas de desempenho. A palestra mencionou duas métricas comuns: precisão de classificação e erro de classificação. A precisão da classificação é calculada dividindo a soma dos verdadeiros positivos e verdadeiros negativos pelo número total de previsões. Por outro lado, o erro de classificação é calculado como um menos a precisão.

O palestrante então apresentou o conjunto de dados de câncer de mama de Wisconsin, que contém informações sobre diagnósticos de câncer de mama. Eles explicaram que o conjunto de dados possui várias colunas, incluindo um número de identificação para cada paciente e recursos extraídos de imagens digitalizadas de núcleos de células cancerígenas.

Para preparar o conjunto de dados para classificação, o palestrante usou um codificador de rótulos do scikit-learn para transformar os rótulos de classes de strings (malignos e benignos) em rótulos inteiros (0 e 1). Eles dividem o conjunto de dados em um conjunto de treinamento (80%) e um conjunto de teste (20%).

Em seguida, o palestrante demonstrou como plotar uma matriz de confusão usando um classificador de k vizinhos mais próximos. Eles enfatizaram a importância do dimensionamento de recursos para classificadores KNN e mencionaram o uso de um escalar padrão e pipeline para pré-processamento.

Para visualizar a matriz de confusão, o palestrante usou a função confusion_matrix da biblioteca mlxtend. A matriz de confusão resultante foi exibida usando matplotlib, com os verdadeiros positivos no canto inferior direito e os verdadeiros negativos no canto superior esquerdo.

Além disso, o palestrante mencionou alguns parâmetros opcionais da função confusion_matrix, como show_absolute e show_normed. Esses parâmetros permitem customizar a visualização, inclusive mostrando os números absolutos ou os valores normalizados.

Por fim, o palestrante discutiu métricas derivadas da matriz de confusão, como taxa de verdadeiros positivos, taxa de falsos positivos, taxa de falsos negativos e taxa de verdadeiros negativos. Essas métricas são importantes para avaliar o desempenho do classificador e serão mais exploradas em relação à curva ROC (Receiver Operator Characteristic) em discussões subsequentes.

No geral, a matriz de confusão fornece informações valiosas sobre o desempenho de um classificador, permitindo avaliar sua capacidade de prever corretamente os rótulos de classe.

12.1 Confusion Matrix (L12 Model Eval 5: Performance Metrics)
12.1 Confusion Matrix (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video goes over the concept of a confusion matrix and how it relates to the true positive and false positives rates, among others.-------This video is p...
 

12.2 Precisão, Recall e Pontuação F1 (Modelo L12 Avaliação 5: Métricas de Desempenho)


12.2 Precisão, Recall e Pontuação F1 (Modelo L12 Avaliação 5: Métricas de Desempenho)

No vídeo anterior, discutimos a matriz de confusão, que é uma ferramenta útil para avaliar modelos de classificação. Ele nos permite calcular o número de verdadeiros positivos, falsos positivos, verdadeiros negativos e falsos negativos. Também exploramos a taxa de verdadeiro positivo e a taxa de verdadeiro negativo. Agora, vamos ampliar nosso entendimento introduzindo três métricas adicionais: precisão, recall e pontuação na F1.

Vamos começar com precisão. A precisão é calculada dividindo o número de verdadeiros positivos pela soma de verdadeiros positivos e falsos positivos. Os verdadeiros positivos são as instâncias que são previstas corretamente como positivas, enquanto os falsos positivos são as instâncias que são previstas incorretamente como positivas. No contexto da classificação de spam, por exemplo, os verdadeiros positivos representam os e-mails corretamente identificados como spam, enquanto os falsos positivos referem-se a e-mails não spam classificados incorretamente como spam. A precisão mede a precisão das previsões positivas, respondendo à pergunta: quantos dos e-mails de spam previstos são realmente spam?

Em seguida, temos a rechamada, também conhecida como taxa de verdadeiros positivos. Recall é calculado dividindo o número de verdadeiros positivos pela soma de verdadeiros positivos e falsos negativos. Os verdadeiros positivos representam as instâncias previstas corretamente como positivas e os falsos negativos representam as instâncias incorretamente previstas como negativas. Recall indica quantas das instâncias positivas reais foram corretamente identificadas como positivas. Em outras palavras, mede a eficácia de um classificador na captura de instâncias positivas.

Outra métrica importante é a pontuação F1, que combina precisão e recuperação em um único valor. É calculado tomando a média harmônica de precisão e recall, ponderada por um fator de dois. A pontuação F1 fornece uma medida equilibrada do desempenho de um classificador, considerando tanto a precisão quanto o recall. É especialmente útil quando queremos avaliar um modelo com bom desempenho em precisão e recuperação.

Todas essas métricas têm um intervalo entre zero e um, sendo um o melhor valor possível. Em termos de terminologia, sensibilidade e especificidade são mais comumente usadas em biologia computacional, enquanto precisão e recuperação são populares em tecnologia da informação, ciência da computação e aprendizado de máquina. Ao escolher quais métricas usar em um artigo ou estudo, é importante considerar as convenções do campo específico.

Para entender melhor a precisão e o recall, vamos visualizá-los usando um diagrama útil da Wikipédia. Nesta visualização, consideramos a classe positiva (por exemplo, e-mails de spam) como tudo à esquerda e a classe negativa como tudo à direita. A precisão é representada pelos verdadeiros positivos divididos por todos os positivos previstos, enquanto a recuperação é representada pelos verdadeiros positivos divididos por todos os positivos reais.

Além disso, temos duas outras métricas comumente usadas: sensibilidade e especificidade. Sensibilidade é outro termo para recall, representando a verdadeira taxa positiva. A especificidade, por outro lado, é o número de verdadeiros negativos dividido pelo número de negativos. Ele complementa a sensibilidade e se concentra na identificação precisa de instâncias negativas.

Agora, vamos discutir o coeficiente de correlação de Matthews. Inicialmente projetado para avaliar as previsões da estrutura secundária da proteína em biologia, esse coeficiente mede a correlação entre os rótulos verdadeiros e previstos. Pode ser considerado como uma contrapartida de classificação binária ao coeficiente de correlação de Pearson. Semelhante ao r de Pearson, o coeficiente de correlação de Matthews varia de -1 a 1, com 1 indicando uma correspondência perfeita entre os rótulos verdadeiro e previsto. É particularmente útil em problemas de classes desequilibradas, onde uma classe tem significativamente mais exemplos do que a outra.

Para calcular essas métricas, você pode usar as funções fornecidas pelo scikit-learn, como precisão_score, recall_score, f1_score e matthews_corrcoef. Essas funções usam os rótulos verdadeiros e os rótulos previstos como entradas e retornam os valores de métrica correspondentes. Como alternativa, você pode usar essas métricas na pesquisa de grade e no ajuste de hiperparâmetros, fornecendo a métrica desejada como um argumento de string.

Para problemas multiclasse, quando você deseja usar métricas como precisão, rechamada, pontuação F1 ou coeficiente de correlação de Matthews, é necessário aplicar uma solução alternativa. Uma abordagem é usar a função make_scorer do scikit-learn. Esta função permite criar um objeto de pontuação para uma métrica específica.

Por exemplo, se você deseja usar a pontuação F1 para um problema multiclasse, pode criar um objeto scorer usando make_scorer e definir o parâmetro average como "macro" ou "micro". A opção "macro" calcula a métrica de forma independente para cada classe e, em seguida, obtém a média, enquanto a opção "micro" considera o número total de verdadeiros positivos, falsos negativos e falsos positivos em todas as classes.

É importante observar que a escolha entre a média "macro" e "micro" depende do problema e dos requisitos específicos de sua análise.

Além de usar essas métricas individualmente, você também pode aplicá-las na pesquisa de grade e no ajuste de hiperparâmetros. Em vez de usar a precisão de classificação como a métrica de pontuação, você pode fornecer a métrica desejada como um argumento de sequência no processo de procura de grade. Isso permite que você otimize seu modelo com base na métrica escolhida, fornecendo uma avaliação mais abrangente do que apenas confiar na precisão.

Lembre-se de que, ao trabalhar com problemas multiclasse e aplicar essas métricas, é crucial entender as opções de média e escolher o método apropriado com base em suas necessidades específicas.

Em resumo, neste vídeo, cobrimos métricas de avaliação adicionais para modelos de classificação, incluindo precisão, recall, pontuação F1 e coeficiente de correlação de Matthews. Essas métricas fornecem informações valiosas sobre o desempenho de um classificador, considerando fatores como verdadeiros positivos, falsos positivos e falsos negativos. Ao usar essas métricas, você pode obter uma compreensão mais profunda do desempenho do seu modelo e tomar decisões informadas em sua análise ou pesquisa. No próximo vídeo, vamos nos aprofundar na precisão balanceada, curvas de características de operação do receptor (ROC) e estender métricas binárias para configurações multiclasse, expandindo nosso conhecimento de técnicas de avaliação em tarefas de classificação.

12.2 Precision, Recall, and F1 Score (L12 Model Eval 5: Performance Metrics)
12.2 Precision, Recall, and F1 Score (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video looks at binary performance metrics such as 12.2 Precision, Recall, and F1 Score.-------This video is part of my Introduction of Machine Learning ...
 

12.3 Precisão balanceada (Modelo L12 Aval 5: Métricas de desempenho)


12.3 Precisão balanceada (Modelo L12 Aval 5: Métricas de desempenho)

Tudo bem, agora vamos nos aprofundar no conceito de precisão balanceada, que é particularmente útil ao lidar com problemas de desequilíbrio de classe em tarefas de classificação. O desequilíbrio de classe ocorre quando uma classe tem um número significativamente maior de rótulos do que outra classe. Para ilustrar isso, vamos considerar um problema de classificação multiclasse usando o exemplo das flores Iris, especificamente Iris setosa, Iris versicolor e Iris virginica.

Normalmente, calculamos a precisão da previsão somando os valores na diagonal da matriz de confusão e dividindo-a pelo número total de exemplos. No exemplo dado, temos 3 rótulos para Classe Zero, 769 rótulos para Classe Um e 18 rótulos para Classe Dois. Como você pode ver, há um desequilíbrio nas classes, com a Classe Um tendo um número maior de exemplos em comparação com as outras duas classes. Se calcularmos a precisão regular, seria em torno de 80%, influenciado principalmente pelo alto número de exemplos de Classe Um.

No entanto, a precisão regular pode não fornecer uma representação precisa do desempenho do modelo, especialmente quando o foco deve ser alcançar previsões balanceadas para todas as classes. Nesses casos, a métrica de precisão balanceada visa fornecer uma avaliação mais equitativa, atribuindo peso igual a cada classe.

Para calcular a precisão balanceada, consideramos cada classe como a classe positiva e mesclamos as classes restantes na classe negativa. Por exemplo, vamos focar primeiro na Classe Zero. Tratamos a Classe Zero como a classe positiva e combinamos a Classe Um e a Classe Dois como a classe negativa. Ao analisar a matriz de confusão, podemos determinar os verdadeiros positivos, verdadeiros negativos, falsos positivos e falsos negativos para a Classe Zero. Este processo é repetido para cada classe, criando problemas separados de classificação binária.

Em Python, você pode usar a função Accuracy_score da biblioteca mlxtend para calcular a precisão balanceada. Essa função opera de maneira semelhante à precisão_score do scikit-learn, mas inclui funcionalidade adicional para calcular a precisão da classificação binária. Especificando o método como binário e fornecendo o rótulo positivo, você pode calcular a precisão binária de cada classe. Além disso, você pode usar o parâmetro médio como "macro" ou "micro" para calcular diretamente a precisão média por classe.

No exemplo fornecido, a matriz de confusão é recriada e a precisão regular, a precisão média por classe (precisão balanceada) e as precisões binárias são calculadas. As precisões binárias correspondem a cada classe tratada como rótulo positivo separadamente. Calculando a média das precisões binárias, você obtém a precisão balanceada. Neste caso, a precisão balanceada é de aproximadamente 86%.

A precisão balanceada, ou precisão média por classe, fornece uma avaliação justa do desempenho de um classificador em problemas multiclasse com desequilíbrio de classe. Ele considera cada classe igualmente e oferece informações sobre a capacidade do modelo de prever todas as classes com precisão.

Seguindo em frente, vamos agora discutir a curva Receiver Operating Characteristic (ROC), outra métrica de avaliação importante no aprendizado de máquina. A curva ROC é uma representação gráfica do desempenho de um classificador binário e fornece informações valiosas sobre a compensação entre a taxa de verdadeiros positivos (TPR) e a taxa de falsos positivos (FPR) em diferentes limites de classificação.

Para entender a curva ROC, vamos primeiro definir a taxa de verdadeiros positivos (TPR) e a taxa de falsos positivos (FPR). TPR, também conhecido como sensibilidade ou rechamada, mede a proporção de instâncias positivas reais que são identificadas corretamente pelo classificador. É calculado como o número de verdadeiros positivos dividido pela soma de verdadeiros positivos e falsos negativos:

TPR = Verdadeiros Positivos / (Verdadeiros Positivos + Falsos Negativos)

Por outro lado, a taxa de falsos positivos (FPR) mede a proporção de instâncias negativas reais que são incorretamente classificadas como positivas. É calculado como o número de falsos positivos dividido pela soma de falsos positivos e verdadeiros negativos:

FPR = Falsos Positivos / (Falsos Positivos + Verdadeiros Negativos)

Para construir a curva ROC, as previsões do classificador são classificadas de acordo com suas pontuações ou probabilidades de classificação. Ao variar o limite de classificação, podemos gerar diferentes valores de TPR e FPR. Partindo do limiar que classifica todas as instâncias como positivas (resultando em um TPR de 1 e um FPR de 1), gradualmente diminuímos o limiar, classificando menos instâncias como positivas e, consequentemente, reduzindo tanto o TPR quanto o FPR.

Traçar o TPR contra o FPR para cada valor limite nos dá a curva ROC. A curva ilustra o desempenho do classificador em vários pontos operacionais, com o cenário ideal sendo uma curva que abraça o canto superior esquerdo, indicando alto TPR e baixo FPR para todos os valores limite.

Além da curva ROC, outra métrica importante derivada dela é a Área sob a Curva ROC (AUC-ROC). O AUC-ROC quantifica o desempenho geral do classificador calculando a área sob a curva ROC. Um classificador perfeito tem um AUC-ROC de 1, indicando que atinge um TPR de 1 enquanto mantém um FPR de 0. Por outro lado, um classificador aleatório tem um AUC-ROC de 0,5, pois não é melhor do que o acaso.

A curva ROC e AUC-ROC fornecem uma análise abrangente do desempenho de um classificador binário, independentemente do limite de classificação escolhido. Ele nos permite comparar diferentes classificadores ou diferentes configurações do mesmo classificador, permitindo decisões informadas sobre a seleção do modelo.

Para calcular a curva ROC e AUC-ROC em Python, várias bibliotecas, como o scikit-learn, oferecem funções convenientes. Essas funções usam os rótulos verdadeiros e as probabilidades ou pontuações previstas como entradas e retornam FPR, TPR e limites para a curva ROC, bem como o valor AUC-ROC.

Em resumo, a curva ROC e AUC-ROC são ferramentas valiosas para avaliar e comparar o desempenho de classificadores binários. Eles fornecem informações sobre a compensação entre as taxas de verdadeiro positivo e falso positivo em diferentes limites de classificação, permitindo uma tomada de decisão informada na seleção do modelo.

12.3 Balanced Accuracy (L12 Model Eval 5: Performance Metrics)
12.3 Balanced Accuracy (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video discusses the balanced accuracy (also known as the average-per-class accuracy), which is an alternative to the standard accuracy and can be useful...
 

12.4 Característica Operacional do Receptor (Modelo L12 Aval 5: Métricas de Desempenho)



12.4 Característica Operacional do Receptor (Modelo L12 Aval 5: Métricas de Desempenho)

O tópico de discussão gira em torno da curva característica de operação do receptor (ROC). Essa curva, também conhecida como curva ROC (Receive Operating Characteristic), pode soar como um trava-língua devido ao seu nome complexo. O termo "característica operacional do receptor" é originário do campo dos operadores de receptores de radar que trabalhavam com tecnologias como alcance de direção de rádio. Inicialmente, foi usado neste contexto. No entanto, ganhou popularidade no campo do aprendizado de máquina devido à sua capacidade de combinar duas métricas essenciais: a taxa de verdadeiros positivos e a taxa de falsos positivos.

A curva ROC é construída variando o limiar de predição. Para ilustrar isso, vamos considerar um exemplo. Em problemas de classificação binária, temos duas classes: Classe Zero e Classe Um. Em vez de ter uma simples decisão de classificação binária, podemos atribuir uma probabilidade de associação de classe a cada exemplo. Essa probabilidade pode ser determinada usando vários classificadores, como regressão logística, k vizinhos mais próximos ou árvores de decisão. Por exemplo, no caso de k vizinhos mais próximos, a probabilidade de pertença à classe pode ser calculada como a razão das ocorrências de uma classe sobre a outra na vizinhança.

Vamos considerar um exemplo usando o algoritmo de k vizinhos mais próximos. Suponha que temos um conjunto de vizinhos e queremos determinar a probabilidade de associação de classe para um exemplo específico. Se observarmos que dos cinco vizinhos mais próximos, três pertencem à Classe Zero e dois pertencem à Classe Um, a probabilidade de associação à classe para a Classe Zero seria calculada como 3/5, que é 0,6, e para a Classe Um como 2/5 , que é 0,4. Essas probabilidades podem ser ajustadas com base em um limite.

O limite representa o ponto em que tomamos a decisão entre a Classe Zero e a Classe Um. Por exemplo, se definirmos o limite em 0,5, qualquer probabilidade acima de 0,5 seria classificada como Classe Um e qualquer probabilidade abaixo de 0,5 seria classificada como Classe Zero. Na regressão logística, 0,5 é comumente usado como limite. No entanto, o limite pode ser arbitrário e depende de nossos objetivos, se queremos otimizar a taxa de verdadeiros positivos, a taxa de falsos positivos ou qualquer outro critério. A escolha do limite também inclui uma regra de desempate, como selecionar a classe inferior em caso de empate.

A curva característica de operação do receptor (ROC) ilustra o desempenho de um classificador plotando a taxa de verdadeiros positivos (TPR) no eixo y e a taxa de falsos positivos (FPR) no eixo x. Cada ponto na curva corresponde a um valor limite diferente. Ao alterar o limite, podemos observar como o desempenho do classificador é afetado em termos de taxa de verdadeiro positivo e taxa de falso positivo. A curva representa a sensibilidade do classificador a diferentes valores de limite, permitindo-nos analisar seu comportamento de forma abrangente.

Em termos de precisão, geralmente usamos um limite fixo, como 0,5, para determinar a atribuição de classe. No entanto, para a curva característica de operação do receptor, exploramos a sensibilidade do classificador alterando o limite. Ao fazer isso, podemos avaliar o impacto de limites variáveis na taxa de falsos positivos e na taxa de verdadeiros positivos. A curva exibe diferentes pontos correspondentes a diferentes limites, como 0,3, 0,4, 0,5, 0,6 e assim por diante. Cada ponto na curva representa o desempenho do classificador para um limite específico.

Agora, vamos nos aprofundar no conceito de limite e sua relação com a probabilidade de associação de classe. Anteriormente, vimos uma figura que representava um recurso no eixo x e o limite de decisão sendo deslocado. No entanto, isso foi apenas uma abstração para ajudar na compreensão. Na realidade, o eixo x representa a probabilidade de pertença à classe.

Portanto, continuando de onde paramos, explicarei melhor o trecho de código. Depois de calcular as probabilidades para a classe um, usamos a função roc_curve do scikit-learn para calcular a taxa de falsos positivos (fpr) e a taxa de verdadeiros positivos (tpr) para diferentes limites. A função roc_curve usa os rótulos verdadeiros (y_true) e as probabilidades previstas (y_scores) como entradas e retorna o fpr, tpr e os limiares.

Em seguida, usamos a função roc_auc_score para calcular a área sob a curva característica de operação do receptor (AUC-ROC). Essa métrica fornece um único valor que resume o desempenho do classificador em todos os limites possíveis. Um AUC-ROC mais alto indica melhor desempenho de classificação. Calculamos o AUC-ROC para os conjuntos de treinamento e teste separadamente.

Finalmente, plotamos a curva ROC usando o Matplotlib. O gráfico mostra a curva ROC para o conjunto de treinamento em azul e o conjunto de teste em laranja. Também adicionamos rótulos e uma legenda ao gráfico para melhor interpretação.

Ao visualizar as curvas ROC e calcular o AUC-ROC, podemos avaliar o desempenho do classificador e compará-lo entre os conjuntos de treinamento e teste. Se o AUC-ROC estiver próximo de 1, indica um bom classificador com alta taxa de verdadeiros positivos e baixa taxa de falsos positivos. Por outro lado, um AUC-ROC próximo a 0,5 sugere um classificador aleatório ou ineficaz.

Em resumo, o trecho de código demonstra como usar a curva ROC (receiver operating feature) e a área sob a curva (AUC) como métricas de avaliação para um problema de classificação binária. A curva ROC visualiza o trade-off entre a taxa de verdadeiro positivo e a taxa de falso positivo em diferentes limiares de predição, enquanto a AUC-ROC fornece um único valor para quantificar o desempenho do classificador.

12.4 Receiver Operating Characteristic (L12 Model Eval 5: Performance Metrics)
12.4 Receiver Operating Characteristic (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This video explains the concept behind receiver operating characteristic curves, relating it back to the concept of true and false positive rates.-------This...
 

12.5 Estendendo a métrica binária para problemas multiclasse (Avaliação do modelo L12 5: Métricas de desempenho)


12.5 Estendendo a métrica binária para problemas multiclasse (Avaliação do modelo L12 5: Métricas de desempenho)

Nesta aula, discutimos vários classificadores que podem ser estendidos para funcionar com configurações de várias classes. Árvores de decisão, k vizinhos mais próximos, aumento de gradiente, florestas aleatórias e outros classificadores lidam naturalmente com problemas de várias classes. No entanto, você pode encontrar classificadores como regressão logística ou máquinas de vetores de suporte que são mais adequados para classificação binária. Nesses casos, precisamos encontrar maneiras de estender esses classificadores binários para lidar com várias classes.

Uma abordagem é a estratégia "um contra descanso" ou "um contra todos", também conhecida como OvR ou OvA. Essa abordagem envolve dividir o problema multiclasse em problemas de classificação binária separados. Cada classe é tratada como a classe positiva em um classificador binário, enquanto as classes restantes são tratadas como a classe negativa. Por exemplo, se tivermos três classes (círculos amarelos, quadrados vermelhos e triângulos azuis), criamos três classificadores binários: um para classificar os círculos amarelos em relação aos demais, um para os quadrados vermelhos em relação aos demais e um para os triângulos azuis em relação aos demais. descansar. Durante o treinamento, ajustamos todos os três classificadores e, durante a previsão, executamos todos os três classificadores e escolhemos aquele com a maior pontuação de confiança.

Outra abordagem é a estratégia "um contra um", onde ajustamos um classificador binário para cada par de classes. Se tivéssemos três classes, teríamos três classificadores binários: um para classificar círculos amarelos contra quadrados vermelhos, um para círculos amarelos contra triângulos azuis e um para quadrados vermelhos contra triângulos azuis. Durante a previsão, executamos todos os classificadores e usamos a votação por maioria para determinar o rótulo final da classe.

As estratégias OvR e OvO nos permitem estender classificadores binários para lidar com problemas multiclasse. No entanto, OvO pode ser computacionalmente caro, especialmente quando o número de classes é grande, pois requer o ajuste de vários classificadores.

Ao avaliar o desempenho de classificadores multiclasse, precisamos estender as métricas de classificação binária para lidar com várias classes. Duas abordagens comuns para fazer isso são médias micro e macro. A micromédia envolve o cálculo da precisão, recall e pontuação F1, agregando os verdadeiros positivos e falsos positivos em todas as classes. A média macro envolve o cálculo da precisão, recall e pontuação F1 para cada classe separadamente e, em seguida, a média delas. A média micro trata cada instância ou predição igualmente, enquanto a média macro pondera todas as classes igualmente. Além disso, existe a abordagem ponderada, que considera o desequilíbrio de classe contabilizando o número de instâncias verdadeiras para cada rótulo.

No scikit-learn, você pode especificar o método de média (micro, macro ou ponderada) ao usar métricas de classificação como precisão, recall e pontuação F1. Por exemplo, você pode usar average='micro' ou average='macro' para calcular a métrica média micro ou macro, respectivamente. Há também a pontuação da característica operacional do receptor (ROC) e da área sob a curva (AUC), que podem ser calculadas usando a função roc_auc_score. O método de média padrão para ROC AUC é macro.

Lidar com o desequilíbrio de classe é outro desafio na classificação multiclasse. Técnicas como over-sampling e under-sampling podem ser usadas para resolver esse problema. A biblioteca de aprendizado desequilibrado fornece métodos adicionais para lidar com o desequilíbrio de classes e é compatível com o scikit-learn.

No geral, a avaliação do modelo na classificação multiclasse envolve a extensão de classificadores binários, a escolha de métodos de média apropriados para métricas de avaliação e a consideração do desequilíbrio de classes. Embora não possamos cobrir todos os detalhes nesta aula, existem recursos como a documentação da biblioteca de aprendizado desbalanceado que fornecem mais informações sobre esses tópicos.

12.5 Extending Binary Metric to Multiclass Problems (L12 Model Eval 5: Performance Metrics)
12.5 Extending Binary Metric to Multiclass Problems (L12 Model Eval 5: Performance Metrics)
  • 2020.12.02
  • www.youtube.com
This last video discusses how binary classifiers can be extended to multi-class settings. Then, it discusses how binary evaluation metrics, i.e., via micro- ...
 

13.0 Introdução à Seleção de Recursos (L13: Seleção de Recursos)


13.0 Introdução à Seleção de Recursos (L13: Seleção de Recursos)

Olá pessoal! Espero que todos tenham tido um semestre produtivo e adquirido conhecimentos valiosos com esta aula. Entendo que este semestre foi bastante intenso para a maioria de nós, então não queria adicionar mais estresse sobrecarregando você com conteúdo adicional. No entanto, peço desculpas por não poder cobrir certos tópicos conforme prometido no programa. Para compensar, preparei algumas palestras bônus durante as férias de inverno, a partir de hoje.

Nesta série de vídeos, focarei na redução de dimensionalidade, especificamente em dois métodos: seleção de recursos e extração de recursos. Essas técnicas são incrivelmente úteis e importantes para entender. Na palestra de hoje, vamos mergulhar na seleção de recursos, explorando como funciona, por que é essencial e suas aplicações práticas. No próximo conjunto de vídeos, abordaremos a extração de recursos como uma abordagem alternativa.

Antes de nos aprofundarmos nas especificidades da seleção e extração de características, vamos discutir brevemente o conceito de redução de dimensionalidade e por que ela é significativa. A redução de dimensionalidade visa reduzir o número de recursos em um conjunto de dados. Por exemplo, considere o conhecido conjunto de dados Iris, que consiste em quatro características: comprimento da sépala, largura da sépala, comprimento da pétala e largura da pétala. Na seleção de recursos, escolhemos um subconjunto desses recursos, como largura da sépala e comprimento da pétala, para usar em nossos algoritmos de aprendizado de máquina. Por outro lado, a extração de recursos envolve a criação de novos recursos por meio de técnicas como transformações lineares. A Análise de Componentes Principais (PCA) é um desses métodos que combina vários recursos em um espaço de recursos menor.

Nesta série de palestras, nosso foco principal é a seleção de recursos, onde selecionamos os recursos originais do conjunto de dados. A redução de dimensionalidade, em geral, envolve a criação de espaços de recursos menores. Agora, por que nos preocupamos com esses espaços dimensionais menores? Vamos explorar alguns motivos:

  1. Maldição da dimensionalidade: os classificadores de aprendizado de máquina geralmente lutam à medida que o número de recursos aumenta. Eles podem sofrer de overfitting, particularmente algoritmos como K-vizinhos mais próximos e árvores de decisão. Reduzir o conjunto de recursos pode melhorar o desempenho de tais algoritmos.

  2. Eficiência computacional: grandes conjuntos de dados com vários recursos podem ser computacionalmente caros para processar. Ao reduzir o conjunto de recursos, podemos aprimorar o desempenho computacional sem sacrificar o desempenho preditivo.

  3. Coleta de dados mais fácil: às vezes, um subconjunto de recursos mais simples pode gerar desempenho semelhante em comparação com um subconjunto de recursos maior. Isso pode tornar a coleta de dados mais fácil e econômica, pois a coleta de determinados recursos pode ser mais barata ou mais acessível.

  4. Espaço de armazenamento: armazenar grandes quantidades de dados pode ser desafiador e caro. As técnicas de extração e seleção de recursos ajudam a reduzir a dimensionalidade dos dados, tornando o armazenamento mais viável e eficiente.

  5. Interpretabilidade: entender os recursos pode ajudar na interpretação de algoritmos complexos de aprendizado de máquina. É especialmente crucial em domínios onde são necessárias explicações, como aplicações de cartão de crédito do cliente, onde os clientes têm o direito de conhecer a base das decisões tomadas por sistemas automatizados.

Para resumir, a redução de dimensionalidade pode ser dividida em dois subproblemas: seleção de recursos e extração de recursos. Na palestra de hoje, vamos nos concentrar na seleção de recursos. Na próxima aula, discutiremos a extração de recursos com mais detalhes.

Para ilustrar a importância da seleção de recursos, deixe-me compartilhar um exemplo de um projeto colaborativo com bioquímicos que estudam lampreias marinhas. O objetivo era encontrar um inibidor do receptor mon federal para controlar a população de lampreias marinhas nos Grandes Lagos. Usamos a seleção de características para entender quais características moleculares eram cruciais. Ao avaliar o desempenho de diferentes subconjuntos de recursos usando um classificador de aprendizado de máquina, descobrimos que alguns recursos simples, como o número de oxigênios sulfurosos, eram altamente informativos. Adicionar mais recursos não melhorou significativamente o desempenho, indicando que esses recursos simples eram os mais importantes para nossa tarefa de classificação. Esse conhecimento nos guiou na triagem de milhões de moléculas e, finalmente, na descoberta de um composto que mostrasse uma inibição promissora.

No sinal de feromônio por uma porcentagem significativa usando apenas os recursos selecionados. Este exemplo demonstra o poder da seleção de recursos na identificação de componentes-chave ou características que contribuem para o resultado desejado.

Agora, vamos nos aprofundar na seleção de recursos e sua relevância. A seleção de recursos é uma subcategoria de redução de dimensionalidade, que visa reduzir o número de recursos ou variáveis em um conjunto de dados, mantendo informações relevantes e significativas. O objetivo final é simplificar o conjunto de dados e aprimorar a eficiência computacional, interpretabilidade e desempenho preditivo.

Existem várias razões pelas quais a seleção de recursos é importante e benéfica. Em primeiro lugar, a maldição da dimensionalidade representa um desafio no aprendizado de máquina. À medida que o número de recursos aumenta, certos algoritmos podem sofrer uma diminuição do desempenho ou tornar-se mais propensos ao overfitting. Ao reduzir o conjunto de recursos, podemos mitigar esses problemas e melhorar a precisão e a confiabilidade dos modelos, especialmente para algoritmos como K-vizinhos mais próximos e árvores de decisão.

Em segundo lugar, a eficiência computacional é uma consideração significativa ao lidar com grandes conjuntos de dados. O custo computacional de treinamento e teste de modelos de aprendizado de máquina aumenta com o número de recursos. Ao selecionar um subconjunto de recursos relevantes, podemos reduzir a carga computacional e agilizar o processo sem sacrificar o desempenho.

Além disso, a seleção de recursos permite uma coleta de dados mais fácil. Às vezes, um subconjunto simplificado de recursos pode fornecer desempenho preditivo semelhante em comparação com um conjunto maior de recursos. Isso é particularmente valioso quando a coleta de dados se torna desafiadora ou cara. Por exemplo, no contexto do diagnóstico médico, a identificação de características facilmente obtidas que ainda produzem resultados precisos pode economizar recursos e tornar o processo mais acessível aos pacientes.

Além disso, a seleção de recursos auxilia na otimização do espaço de armazenamento. Com o crescimento exponencial da geração de dados, armazenar e gerenciar grandes conjuntos de dados torna-se uma preocupação significativa. Ao selecionar recursos relevantes, podemos reduzir os requisitos de armazenamento sem comprometer o desempenho geral ou os insights obtidos com os dados.

Além disso, a interpretabilidade desempenha um papel crucial, especialmente quando se trata de sistemas automatizados ou domínios regulamentados. A seleção de recursos ajuda a identificar os recursos mais influentes e interpretáveis, permitindo melhor compreensão e explicação do processo de tomada de decisão. Em contextos onde os requisitos legais ou éticos exigem explicações para as decisões, a seleção de recursos pode facilitar a conformidade e a responsabilidade.

Para resumir, a redução de dimensionalidade, particularmente a seleção de recursos, oferece inúmeras vantagens em vários domínios. Ao selecionar os recursos mais informativos, podemos mitigar a maldição da dimensionalidade, melhorar a eficiência computacional, simplificar a coleta de dados, otimizar o espaço de armazenamento e aprimorar a interpretabilidade. Esses benefícios contribuem para modelos de aprendizado de máquina mais precisos e eficientes e permitem uma compreensão mais profunda de problemas complexos.

Nas próximas aulas, exploraremos a extração de recursos como outra técnica de redução de dimensionalidade. A extração de recursos envolve a transformação dos recursos originais em um novo conjunto de recursos por meio de métodos como a análise de componentes principais (PCA). Esse processo nos permite capturar informações relevantes enquanto reduz a dimensionalidade. Compreendendo a seleção e a extração de recursos, podemos aproveitar a técnica apropriada com base nas características e requisitos específicos do conjunto de dados e do problema em questão.

Assim, na próxima aula, vamos nos aprofundar na extração de características e explorar suas técnicas, vantagens e aplicações. Fique ligado enquanto continuamos nossa jornada pelo fascinante mundo da redução de dimensionalidade e seu impacto no aprendizado de máquina.

13.0 Introduction to Feature Selection (L13: Feature Selection)
13.0 Introduction to Feature Selection (L13: Feature Selection)
  • 2021.12.08
  • www.youtube.com
This video gives a brief intro of how we care about dimensionality reduction and introduces feature selection as a subcategory that we will cover in more det...