Regressão Isotônica para Dados Não Lineares

Beginner

This tutorial is from open-source community. Access the source code

Introdução

Neste laboratório, exploraremos a regressão isotônica usando o scikit-learn. A regressão isotônica é uma técnica que ajusta uma função não decrescente a dados unidimensionais. É útil quando os dados não satisfazem a suposição de linearidade em um modelo de regressão.

Dicas da Máquina Virtual

Após o início da VM, clique no canto superior esquerdo para mudar para a aba Notebook para acessar o Jupyter Notebook para praticar.

Às vezes, pode ser necessário aguardar alguns segundos para que o Jupyter Notebook termine de carregar. A validação de operações não pode ser automatizada devido a limitações no Jupyter Notebook.

Se você enfrentar problemas durante o aprendizado, sinta-se à vontade para perguntar ao Labby. Forneça feedback após a sessão e resolveremos o problema rapidamente para você.

Importar as bibliotecas necessárias

Começaremos importando a classe IsotonicRegression do módulo sklearn.isotonic.

from sklearn.isotonic import IsotonicRegression

Criar dados de amostra

Em seguida, precisamos criar alguns dados de amostra para ajustar nosso modelo de regressão isotônica. Neste exemplo, geraremos dois arrays, X e y, representando os dados de entrada e os valores-alvo, respectivamente.

import numpy as np

## Gerar dados de entrada aleatórios
np.random.seed(0)
X = np.random.rand(100)
y = 4 * X + np.random.randn(100)

Ajustar o modelo de regressão isotônica

Agora, podemos ajustar o modelo de regressão isotônica aos nossos dados. Criamos uma instância da classe IsotonicRegression e chamamos o método fit com nossos dados de entrada e valores-alvo.

## Ajustar o modelo de regressão isotônica
ir = IsotonicRegression()
ir.fit(X, y)

Fazer previsões usando o modelo

Após ajustar o modelo, podemos usá-lo para fazer previsões em novos dados. Vamos criar um novo array X_new e prever os valores-alvo correspondentes.

## Criar novos dados para previsão
X_new = np.linspace(0, 1, 100)
y_pred = ir.predict(X_new)

Visualizar os resultados

Finalmente, vamos visualizar os resultados do nosso modelo de regressão isotônica. Podemos plotar os pontos de dados originais como pontos dispersos e os valores previstos como uma linha.

import matplotlib.pyplot as plt

## Plotar os dados originais e os valores previstos
plt.scatter(X, y, c='b', label='Dados Originais')
plt.plot(X_new, y_pred, c='r', label='Regressão Isotônica')
plt.xlabel('X')
plt.ylabel('y')
plt.legend()
plt.show()

Resumo

A regressão isotônica é uma técnica útil quando se tem dados não lineares que não satisfazem as premissas de um modelo de regressão linear. Ao ajustar uma função não decrescente aos dados, a regressão isotônica fornece uma aproximação linear por partes que captura a tendência subjacente nos dados. Neste laboratório, aprendemos como usar a classe IsotonicRegression do scikit-learn para ajustar um modelo de regressão isotônica, fazer previsões e visualizar os resultados.