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.