NumPy mínimos cuadrados

Numpy Minimos Cuadrados



Hoy vamos a aprender sobre los mínimos cuadrados en ecuaciones lineales y cómo implementar el método de mínimos cuadrados para el mejor ajuste de la línea de regresión en los conjuntos de datos proporcionados. Pero antes de eso, obtengamos los conocimientos básicos de NumPy. NumPy es uno de los mejores paquetes matemáticos de Python que brinda servicios para arreglos y matrices multidimensionales junto con una amplia gama de operaciones numéricas complejas que se pueden realizar en estas matrices/arreglos.

Uno de los métodos de Python lstsq() se usa para encontrar la línea de regresión de la ecuación lineal conocida ax=b que mejor se ajusta a esta ecuación. Esto significa que debe determinar la línea que muestra correctamente la relación entre los puntos x e y si sus datos indican que existe. La línea entre ambos puntos se conoce como línea de regresión cuando se usa para encontrar el mínimo cuadrado a través de esta ecuación, ax=b.

Sintaxis:

Empecemos a aprender el estilo de implementación de la función linalg.lstsq(). Primero, escribimos el nombre de la biblioteca que usamos en Python, que es 'numpy'. Luego, concatenamos la función linalg() y concatenamos la función lstsq(). La función linalg() significa álgebra lineal. Siempre se usa con la función lstsq() porque es una expresión algebraica lineal. Después de esto, pasamos los argumentos entre paréntesis de función.









Parámetros:

Entendamos los parámetros de la función linalg.lstsq():



punto 1: Es la matriz de coeficientes.





punto2: Esta matriz o arreglo contiene variables dependientes.

segundo: El tipo de datos es float. La segunda proporción sirve como límite para valores singulares más pequeños de point_1. Si un valor singular es menor que el segundo por el elemento singular más grande de point_1, se considera cero al determinar el rango.



Valor de retorno:

A cambio, obtenemos el mínimo cuadrado de la variable conocida x en la ecuación ax=b.

Ejemplo 1:

Empecemos a implementar nuestro primer ejemplo de un método de mínimos cuadrados de la biblioteca de Python, NumPy. Primero, necesitamos un compilador de Python para que podamos codificar en él. Abre el compilador. También necesita instalar la biblioteca NumPy porque estamos usando una de las funciones de NumPy, que es la función lstsq(). Luego, debe importar el paquete NumPy en él. Primero, escriba la palabra clave 'importar' que le dice al compilador que vamos a importar el paquete. Luego, tenemos que escribir el nombre del paquete que usamos en la función que es 'numpy'. Y luego, también escribimos el nombre alternativo de NumPy 'np' porque muchos programadores usan este enfoque. Este es un buen enfoque de programación y ahorra tiempo.

Después de importar el paquete, comenzamos a escribir la línea de código real que queremos hacer. Primero imprimimos los mensajes para que el usuario pueda entender fácilmente lo que estamos haciendo en el ejemplo usando la instrucción print(). Creamos la matriz unidimensional 'A' usando la función array() y luego la imprimimos llamando a la instrucción print(). Luego, creamos otra matriz unidimensional 'B' usando la función array() y la imprimimos usando la función print().

importar entumecido como p.ej.

impresión ( 'Implementación del método de mínimos cuadrados en NumPy:' )

A = p.ej. formación ( [ 1 , 2 , 1 , 1 , 1 , 2 , 2 , 1 , 1 ] )

impresión ( ' \norte La matriz A es: ' , A )

B = p.ej. formación ( [ 4 , 3 , 5 , 4 , 2 , 3 , 6 , 3 , 2 ] )

impresión ( ' \norte La matriz B es: ' , B )

X = p.ej. linaza . lstsq ( p.ej. vstack ( [ A , p.ej. unos ( solamente ( A ) ) ] ) . T , B , segundo = Ninguna ) [ 0 ]

impresión ( ' \norte El mínimo cuadrado es: ' , X )

Después de la creación de los puntos A y B, implementamos la función lstsq(). Pero primero, usamos la función vstack() para apilar los elementos de 'A', secuencialmente. Luego, tomamos la transpuesta de la matriz 'A'. Luego, pasamos la función vstack() como primer argumento de la función lstsq(). El segundo argumento es la matriz 'B' y el tercer argumento es 'rcond' en el que establecemos el valor de rcond como 'ninguno'. Luego, almacenamos la función completa en otra matriz llamada 'x' que muestra que es la ecuación lineal variable conocida, ax=b. Después de esto, mostramos los resultados, por lo que usamos la instrucción print() para esto y le pasamos la matriz 'x'.

Ejemplo 2:

Ahora, comencemos a implementar otro ejemplo de mínimos cuadrados NumPy. Siempre importamos primero la biblioteca que usamos en el programa, que es NumPy. Primero, escribimos la palabra clave 'importar' para obtener el paquete en el programa. También escribimos el nombre del paquete que es 'numpy' y luego su alias, 'np'. Luego, llamamos al método print() para que podamos mostrar el mensaje de tabla de mínimos cuadrados para una mejor comprensión del usuario.

Luego, creamos el nombre de matriz 'x_axis' y almacenamos la matriz en él usando la función arange(). Luego, lo imprimimos usando el método print(). Luego, creamos otro nombre de matriz 'y_axis' y almacenamos la matriz que creamos en la siguiente ilustración.

Después de crear ambos arreglos, implementamos el método ones() en el arreglo x_axis y lo almacenamos en otro arreglo llamado “array_a”. Y luego, también imprimimos esta matriz. Creamos otra matriz llamada 'arg_reg_line' e implementamos una función linalg.lstsq() en ella. Luego, pasamos los parámetros a esta función para que podamos obtener los mínimos cuadrados entre dos matrices o puntos. El primer parámetro es que tomamos la transposición de array_a. El segundo parámetro es el segundo punto que es el eje y. Luego, tenemos 'rcond' que contiene el valor 'ninguno'. Luego mostramos la matriz usando el método print().

importar entumecido como p.ej.

impresión ( 'Implementación de la función linalg.lstsq(): ' )

eje_x = p.ej. naranja ( 0 , 10 )

impresión ( ' \norte Los valores del eje x son: ' , eje_x )

y_axis = [ 10.3 , 10.5 , 11 , 11.5 , 13.2 , 13.9 , 14 , 15.5 , 16.6 , 17 ]

impresión ( ' \norte Los valores del eje y son: ' , y_axis )

array_a = p.ej. formación ( [ eje_x , p.ej. unos ( 10 ) ] )

impresión ( ' \norte La matriz es: \norte ' , array_a )

arg_reg_line = p.ej. linaza . lstsq ( matriz_a. T , y_axis , segundo = Ninguna ) [ 0 ]

impresión ( ' \norte Los parámetros de la línea de regresión son: ' , arg_reg_line )

reg_line = arg_reg_line [ 0 ] * eje_x + arg_reg_line [ 1 ]

importar matplotlib. pyplot como por favor

por favor gráfico ( eje_x , reg_line , 'r-' )

por favor gráfico ( eje_x , y_axis , 'O' )

por favor título ( 'Línea de regresión lineal' )

por favor xlabel ( 'Eje X' )

por favor etiqueta ( 'Y-Axis' )

por favor mostrar ( )

Aquí está el resultado del ejemplo implementado anteriormente:

Importamos otro paquete de NumPy que es el paquete 'matplotlib' que se usa para trazar el gráfico. Luego, trazamos los valores del eje x y los valores del eje y. A continuación, establecemos el título y las etiquetas del gráfico. Por último, mostramos el gráfico usando el método show().

Aquí está el gráfico deseado del ejemplo dado:

Conclusión

En este artículo, aprendimos qué es el mínimo cuadrado y cómo obtenemos el linalg.lstsq() de la variable desconocida x usando la ecuación lineal ax=b. Usamos múltiples funciones de NumPy para encontrar los mínimos cuadrados e implementamos algunos ejemplos con explicaciones detalladas para una mejor comprensión del usuario.