10 incríveis visualizações de aprendizado de máquina que você deve conhecer em 2023

Yellowbrick para criar gráficos de aprendizado de máquina com menos código

Foto por David Pisnoy on Unsplash

A visualização de dados desempenha um papel importante no aprendizado de máquina.

Os casos de uso de visualização de dados em aprendizado de máquina incluem:

  • Ajuste de hiperparâmetros
  • Avaliação de desempenho do modelo
  • Validando as suposições do modelo
  • Encontrando outliers
  • Selecionando os recursos mais importantes
  • Identificando padrões e correlações entre recursos

As visualizações que estão diretamente relacionadas aos principais itens acima no aprendizado de máquina são chamadas visualizações de aprendizado de máquina.

A criação de visualizações de aprendizado de máquina às vezes é um processo complicado, pois requer muito código para escrever, mesmo em Python. Mas, graças ao código aberto do Python Tijolo amarelo biblioteca, até mesmo visualizações complexas de aprendizado de máquina podem ser criadas com menos código. Essa biblioteca estende a API do Scikit-learn e fornece funções de alto nível para diagnósticos visuais que não são fornecidos pelo Scikit-learn.

Hoje, discutirei os seguintes tipos de visualizações de aprendizado de máquina, seus casos de uso e a implementação do Yellowbrick em detalhes.

Visualizações de ML do Yellowbrick
-----------------------------
01. Gráfico do Componente Principal
02. Curva de Validação
03. Curva de aprendizado
04. Gráfico de cotovelo
05. Gráfico de silhueta
06. Gráfico de desequilíbrio de classe
07. Gráfico de Resíduos
08. Gráfico de erro de previsão
09. Gráfico de distância de Cook
10. Gráfico de importâncias de recursos

Instalação

A instalação do Yellowbrick pode ser feita executando um dos seguintes comandos.

  • pip instalador de pacotes:
pip instalar tijolo amarelo
  • município instalador de pacotes:
conda install -c distritodatalabs tijolo amarelo

Usando Yellowbrick

Os visualizadores Yellowbrick têm uma sintaxe semelhante ao Scikit-learn. Um visualizador é um objeto que aprende com os dados para produzir uma visualização. Geralmente é usado com um estimador Scikit-learn. Para treinar um visualizador, chamamos seu método fit().

Salvando o enredo

Para salvar um gráfico criado usando um visualizador Yellowbrick, chamamos o método show() da seguinte maneira. Isso salvará o gráfico como um arquivo PNG no disco.

visualizador.show(outpath="nome_do_plot.png")

Uso

O gráfico de componente principal visualiza dados de alta dimensão em um gráfico de dispersão 2D ou 3D. Portanto, esse gráfico é extremamente útil para identificar padrões importantes em dados de alta dimensão.

Implementação Yellowbrick

A criação dessa parcela com o método tradicional é complexa e demorada. Precisamos aplicar o PCA ao conjunto de dados primeiro e depois usar a biblioteca matplotlib para criar o gráfico de dispersão.

Em vez disso, podemos usar a classe de visualizador PCA do Yellowbrick para obter a mesma funcionalidade. Ele utiliza o método de análise de componentes principais, reduz a dimensionalidade do conjunto de dados e cria o gráfico de dispersão com 2 ou 3 linhas de código! Tudo o que precisamos fazer é especificar alguns argumentos de palavra-chave na classe PCA().

Vamos dar um exemplo para entender melhor isso. Aqui, usamos o câncer de mama conjunto de dados (ver Citação no final) que possui 30 features e 569 samples de duas classes (Maligno e Benigno). Devido à alta dimensionalidade (30 recursos) nos dados, é impossível plotar os dados originais em um gráfico de dispersão 2D ou 3D, a menos que apliquemos o PCA ao conjunto de dados.

O código a seguir explica como podemos utilizar o visualizador PCA do Yellowbrick para criar um gráfico de dispersão 2D de um conjunto de dados de 30 dimensões.

(Código por autor)
Gráfico de componentes principais - 2D (Imagem por autr)

Também podemos criar um gráfico de dispersão 3D definindo projection=3na classe PCA().

(Código por autor)
Gráfico de componentes principais - 3D (Imagem do autor)

Os parâmetros mais importantes do visualizador PCA incluem:

  • escala: bool, padrão True. Isso indica se os dados devem ser dimensionados ou não. Devemos dimensionar os dados antes de executar o PCA. Aprender mais sobre SUA PARTICIPAÇÃO FAZ A DIFERENÇA.
  • projeção: int, o padrão é 2. Quando projection=2, um gráfico de dispersão 2D é criado. Quando projection=3, um gráfico de dispersão 3D é criado.
  • classes: lista, padrão None. Isso indica os rótulos de classe para cada classe em y. Os nomes das classes serão os rótulos da legenda.

Uso

A curva de validação traça a influência de um solteiro hiperparâmetro no trem e conjunto de validação. Olhando para a curva, podemos determinar as condições de overfitting, underfitting e just-right do modelo para os valores especificados do hiperparâmetro fornecido. Quando há vários hiperparâmetros para ajustar de uma só vez, a curva de validação não pode ser usada. Instalado, você pode usar pesquisa em grade ou pesquisa aleatória.

Implementação Yellowbrick

Criar uma curva de validação com o método tradicional é complexo e demorado. Em vez disso, podemos usar o visualizador ValidationCurve do Yellowbrick.

Para traçar uma curva de validação em Yellowbirck, construiremos um classificador de floresta aleatório usando o mesmo câncer de mama conjunto de dados (ver Citação no final). Vamos traçar a influência do profundidade máxima hiperparâmetro no modelo de floresta aleatória.

O código a seguir explica como podemos utilizar o visualizador ValidationCurve do Yellowbrick para criar uma curva de validação usando o câncer de mama conjunto de dados.

(Código por autor)
Curva de Validação (Imagem do autor)

O modelo começa a se sobreajustar após o profundidade máxima valor de 6. Quando max_depth=6, o modelo se ajusta muito bem aos dados de treinamento e também generaliza bem em novos dados não vistos.

Os parâmetros mais importantes do visualizador ValidationCurve incluem:

  • estimador: Pode ser qualquer modelo de ML do Scikit-learn, como árvore de decisão, floresta aleatória, máquina de vetor de suporte, etc.
  • nome_do_parâmetro: Este é o nome do hiperparâmetro que queremos monitorar.
  • intervalo_param: Isso inclui os valores possíveis para nome_param.
  • cv: int, define o número de dobras para a validação cruzada.
  • pontuação: corda, contém o método de pontuação do modelo. Para classificação, precisão é preferível.

Uso

A curva de aprendizado plota os erros ou precisões de treinamento e validação em relação ao número de épocas ou ao número de instâncias de treinamento. Você pode pensar que as curvas de aprendizado e validação parecem iguais, mas o número de iterações é plotado no eixo x da curva de aprendizado, enquanto os valores do hiperparâmetro são plotados no eixo x da curva de validação.

Os usos da curva de aprendizado incluem:

  • A curva de aprendizado é usada para detectar insuficiente, sobreajuste e na medida condições do modelo.
  • A curva de aprendizado é usada para identificar sbaixa convergência, oscilando, oscilando com divergência e convergência adequada cenários ao encontrar a taxa de aprendizado ideal de uma rede neural ou modelo de ML.
  • A curva de aprendizado é usada para ver quanto nosso modelo se beneficia ao adicionar mais dados de treinamento. Quando usado dessa forma, o eixo x mostra o número de instâncias de treinamento.

Implementação Yellowbrick

Criar a curva de aprendizado com o método tradicional é complexo e demorado. Em vez disso, podemos usar o visualizador LearningCurve do Yellowbrick.

Para traçar uma curva de aprendizado em Yellowbirck, construiremos um classificador de vetor de suporte usando o mesmo câncer de mama conjunto de dados (ver Citação no fim).

O código a seguir explica como podemos utilizar o visualizador LearningCurve do Yellowbrick para criar uma curva de validação usando o câncer de mama conjunto de dados.

(Código por autor)
Curva de aprendizado (Imagem do autor)

O modelo não se beneficiará com a adição de mais instâncias de treinamento. O modelo já foi treinado com 569 instâncias de treinamento. A precisão da validação não melhora após 175 instâncias de treinamento.

Os parâmetros mais importantes do visualizador LearningCurve incluem:

  • estimador: Pode ser qualquer modelo de ML do Scikit-learn, como árvore de decisão, floresta aleatória, máquina de vetor de suporte, etc.
  • cv: int, define o número de dobras para a validação cruzada.
  • pontuação: corda, contém o método de pontuação do modelo. Para classificação, precisão é preferível.

Uso

O gráfico de cotovelo é usado para selecionar o número ideal de clusters no agrupamento K-Means. O modelo se ajusta melhor no ponto onde ocorre o cotovelo no gráfico de linha. O cotovelo é o ponto de inflexão no gráfico.

Implementação Yellowbrick

Criar o gráfico de cotovelo com o método tradicional é complexo e demorado. Em vez disso, podemos usar o KElbowVisualizer do Yellowbrick.

Para traçar uma curva de aprendizado em Yellowbirck, construiremos um modelo de agrupamento K-Means usando o íris conjunto de dados (ver Citação no fim).

O código a seguir explica como podemos utilizar o KElbowVisualizer do Yellowbrick para criar um gráfico de cotovelo usando o íris conjunto de dados.

(Código por autor)
Gráfico de cotovelo (Imagem do autor)

A cotovelo ocorre em k=4 (anotado com uma linha tracejada). O gráfico indica que o número ideal de clusters para o modelo é 4. Em outras palavras, o modelo está bem ajustado com 4 clusters.

Os parâmetros mais importantes do KElbowVisualizer incluem:

  • estimador: Instância do modelo K-Means
  • k: int ou tupla. Se for um número inteiro, ele calculará pontuações para os clusters no intervalo de (2, k). Se for uma tupla, ele calculará pontuações para os clusters no intervalo especificado, por exemplo, (3, 11).

Uso

O gráfico de silhueta é usado para selecionar o número ideal de clusters no agrupamento K-Means e também para detectar o desequilíbrio do cluster. Este gráfico fornece resultados muito precisos do que o gráfico de cotovelo.

Implementação Yellowbrick

Criar o gráfico de silhueta com o método tradicional é complexo e demorado. Em vez disso, podemos usar o SilhouetteVisualizer do Yellowbrick.

Para criar um gráfico de silhueta em Yellowbirck, construiremos um modelo de agrupamento K-Means usando o íris conjunto de dados (ver Citação no fim).

Os blocos de código a seguir explicam como podemos utilizar o SilhouetteVisualizer do Yellowbrick para criar gráficos de silhueta usando o íris conjunto de dados com diferentes valores de k (número de clusters).

k = 2

(Código por autor)
Gráfico de silhueta com 2 clusters (k = 2), (Imagem do autor)

Ao alterar o número de clusters na classe KMeans(), podemos executar o código acima em momentos diferentes para criar gráficos de silhueta quando k=3, k=4 e k=5.

k = 3

Gráfico de silhueta com 3 clusters (k = 3), (Imagem do autor)

k = 4

Gráfico de silhueta com 4 clusters (k = 4), (Imagem do autor)

k = 5

Gráfico de silhueta com 4 clusters (k = 5), (Imagem do autor)

O gráfico de silhueta contém uma forma de faca por cluster. Cada forma de faca é criada por barras que representam todos os pontos de dados no cluster. Portanto, a largura de uma forma de faca representa o número de todas as instâncias no cluster. O comprimento da barra representa o coeficiente Silhouette para cada instância. A linha tracejada indica a pontuação da silhueta — Fonte: Agrupamento Prático de K-Means (escrito por mim).

Um gráfico com larguras aproximadamente iguais de formas de faca nos diz que os clusters estão bem balanceados e têm aproximadamente o mesmo número de instâncias dentro de cada cluster — uma das suposições mais importantes no agrupamento K-Means.

Quando as barras em forma de faca estendem a linha tracejada, os grupos estão bem separados — outra suposição importante no agrupamento K-Means.

Quando k=3, os clusters são bem balanceados e bem separados. Portanto, o número ideal de clusters em nosso exemplo é 3.

Os parâmetros mais importantes do SilhouetteVisualizer incluem:

  • estimador: Instância do modelo K-Means
  • cores: string, uma coleção de cores usadas para cada forma de faca. 'yellowbrick' ou uma das strings do mapa de cores do Matplotlib, como 'Accent', 'Set1', etc.

Uso

O gráfico de desequilíbrio de classe detecta o desequilíbrio de classes na coluna de destino em conjuntos de dados de classificação.

O desequilíbrio de classe ocorre quando uma classe tem significativamente mais instâncias do que a outra classe. Por exemplo, um conjunto de dados relacionado à detecção de e-mail de spam tem 9900 instâncias para a categoria “Não é spam” e apenas 100 instâncias para a categoria “Spam”. O modelo falhará em capturar a classe minoritária (a Spam categoria). Como resultado disso, o modelo não será preciso em prever a classe minoritária quando ocorrer um desequilíbrio de classe — Fonte: Os 20 principais erros de aprendizado de máquina e aprendizado profundo que acontecem secretamente nos bastidores (escrito por mim).

Implementação Yellowbrick

A criação do gráfico de desequilíbrio de classes com o método tradicional é complexa e demorada. Em vez disso, podemos usar o visualizador ClassBalance do Yellowbrick.

Para traçar um gráfico de desequilíbrio de classe em Yellowbirck, usaremos o câncer de mama conjunto de dados (conjunto de dados de classificação, consulte Citação no fim).

O código a seguir explica como podemos utilizar o visualizador ClassBalance do Yellowbrick para criar um gráfico de desequilíbrio de classe usando o câncer de mama conjunto de dados.

(Código por autor)
Gráfico de desequilíbrio de classe (Imagem do autor)

Existem mais de 200 casos no Maligno classe e mais de 350 instâncias no Benigno classe. Portanto, não podemos ver muito desequilíbrio de classe aqui, embora as instâncias não sejam igualmente distribuídas entre as duas classes.

Os parâmetros mais importantes do visualizador ClassBalance incluem:

  • etiquetas: list, os nomes das classes exclusivas na coluna de destino.

Uso

O gráfico de resíduos na regressão linear é usado para determinar se os resíduos (valores observados-valores previstos) não estão correlacionados (independentes) analisando a variância dos erros em um modelo de regressão.

O gráfico de resíduos é criado plotando os resíduos em relação às previsões. Se houver algum tipo de padrão entre as previsões e os resíduos, isso confirma que o modelo de regressão ajustado não é perfeito. Se os pontos estiverem dispersos aleatoriamente em torno do eixo x, o modelo de regressão se ajustará bem aos dados.

Implementação Yellowbrick

Criar o gráfico de resíduos com o método tradicional é complexo e demorado. Em vez disso, podemos usar o visualizador ResidualsPlot do Yellowbrick.

Para traçar um gráfico de resíduos em Yellowbirck, usaremos o Publicidade (Publicidade.csv, Ver Citação no final) conjunto de dados.

O código a seguir explica como podemos utilizar o visualizador ResidualsPlot do Yellowbrick para criar um gráfico de resíduos usando o Publicidade conjunto de dados.

(Código por autor)
Gráfico de Resíduos (Imagem do autor)

Podemos ver claramente algum tipo de padrão não linear entre previsões e resíduos no gráfico de resíduos. O modelo de regressão ajustado não é perfeito, mas é bom o suficiente.

Os parâmetros mais importantes do visualizador ResidualsPlot incluem:

  • estimador: Pode ser qualquer regressor do Scikit-learn.
  • histórico: bool, padrão True. Se deseja plotar o histograma de resíduos, que é usado para verificar outra suposição — os resíduos são aproximadamente normalmente distribuídos com a média 0 e um desvio padrão fixo.

Uso

O gráfico de erro de previsão na regressão linear é um método gráfico usado para avaliar um modelo de regressão.

O gráfico de erro de previsão é criado plotando as previsões em relação aos valores de destino reais.

Se o modelo fizer previsões muito precisas, os pontos devem estar na linha de 45 graus. Caso contrário, os pontos são dispersos em torno dessa linha.

Implementação Yellowbrick

Criar o gráfico de erro de previsão com o método tradicional é complexo e demorado. Em vez disso, podemos usar o visualizador PredictionError do Yellowbrick.

Para traçar um gráfico de erro de previsão em Yellowbirck, usaremos o Publicidade (Publicidade.csv, Ver Citação no final) conjunto de dados.

O código a seguir explica como podemos utilizar o visualizador PredictionError do Yellowbrick para criar um gráfico de resíduos usando o Publicidade conjunto de dados.

(Código por autor)
Gráfico de erro de previsão (Imagem do autor)

Os pontos não estão exatamente na linha de 45 graus, mas o modelo é bom o suficiente.

Os parâmetros mais importantes do visualizador PredictionError incluem:

  • estimador: Pode ser qualquer regressor do Scikit-learn.
  • identidade: bool, padrão True. Se deseja desenhar a linha de 45 graus.

Uso

A distância de Cook mede o impacto das instâncias na regressão linear. Instâncias com grandes impactos são consideradas outliers. Um conjunto de dados com um grande número de outliers não é adequado para regressão linear sem pré-processamento. Simplesmente, o gráfico de distância de Cook é usado para detectar outliers no conjunto de dados.

Implementação Yellowbrick

Criar o gráfico de distância de Cook com o método tradicional é complexo e demorado. Em vez disso, podemos usar o visualizador CooksDistance do Yellowbrick.

Para traçar um gráfico de distância de Cook em Yellowbirck, usaremos o Publicidade (Publicidade.csv, Ver Citação no final) conjunto de dados.

O código a seguir explica como podemos utilizar o visualizador CooksDistance do Yellowbrick para criar um gráfico de distância de Cook usando o Publicidade conjunto de dados.

(Código por autor)
Gráfico de distância de Cook (Imagem do autor)

Existem algumas observações que estendem a linha limiar (vermelho horizontal). Eles são atípicos. Portanto, devemos preparar os dados antes de fazer qualquer modelo de regressão.

Os parâmetros mais importantes do visualizador CooksDistance incluem:

  • draw_threshold: bool, padrão True. Se deve ser desenhada a linha limite.

Uso

O gráfico de importâncias de recursos é usado para selecionar os recursos importantes mínimos necessários para produzir um modelo de ML. Como nem todos os recursos contribuem da mesma forma para o modelo, podemos remover os recursos menos importantes do modelo. Isso reduzirá a complexidade do modelo. Modelos simples são fáceis de treinar e interpretar.

O gráfico de importâncias de recursos visualiza as importâncias relativas de cada recurso.

Implementação Yellowbrick

Criar o gráfico de importâncias de recursos com o método tradicional é complexo e demorado. Em vez disso, podemos usar o visualizador FeatureImportances do Yellowbrick.

Para traçar um gráfico de importâncias de recursos em Yellowbirck, usaremos o câncer de mama conjunto de dados (ver Citação no final) que contém 30 recursos.

O código a seguir explica como podemos utilizar o visualizador FeatureImportances do Yellowbrick para criar um gráfico de importâncias de recursos usando o câncer de mama conjunto de dados.

(Código por autor)
Gráfico de importâncias de recursos (Imagem do autor)

Nem todos os 30 recursos no conjunto de dados são muito contribuídos para o modelo. Podemos remover os recursos com pequenas barras do conjunto de dados e reajustar o modelo com os recursos selecionados.

Os parâmetros mais importantes do visualizador FeatureImportances incluem:

  • estimador: Qualquer Estimador Scikit-learn que suporta tanto feature_importances_ atributo ou coef_ atributo.
  • relativo: bool, padrão True. Se a importância relativa deve ser plotada como uma porcentagem. Se False, a pontuação numérica bruta da importância do recurso é mostrada.
  • absoluto: bool, padrão False. Se deve considerar apenas a magnitude dos coeficientes, evitando sinais negativos.
  1. Gráfico de componentes principais: PCA(), Uso — Visualiza dados de alta dimensão em um gráfico de dispersão 2D ou 3D que pode ser usado para identificar padrões importantes em dados de alta dimensão.
  2. Curva de validação: Curva de Validação(), Uso — Traça a influência de um solteiro hiperparâmetro no trem e conjunto de validação.
  3. Curva de aprendizado: Curva de aprendizado(), Uso — Detecta insuficiente, sobreajuste e na medida condições de um modelo, Identifica sbaixa convergência, oscilando, oscilando com divergência e convergência adequada cenários ao encontrar a taxa de aprendizado ideal de uma rede neural, mostra o quanto nosso modelo se beneficia ao adicionar mais dados de treinamento.
  4. Trama do cotovelo: KElbowVisualizer(), Uso — Seleciona o número ideal de clusters no cluster K-Means.
  5. Desenho de Silhueta: SilhouetteVisualizer(), Uso — Seleciona o número ideal de clusters no agrupamento K-Means, detecta o desequilíbrio do cluster no agrupamento K-Means.
  6. Gráfico de Desequilíbrio de Classes: SaldoClasse(), Uso — Detecta o desequilíbrio de classes na coluna de destino em conjuntos de dados de classificação.
  7. Gráfico de Resíduos: Gráfico de Resíduos(), Uso — Determina se os resíduos (valores observados-valores previstos) não estão correlacionados (independentes) analisando a variância dos erros em um modelo de regressão.
  8. Gráfico de erro de previsão: Erro de previsão(), Uso — Um método gráfico usado para avaliar um modelo de regressão.
  9. Plano de Distância de Cook: Distância dos cozinheiros(), Uso — Detecta valores discrepantes no conjunto de dados com base nas distâncias das instâncias de Cook.
  10. Gráfico de importâncias de recursos: RecursoImportâncias(), Uso — Seleciona os recursos importantes mínimos necessários com base nas importâncias relativas de cada recurso para produzir um modelo de ML.

Este é o fim do post de hoje.

Por favor, deixe-me saber se você tiver quaisquer perguntas ou comentários.

Leia a seguir (recomendado)

  • Yellowbrick para visualizar as importâncias dos recursos usando uma única linha de código
  • Curva de validação explicada – Trace a influência de um único hiperparâmetro
  • Traçando a curva de aprendizado para analisar o desempenho do treinamento de uma rede neural
  • Agrupamento Prático de K-Means

Apoie-me como escritor

Espero que você tenha gostado de ler este artigo. Se você gostaria de me apoiar como escritor, por favor considere inscrevendo-se para uma assinatura para obter acesso ilimitado ao Medium. Custa apenas US$ 5 por mês e receberei uma parte da sua taxa de adesão.

Muito obrigado pelo seu apoio contínuo! Vejo você no próximo artigo. Bom aprendizado para todos!

Informações do conjunto de dados de câncer de mama

  • Citação: Dua, D. e Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: Universidade da Califórnia, Escola de Informação e Ciência da Computação.
  • Fonte: https://archive.ics.uci.edu/ml/datasets/breast+cancer+wisconsin+(diagnostic)
  • Licença: Dr.William H. Wolberg (Departamento de Cirurgia Geral
    Universidade de Wisconsin), Rua W. Nick (Depto. de Ciências da Computação.
    Universidade de Wisconsin) e Olvi L. Mangasarian (Departamento de Ciências da Computação da Universidade de Wisconsin) detém os direitos autorais deste conjunto de dados. Nick Street doou este conjunto de dados ao público sob o Licença Internacional Creative Commons Attribution 4.0 (CC BY 4.0). Você pode aprender mais sobre diferentes tipos de licença de conjunto de dados SUA PARTICIPAÇÃO FAZ A DIFERENÇA.

Informações do conjunto de dados da íris

  • Citação: Dua, D. e Graff, C. (2019). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: Universidade da Califórnia, Escola de Informação e Ciência da Computação.
  • Fonte: https://archive.ics.uci.edu/ml/datasets/iris
  • Licença: RA Fisher detém os direitos autorais deste conjunto de dados. Michael Marshall doou este conjunto de dados ao público sob o Licença de Dedicação de Domínio Público Creative Commons (CC0). Você pode aprender mais sobre diferentes tipos de licença de conjunto de dados SUA PARTICIPAÇÃO FAZ A DIFERENÇA.

Informações do conjunto de dados de publicidade

Referências

10 visualizações incríveis de aprendizado de máquina que você deve conhecer em 2023 Republicado da fonte https://towardsdatascience.com/10-amazing-machine-learning-visualizations-you-should-know-in-2023-528282940582?source=rss—-7f60cf5620c9— 4 via https://towardsdatascience.com/feed

<!–

->

Carimbo de hora:

Mais de Consultores Blockchain