Mínimos Quadrados Ordinários em Python

PythonBeginner
Pratique Agora

Introdução

Neste projeto, você aprenderá como implementar o método dos Mínimos Quadrados Ordinários (Ordinary Least Squares - OLS) em Python. OLS é uma técnica fundamental de otimização matemática utilizada em machine learning, particularmente em problemas de regressão linear.

🎯 Tarefas

Neste projeto, você aprenderá:

  • Como implementar a função OLS para calcular a inclinação (w1) e a interceptação (w0) de uma equação linear com base em dados de amostra.
  • Como testar a função OLS com dados de amostra e verificar a correção dos resultados.

🏆 Conquistas

Após concluir este projeto, você será capaz de:

  • Derivar as fórmulas OLS para calcular a inclinação e a interceptação de uma equação linear.
  • Implementar a função OLS em Python sem usar nenhuma biblioteca externa.
  • Testar e validar a função OLS com dados de amostra.
  • Compreender a importância do método OLS em machine learning e problemas de regressão linear.

Implementar a Função de Mínimos Quadrados

Nesta etapa, você implementará a função dos Mínimos Quadrados Ordinários (OLS) em Python. Siga as etapas abaixo para concluir esta etapa:

  1. Abra o arquivo least_squares.py em seu editor de texto.

  2. Implemente a função least_squares_function de acordo com as especificações fornecidas:

    • A função deve receber dois parâmetros de entrada: x (uma lista de valores de amostra x) e y (uma lista de valores de amostra y).
    • A função deve calcular a inclinação (w1) e a interceptação (w0) da equação linear usando as fórmulas OLS fornecidas na descrição do desafio.
    • A função deve arredondar os valores calculados de w0 e w1 para duas casas decimais antes de retorná-los.
    • A função deve retornar os valores w0 e w1 nessa ordem.

Aqui está a implementação completa da least_squares_function:

def least_squares_function(x, y):
    """
    Parameters:
    x -- lista de valores de amostra x
    y -- lista de valores de amostra y

    Returns:
    w0 -- parâmetro da equação linear, arredondado para duas casas decimais
    w1 -- parâmetro da equação linear, arredondado para duas casas decimais
    """

    n = len(x)

    ## Calcula as somas necessárias para a inclinação (w1) e a interceptação (w0)
    sum_x = sum(x)
    sum_y = sum(y)
    sum_xy = sum(x_i * y_i for x_i, y_i in zip(x, y))
    sum_x_squared = sum(x_i**2 for x_i in x)

    ## Calcula a inclinação (w1) e a interceptação (w0) usando as fórmulas OLS
    w1 = (n * sum_xy - sum_x * sum_y) / (n * sum_x_squared - sum_x**2)
    w0 = (sum_y - w1 * sum_x) / n

    ## Arredonda para duas casas decimais
    w0 = round(w0, 2)
    w1 = round(w1, 2)

    return w0, w1
  1. Salve o arquivo least_squares.py.

Testar a Função de Mínimos Quadrados

Nesta etapa, você testará a least_squares_function que implementou na etapa anterior.

  1. Você pode ver o seguinte código no final do arquivo para testar a least_squares_function:
## Example usage
if __name__ == "__main__":
    x_example = [1, 2, 3, 4]
    y_example = [4, 5, 6, 7]

    result = least_squares_function(x_example, y_example)
    print("w0:", result[0])
    print("w1:", result[1])
  1. Execute o script least_squares.py em seu terminal:
python3 least_squares.py

Você deverá ver a seguinte saída:

w0: 3.0
w1: 1.0

Esta saída confirma que a least_squares_function está funcionando conforme o esperado.

Parabéns! Você implementou com sucesso a função dos Mínimos Quadrados Ordinários em Python. Nas próximas etapas, você pode explorar como usar essa função em um problema de machine learning do mundo real.

Resumo

Parabéns! Você concluiu este projeto. Você pode praticar mais laboratórios no LabEx para aprimorar suas habilidades.

✨ Verificar Solução e Praticar✨ Verificar Solução e Praticar