Mínimos Cuadrados Ordinarios en Python

PythonPythonBeginner
Practicar Ahora

💡 Este tutorial está traducido por IA desde la versión en inglés. Para ver la versión original, puedes hacer clic aquí

Introducción

En este proyecto, aprenderás a implementar el método de Mínimos Cuadrados Ordinarios (OLS, por sus siglas en inglés) en Python. El OLS es una técnica fundamental de optimización matemática utilizada en el aprendizaje automático, particularmente en problemas de regresión lineal.

🎯 Tareas

En este proyecto, aprenderás:

  • Cómo implementar la función OLS para calcular la pendiente (w1) y el intercepto (w0) de una ecuación lineal basada en datos de muestra.
  • Cómo probar la función OLS con datos de muestra y verificar la corrección de los resultados.

🏆 Logros

Después de completar este proyecto, serás capaz de:

  • Derivar las fórmulas OLS para calcular la pendiente y el intercepto de una ecuación lineal.
  • Implementar la función OLS en Python sin utilizar ninguna librería externa.
  • Probar y validar la función OLS con datos de muestra.
  • Comprender la importancia del método OLS en el aprendizaje automático y en problemas de regresión lineal.

Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataScienceandMachineLearningGroup(["Data Science and Machine Learning"]) python(("Python")) -.-> python/BasicConceptsGroup(["Basic Concepts"]) python/BasicConceptsGroup -.-> python/variables_data_types("Variables and Data Types") python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/PythonStandardLibraryGroup -.-> python/math_random("Math and Random") python/DataScienceandMachineLearningGroup -.-> python/machine_learning("Machine Learning") subgraph Lab Skills python/variables_data_types -.-> lab-300247{{"Mínimos Cuadrados Ordinarios en Python"}} python/lists -.-> lab-300247{{"Mínimos Cuadrados Ordinarios en Python"}} python/function_definition -.-> lab-300247{{"Mínimos Cuadrados Ordinarios en Python"}} python/math_random -.-> lab-300247{{"Mínimos Cuadrados Ordinarios en Python"}} python/machine_learning -.-> lab-300247{{"Mínimos Cuadrados Ordinarios en Python"}} end

Implementar la función de mínimos cuadrados

En este paso, implementarás la función de Mínimos Cuadrados Ordinarios (OLS, por sus siglas en inglés) en Python. Sigue los pasos siguientes para completar este paso:

  1. Abre el archivo least_squares.py en tu editor de texto.

  2. Implementa la función least_squares_function de acuerdo con las especificaciones proporcionadas:

    • La función debe tomar dos parámetros de entrada: x (una lista de valores de muestra de x) y y (una lista de valores de muestra de y).
    • La función debe calcular la pendiente (w1) y el intercepto (w0) de la ecuación lineal utilizando las fórmulas OLS proporcionadas en la descripción del desafío.
    • La función debe redondear los valores calculados de w0 y w1 a dos lugares decimales antes de devolverlos.
    • La función debe devolver los valores de w0 y w1 en ese orden.

A continuación se muestra la implementación completada de least_squares_function:

def least_squares_function(x, y):
    """
    Parámetros:
    x -- lista de valores de muestra de x
    y -- lista de valores de muestra de y

    Devuelve:
    w0 -- parámetro de la ecuación lineal, redondeado a dos lugares decimales
    w1 -- parámetro de la ecuación lineal, redondeado a dos lugares decimales
    """

    n = len(x)

    ## Calcula las sumas necesarias para la pendiente (w1) y el intercepto (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 la pendiente (w1) y el intercepto (w0) utilizando las 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

    ## Redondea a dos lugares decimales
    w0 = round(w0, 2)
    w1 = round(w1, 2)

    return w0, w1
  1. Guarda el archivo least_squares.py.
✨ Revisar Solución y Practicar

Probar la función de mínimos cuadrados

En este paso, probarás la función least_squares_function que implementaste en el paso anterior.

  1. Puedes ver el siguiente código al final del archivo para probar la función least_squares_function:
## Uso de ejemplo
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. Ejecuta el script least_squares.py en tu terminal:
python3 least_squares.py

Deberías ver la siguiente salida:

w0: 3.0
w1: 1.0

Esta salida confirma que la función least_squares_function está funcionando como se esperaba.

¡Felicitaciones! Has implementado con éxito la función de Mínimos Cuadrados Ordinarios en Python. En los siguientes pasos, puedes explorar cómo utilizar esta función en un problema real de aprendizaje automático.

✨ Revisar Solución y Practicar

Resumen

¡Felicitaciones! Has completado este proyecto. Puedes practicar más laboratorios en LabEx para mejorar tus habilidades.