Python para el trading algorítmico - página 21

 

Backtesting.py - Curso completo en python



Backtesting.py - Curso completo en python

Durante el tutorial, el instructor analiza los aspectos positivos y negativos del uso de backtesting.py como biblioteca para realizar pruebas retrospectivas de estrategias comerciales. La biblioteca está diseñada para enfocarse únicamente en los elementos esenciales del backtesting, omitiendo funciones como una biblioteca de indicadores o la integración con corredores u otras plataformas. Esta simplicidad permite que la biblioteca sea liviana y fácil de usar. La documentación proporcionada es clara y fácil de entender, lo que permite a los usuarios comprender rápidamente los conceptos y la funcionalidad de la biblioteca.

Una ventaja significativa de backtesting.py es su velocidad, especialmente cuando se prueban estrategias individuales. La biblioteca está optimizada para el rendimiento, lo que permite a los usuarios ejecutar pruebas retroactivas de manera eficiente y obtener resultados de manera oportuna. Esta velocidad es beneficiosa cuando se itera a través de múltiples estrategias o combinaciones de parámetros para encontrar la configuración óptima.

Sin embargo, existen algunas limitaciones a tener en cuenta al usar backtesting.py. En primer lugar, la biblioteca no admite el comercio con múltiples activos. Está diseñado principalmente para probar estrategias en un solo activo o seguridad. Además, backtesting.py no brinda soporte para acciones fraccionarias, lo que puede ser un inconveniente para los usuarios interesados en operar con tamaños de posición más pequeños.

A pesar de estas limitaciones, backtesting.py sigue siendo una excelente opción para aquellos que desean centrarse exclusivamente en realizar pruebas retrospectivas de sus estrategias comerciales. Su simplicidad y naturaleza liviana hacen que sea fácil de entender e integrar en los flujos de trabajo existentes.

En el tutorial, el instructor demuestra el uso de backtesting.py siguiendo los pasos para crear un entorno virtual e instalar las dependencias necesarias. Al importar los componentes necesarios, como los datos de prueba de los precios de las acciones de Google de 2006 a 2013, el instructor prepara el escenario para realizar una prueba retrospectiva.

Luego, el instructor procede a crear una clase de estrategia donde se definen las dos funciones esenciales, __init__ y next. En la función __init__, el instructor calcula el valor del indicador del índice de fuerza relativa (RSI). La siguiente función se utiliza para evaluar los criterios de compra en función de los valores RSI.

A continuación, el instructor explica cómo implementar una estrategia de cruce simple utilizando valores precalculados que se introducen en la siguiente función. La biblioteca cruzada de backtesting.py se importa para comparar el RSI con los valores límite superior e inferior. Cuando el RSI supera cierto valor, se genera una señal de venta, y cuando cae por debajo de otro valor, se activa una señal de compra. El instructor define los valores límite superior e inferior y los asigna a la clase para acceder a la siguiente función.

Para probar la estrategia, el instructor configura una prueba retrospectiva proporcionando los datos, seleccionando la cantidad inicial de efectivo e imprimiendo las estadísticas. El instructor enfatiza la facilidad de trazar los resultados de las pruebas retrospectivas utilizando backtesting.py y destaca cómo los cuadros rojos y verdes en la pantalla indican los meses.

El instructor procede a proporcionar una descripción general del tablero backtesting.py, que ofrece una vista integral de la información comercial, ganancias y pérdidas, valor de la cartera e indicadores, entre otras métricas útiles. El instructor demuestra cómo se puede lograr la optimización de la estrategia utilizando backtesting.py definiendo diferentes rangos para los límites superior e inferior de la ventana RSI. El optimizador genera estadísticas como la relación de Sharpe y simula varias combinaciones para encontrar la función más valiosa. El instructor enfatiza que los usuarios pueden definir métricas personalizadas y aplicar restricciones para mejorar los resultados de optimización.

Además, el instructor explica cómo aplicar restricciones para seleccionar un subconjunto de valores utilizando funciones lambda que devuelven verdadero o falso en función de parámetros específicos. El video demuestra cómo optimizar la estrategia utilizando la función de optimización para maximizar la relación de Sharpe y cómo definir la función de optimización como una función normal de Python. El instructor también analiza la creación de una métrica para maximizar las ganancias y minimizar el tiempo de permanencia en el mercado.

En el tutorial, el instructor agrega un número mínimo de filtros de operaciones a la función de optimización para evitar el sobreajuste. Al incluir este filtro, la función de backtesting se ve obligada a mirar más allá de un solo período de oscilación, lo que aumenta las posibilidades de descubrir combinaciones de parámetros más rentables. Además, el instructor muestra cómo crear archivos HTML de los resultados de las pruebas retrospectivas, lo que puede ser útil cuando se ejecutan múltiples pruebas retrospectivas y es necesario realizar un seguimiento de las diferentes combinaciones de parámetros. El instructor también brinda orientación sobre cómo nombrar y organizar los archivos generados para evitar saturar el directorio de trabajo.

El tutorial explora aún más el uso de la función de optimización en backtesting.py para optimizar una estrategia de manera eficiente sin tener que probar todas las combinaciones posibles. Al establecer un número máximo de intentos, el programa realiza una búsqueda en cuadrícula aleatoria de las combinaciones, lo que reduce el tiempo dedicado a las pruebas retrospectivas y el riesgo de sobreajuste. El instructor demuestra cómo generar mapas de calor para visualizar los efectos de diferentes valores en la estrategia variando los límites superior e inferior. Se utiliza un grupo de pandas por declaración para agrupar las columnas por los límites superior e inferior, y la media se calcula para obtener valores promedio para cada combinación.

El orador explica cómo la función en backtesting.py encuentra todas las combinaciones únicas de las columnas especificadas, como los límites superior e inferior. Luego, estas combinaciones se agrupan y se aplica una función de agregación, como la media. El resultado resultante es un mapa de calor que se puede trazar con el módulo Seaborn. El instructor demuestra la optimización de la proporción de Sharpe y el cambio del mapa de colores para el mapa de calor. Además, el instructor muestra cómo usar la función incorporada plot_heat_maps para trazar múltiples mapas de calor para más de dos parámetros.

El instructor demuestra cómo usar mapas de calor para la optimización de parámetros e implementar estrategias de marcos de tiempo múltiples usando la función de aplicación de remuestreo de la biblioteca backtesting.py. Los mapas de calor proporcionan una representación visual de cómo las variaciones en diferentes parámetros afectan las estrategias comerciales. Al combinar diferentes marcos de tiempo utilizando la función de aplicación de remuestreo, los comerciantes pueden crear estrategias más complejas que consideren diferentes condiciones de mercado.

El instructor explica cómo se pueden usar diferentes marcos de tiempo en una estrategia comercial utilizando la biblioteca backtesting.py. Mediante la reducción de la muestra y la aplicación de funciones, la biblioteca puede realizar el relleno hacia adelante y volver a indexar al marco de tiempo más pequeño, lo que facilita el análisis de diferentes marcos de tiempo. En el ejemplo proporcionado, la estrategia implica el uso de RSI diario y semanal para activar operaciones solo cuando se produce un cruce y el RSI está por encima o por debajo de cierto umbral. El instructor menciona que la estrategia se puede optimizar ajustando los parámetros y que la biblioteca admite experimentar con diferentes tipos de órdenes, como stop loss y take profit.

El presentador demuestra cómo iniciar una posición corta cuando el RSI cae por debajo del límite inferior y cerrar cualquier posición corta al comprar. De manera similar, el presentador demuestra que cuando el RSI supera el límite superior, vende cualquier posición larga e inicia una posición corta. Sin embargo, el presentador señala que no existe un código para evitar que el programa tome múltiples posiciones, lo que lleva al programa a perder el 80 por ciento del capital invertido. El presentador explica cómo solucionar este problema agregando una cláusula para iniciar una nueva operación solo si no hay una posición actual o si existe una posición larga/corta en la cartera.

El instructor demuestra cómo utilizar las órdenes stop-loss y take-profit en backtesting.py. Al establecer un stop-loss en un porcentaje específico por debajo del precio actual, la estrategia puede limitar las pérdidas en cada operación, mientras que establecer un nivel de obtención de beneficios permite salir de las operaciones con un determinado nivel de beneficio. El instructor también muestra cómo ajustar el parámetro de tamaño en el proceso de compra para asignar un porcentaje específico de los fondos disponibles a cada operación. Si bien hay algunos problemas con las tácticas de venta en el ejemplo, el video brinda información útil sobre el uso de backtesting.py para crear y probar estrategias comerciales.

El video analiza diferentes formas de implementar el tamaño de posición en backtesting. Un enfoque es comprar y vender una acción a la vez en lugar de un porcentaje del efectivo disponible. Este enfoque puede ser útil para estrategias que impliquen escalar a una posición o promediar el costo en dólares. El video demuestra la modificación de una estrategia cruzada a una estrategia basada en el indicador RSI. En esta estrategia modificada, las operaciones se ejecutan cuando el último valor RSI es menor que el límite inferior. El video también destaca que las operaciones se pueden extraer del backtest como un marco de datos de pandas, incluidas las fechas de entrada y salida y otras métricas importantes. Estos datos comerciales se pueden exportar a otras herramientas de visualización, como Excel u otras secuencias de comandos de Python, para su posterior análisis y examen.

El creador de backtesting.py presenta la función "barras desde", que es una poderosa herramienta para optimizar estrategias y evitar la necesidad de escribir numerosas declaraciones if para comparar datos de días anteriores. La función permite a los usuarios determinar el número de barras desde la última vez que se cumplió una condición comercial particular. Esta característica proporciona una forma conveniente de optimizar estrategias basadas en condiciones específicas basadas en el tiempo. Además, el creador enfatiza la naturaleza de código abierto de backtesting.py, alentando a los usuarios a personalizar la biblioteca de acuerdo con sus necesidades y preferencias específicas.

En conclusión, el tutorial sobre backtesting.py concluye con el instructor alentando a los espectadores a comunicarse con cualquier pregunta o inquietud. El instructor les desea suerte en sus esfuerzos de backtesting y les recuerda que se diviertan mientras exploran las posibilidades de backtesting y optimizan las estrategias comerciales utilizando backtesting.py. El instructor enfatiza la importancia de consultar la documentación de backtesting.py para obtener más detalles y descubrir funciones adicionales disponibles para construir y optimizar la infraestructura de backtesting.

En general, el tutorial proporciona una descripción general completa de backtesting.py, sus ventajas, limitaciones y diversas funciones. Guía a los usuarios a través del proceso de creación de un entorno de backtest, implementación de estrategias, optimización de parámetros, uso de mapas de calor para el análisis, incorporación de múltiples marcos de tiempo y aplicación de técnicas de dimensionamiento de posiciones. Al seguir el tutorial, los espectadores obtienen información valiosa y conocimientos prácticos que pueden ayudarlos a probar y refinar de manera efectiva sus estrategias comerciales utilizando backtesting.py.

  • 00:00:00 El instructor analiza los aspectos positivos y negativos de backtesting.py. La biblioteca se enfoca solo en lo esencial del backtesting y no incluye una biblioteca de indicadores o integración con corredores u otras plataformas. La documentación es sencilla y fácil de entender. Además, es muy rápido, especialmente cuando se prueban estrategias individuales. En el lado negativo, no permite negociar con múltiples activos o acciones fraccionarias. En general, la biblioteca es liviana y simple, lo que la convierte en una excelente opción para aquellos que buscan enfocarse únicamente en las pruebas retrospectivas. El instructor también recorre los pasos para crear un entorno virtual e instalar las dependencias necesarias para el tutorial.

  • 00:05:00 Vemos al autor de la biblioteca backtesting.py importar los componentes necesarios para ejecutar un backtest, como los datos de prueba para los precios de las acciones de Google de 2006 a 2013, y la creación de una clase de estrategia donde las dos funciones , init y next, están definidos. En init, calculamos el valor del indicador de RSI, y la siguiente función se usa para evaluar los criterios de compra, basados en el cálculo de valores para el RSI.

  • 00:10:00 El instructor analiza cómo implementar una estrategia de cruce simple utilizando valores precalculados que se introducirán el próximo año. Importan la biblioteca cruzada de backtesting.py para comparar el RSI con los valores límite superior e inferior. Cuando el RSI supera cierto valor, vende, y cuando baja, compra. También definen valores de límite superior e inferior y los asignan a la clase para acceder a ellos en la función. Luego, el instructor establece una prueba retrospectiva para la estrategia y proporciona los datos, selecciona la cantidad de efectivo e imprime las estadísticas. Explican cómo se puede trazar fácilmente el backtesting y cómo los cuadros rojos y verdes en la pantalla indican los meses.

  • 00:15:00 El orador brinda una descripción general del tablero que se puede usar para visualizar los resultados de backtesting usando backtesting.py. El tablero proporciona información sobre transacciones, ganancias y pérdidas, valor de la cartera e indicadores, entre otras cosas. El orador también demuestra cómo se puede lograr la optimización de la estrategia utilizando backtesting.py definiendo diferentes rangos de valores para los límites superior e inferior y la ventana RSI. El optimizador genera estadísticas como la relación de Sharpe y simula varias combinaciones para encontrar la función de mayor valor. El orador señala que los usuarios pueden definir métricas personalizadas para optimizar y aplicar restricciones para generar mejores resultados de optimización.

  • 00:20:00 El instructor explica cómo aplicar restricciones para seleccionar un subconjunto de valores y crear funciones lambda que devuelvan verdadero o falso según cualquier parámetro. El video demuestra cómo optimizar la estrategia, cómo usar la función de optimización para maximizar la proporción nítida y cómo definir la función de optimización como una función normal de Python. El instructor también analiza cómo crear una métrica que descubra cómo ganar la mayor cantidad de dinero mientras permanece en el mercado por la menor cantidad de tiempo.

  • 00:25:00 El instructor explica cómo agregar un número mínimo de filtro de operaciones a la función de optimización para evitar el sobreajuste. Al agregar este filtro, la función de backtesting se ve obligada a mirar más allá de un solo período de oscilación, lo que aumenta las posibilidades de descubrir combinaciones de parámetros más rentables. El instructor también muestra cómo crear archivos HTML de los resultados de las pruebas retrospectivas, que pueden ser útiles cuando se ejecutan varias pruebas retrospectivas y es necesario realizar un seguimiento de las diferentes combinaciones de parámetros utilizadas. Por último, el instructor analiza cómo nombrar y organizar los archivos generados para evitar obstruir el directorio de trabajo.

  • 00:30:00 El instructor explica cómo usar la función de optimización en backtesting.py para optimizar una estrategia rápidamente sin tener que realizar todas las combinaciones posibles. Al establecer un número máximo de intentos, el programa realiza una búsqueda en cuadrícula aleatoria de las combinaciones, lo que reduce el tiempo dedicado a las pruebas retrospectivas y el riesgo de sobreajuste. El instructor también demuestra cómo generar mapas de calor para visualizar los diferentes valores y sus efectos en la estrategia al variar los límites superior e inferior. Se utiliza un grupo de pandas por declaración para agrupar las columnas por los límites superior e inferior, y se toma la media para calcular los valores promedio para cada combinación.

  • 00:35:00 El orador explica cómo la función encuentra todas las combinaciones únicas de las columnas mencionadas, como los límites superior e inferior. Luego, la función agrupa estas combinaciones y aplica una función de agregación, en este caso, la media. El resultado resultante es un mapa de calor que se puede trazar con el módulo Seaborn. El orador demuestra cómo optimizar la relación de Sharpe y cambiar el mapa de colores para el mapa de calor. Finalmente, el orador muestra cómo usar una función incorporada, plot_heat_maps, para trazar múltiples mapas de calor para más de dos parámetros.

  • 00:40:00 El instructor demuestra cómo usar mapas de calor para la optimización de parámetros y cómo implementar estrategias de marcos de tiempo múltiples usando la función de aplicación de remuestreo de la biblioteca de backtesting. Mediante el uso de mapas de calor, los usuarios pueden visualizar cómo las variaciones en diferentes parámetros afectan sus estrategias comerciales. La función de aplicación de remuestreo permite a los usuarios volver a muestrear datos en diferentes marcos de tiempo, como semanales y diarios, para usarlos juntos en una estrategia de marco de tiempo múltiple. Al combinar diferentes marcos de tiempo, los comerciantes pueden crear estrategias más complejas que tengan en cuenta las diferentes condiciones del mercado.

  • 00:45:00 El instructor explica cómo usar diferentes marcos de tiempo en una estrategia comercial usando la biblioteca backtesting.py. Al reducir el muestreo y aplicar funciones, la biblioteca puede realizar el relleno hacia adelante y volver a indexar al marco de tiempo más pequeño, lo que facilita el análisis de diferentes marcos de tiempo. La estrategia en este ejemplo implica el uso de RSI diario y semanal para activar operaciones solo cuando se produce un cruce y el RSI está por encima o por debajo de cierto umbral. La estrategia podría optimizarse ajustando los parámetros, y la biblioteca podría usarse para experimentar con diferentes tipos de órdenes, como stop loss y take profit.

  • 00:50:00 El presentador demuestra cómo iniciar una posición corta cuando el RSI cae por debajo del límite inferior y luego cierra cualquier posición corta al comprar. De manera similar, demuestra que cuando el RSI supera el límite superior y vende posiciones largas, el programa también inicia una posición corta. Sin embargo, no existe ningún código que impida que el programa tome múltiples posiciones, lo que lleva al programa a perder el 80 por ciento del capital invertido. El presentador explica cómo solucionar esto agregando una cláusula para iniciar una nueva operación solo si no hay una posición actual o si existe una posición larga/corta en la cartera.

  • 00:55:00 El instructor demuestra cómo utilizar las órdenes stop-loss y take-profit en backtesting.py. Al establecer el stop-loss en un porcentaje específico por debajo del precio actual, la estrategia puede evitar perder más de una cierta cantidad en cada operación, mientras que establecer el take-profit permite salir de las operaciones con un cierto nivel de beneficio. El instructor también muestra cómo ajustar el parámetro de tamaño en el proceso de compra para asignar un porcentaje específico de los fondos disponibles a cada operación. Si bien hay algunos problemas con las tácticas de venta en este ejemplo, el video brinda información útil sobre el uso de backtesting.py para crear y probar estrategias comerciales.

  • 01:00:00 El video analiza diferentes formas de implementar el tamaño de posición en backtesting. Una forma es comprar y vender una acción a la vez en lugar de un porcentaje del efectivo disponible, lo que puede ser útil para ascender a una posición o promediar el costo en dólares. El video demuestra la modificación de una estrategia cruzada a una estrategia basada en el indicador RSI, que compra cuando el último valor RSI es más pequeño que la banda inferior. El video también muestra que las transacciones se pueden extraer del backtest como un marco de datos de pandas, incluidas las fechas de entrada y salida y otras métricas importantes. Las transacciones se pueden exportar a otras herramientas de visualización, como Excel u otros scripts de Python.

  • 01:05:00 El creador presenta la función "barras desde" en backtesting.py, que se puede usar para determinar el número de barras desde que se cumplió por última vez una condición comercial en particular. Esta función puede ser una excelente herramienta para optimizar estrategias y evitar la necesidad de escribir muchas sentencias if para comparar los datos de los días anteriores. El creador usa el ejemplo de vender solo cuando el rsi diario está por encima del límite superior durante tres días consecutivos. Además, analiza cómo extraer datos comerciales sin procesar para un análisis más detallado y cómo la naturaleza de código abierto de backtesting.py facilita a los usuarios personalizar la biblioteca para sus necesidades específicas. La conclusión del tutorial invita a los alumnos a explorar la documentación de backtesting.py para descubrir más detalles y características disponibles para que construyan y optimicen su infraestructura de backtesting.

  • 01:10:00 El orador concluye el curso sobre backtesting.py alentando a los espectadores a comunicarse con él si tienen preguntas o inquietudes. También les desea suerte en sus esfuerzos de backtesting y les recuerda que se diviertan.
Backtesting.py - Full course in python
Backtesting.py - Full course in python
  • 2022.04.26
  • www.youtube.com
A full course covering all you need to know about the backtesting.py python library. Backtesting.py is a lightweight backtesting framework in the style of Ba...
 

Haga una prueba retrospectiva de su estrategia de costo promedio en dólares fácilmente en Python



Haga una prueba retrospectiva de su estrategia de costo promedio en dólares fácilmente en Python

En los próximos 20 minutos, implementaremos una estrategia de promedio de costos en dólares en Python. Esta estrategia le permitirá evaluar el desempeño del costo promedio en dólares para un activo o índice específico durante un cierto período de tiempo. Usaremos una herramienta llamada backtesting.py para implementar esta estrategia. Backtesting.py es un marco fácil de usar en Python que es menos intimidante que otras bibliotecas como Vectorbt o Backtrader. Si eres nuevo en Python, esta será una excelente opción para ti.

La estrategia de promedio de costo en dólares que implementaremos es relativamente simple, pero también le mostraré cómo extenderla. Nuestra estrategia consiste en comprar una cantidad fija en dólares de un activo en particular todos los lunes o martes y repetir este proceso hasta que nos quedemos sin datos. Para comenzar, abra una terminal y configure un nuevo entorno virtual para garantizar un entorno limpio para nuestra implementación. Una vez que haya configurado el entorno virtual, instale el paquete de backtesting usando pip:

backtesting de instalación de pip

Después de instalar el paquete, podemos continuar con nuestro archivo de Python. Tendremos que importar algunos módulos y datos necesarios. Desde backtesting, importe los módulos de backtest y estrategia. Además, importe algunos datos ficticios de backtesting.test, específicamente los datos de Google. También necesitaremos el módulo pandas para la manipulación de datos.

Ahora, definamos nuestra clase de estrategia. Cree una clase llamada DCA (promedio de costo en dólares) que herede de la clase de estrategia. Dentro de esta clase, estableceremos una variable de clase llamada cantidad_para_invertir, que representa la cantidad fija en dólares que queremos invertir. Inicialmente, configúrelo en 10.

A continuación, necesitamos definir dos funciones dentro de esta clase: __init__ y next. La función __init__ se llama durante la inicialización y se usa para calcular previamente cualquier valor que podamos necesitar más adelante. En nuestro caso, crearemos un indicador que nos de el día de la semana. Para ello, utilizaremos el método self.indicator proporcionado por backtesting.py. Podemos definir nuestro indicador como self.day_of_week = self.indicator(lambda x: x, self.data.close.s.dt.dayofweek). Este indicador devolverá una matriz de los valores del día de la semana (0-6, donde el lunes es 0 y el domingo es 6) para nuestros datos.

Ahora, pasemos a la siguiente función, que es donde implementamos nuestra lógica comercial. Esta función se llama para cada barra de datos y nos permite tomar decisiones en base a los datos actuales. En nuestro caso, comprobaremos si el día de la semana es igual a 1 (martes) usando if self.day_of_week == 1:. Si es martes, activaremos una señal de compra. Para ejecutar la orden de compra, utilizaremos la función self.buy proporcionada por backtesting.py. Podemos calcular el tamaño de la orden de compra dividiendo la cantidad a invertir por el precio de cierre actual del activo. Para asegurarnos de comprar un número entero de acciones, podemos usar math.floor para redondear el resultado.

Para manejar acciones fraccionarias, podemos dividir las acciones multiplicando el activo por un número pequeño, como 10 ** -6. Esto dividirá las acciones en microacciones, que luego se pueden volver a convertir a la cantidad real de acciones compradas dividiéndolas por el mismo número pequeño.

Finalmente, necesitamos ejecutar el backtest y extraer las estadísticas. Para hacer esto, podemos usar bt.run() y asignar el resultado a una variable llamada stats. También podemos graficar los resultados usando bt.plot().

Como aún no hemos implementado la lógica de venta, el gráfico aparece como una línea continua sin puntos de venta. Lo arreglaremos pronto. Pero antes de hacerlo, extraigamos algunas estadísticas de los resultados del backtest.

Para hacer esto, usaremos la variable stats que definimos anteriormente. Podemos imprimir varias estadísticas como el rendimiento total, el rendimiento anualizado, la reducción máxima y más.

Siéntase libre de agregar más estadísticas si está interesado en explorar métricas de rendimiento adicionales.

Ahora pasemos a implementar la lógica de venta. Dado que estamos usando una estrategia de promedio de costo en dólares, venderemos la misma cantidad fija en dólares cada semana. En nuestro caso, venderemos los viernes.

Aquí, verificamos si el día de la semana es 4 (viernes) usando el indicador day_of_week que creamos anteriormente. Si es viernes, vendemos la misma cantidad de dólares que compramos antes dividiendo la cantidad a invertir por el precio de cierre actual. Esto asegura que vendamos la cantidad adecuada de acciones para igualar el monto de nuestra inversión.

Ahora, cuando ejecutemos el backtest, deberíamos ver puntos de venta en el gráfico, indicando los viernes en los que vendemos nuestra posición.

Siéntase libre de experimentar con diferentes variaciones de esta estrategia, como ajustar los días de compra/venta o implementar condiciones adicionales basadas en los movimientos de precios. Este marco le permite ampliar y personalizar fácilmente su estrategia de acuerdo con sus requisitos.

Recuerde ajustar la variable cantidad a invertir y explorar diferentes datos de activos para ver cómo funciona la estrategia.

Espero que esto lo ayude a implementar y explorar la estrategia de promedio de costo en dólares utilizando la biblioteca backtesting.py en Python. ¡Déjame saber si tienes más preguntas!

Backtest Your Dollar Cost Average Strategy easily in Python
Backtest Your Dollar Cost Average Strategy easily in Python
  • 2022.06.29
  • www.youtube.com
We backtest a simple dollar cost averaging strategy in backtesting.py. Backtesting.py is a super easy to use framework for beginners to python or to backtest...
 

Indicadores personalizados en Backtesting.py - Python Deep Dive



Indicadores personalizados en Backtesting.py - Python Deep Dive

En este video, vamos a explorar el proceso de creación de indicadores personalizados en la biblioteca backtesting.py. Esta característica nos permitirá probar fácilmente cualquier estrategia comercial mediante la creación de indicadores y la traducción de las funciones de Python a un formato compatible con el ecosistema backtesting.py.

Antes de profundizar en los detalles de la creación de indicadores, se recomienda consultar un curso disponible gratuitamente en YouTube que cubre la mayoría de los aspectos de backtesting.py. Este curso proporcionará una comprensión de alto nivel de la biblioteca, lo que será beneficioso al explorar la creación de indicadores en este video.

En este video, nos enfocaremos en tres ejemplos diferentes para cubrir varias ideas de indicadores. El primer ejemplo implica el uso de señales generadas en un programa Python externo e integrarlas en backtesting.py. Este enfoque es útil cuando ya tiene señales de compra y venta de una fuente externa y desea incorporarlas en su proceso de backtesting.

El segundo ejemplo demostrará el uso de la biblioteca pandas-ta para devolver múltiples valores para cada indicador. Específicamente, trabajaremos con el indicador de Bandas de Bollinger y mostraremos cómo devolver un marco de datos que contenga las bandas inferior y superior, en lugar de solo una matriz numpy simple. Este ejemplo resaltará la versatilidad de crear indicadores con múltiples valores.

Finalmente, codificaremos a mano una estrategia de impulso para demostrar cómo se pueden crear indicadores personalizados utilizando Python puro. Este ejemplo mostrará la flexibilidad de crear indicadores utilizando la programación de Python, lo que permite posibilidades ilimitadas en el diseño de indicadores.

Para seguir con los ejemplos, asegúrese de tener instaladas las bibliotecas necesarias, incluidas backtesting, pandas y pandas-ta. Una vez que haya instalado estas bibliotecas, cree un archivo de Python para los ejemplos de código.

La parte inicial del código establece el modelo necesario cuando se usa backtesting.py. Importa las clases requeridas, "backtest" y "estrategia", e importa datos de muestra para las acciones de Google desde backtesting.py. Los datos importados son un marco de datos de pandas que contiene datos de precios diarios, incluidos apertura, máximo, mínimo, cierre y volumen, con un índice de fecha y hora.

Para el primer ejemplo, asumimos que ya generó algunas señales en un programa externo y desea transferirlas a backtesting.py. Para demostrar esto, creamos señales aleatorias usando numpy y las agregamos al marco de datos de Google. Estas señales podrían representar cualquier indicador que haya programado en Python, donde -1 indica una señal de venta, 0 indica que no hay acción y 1 representa una señal de compra.

A continuación, definimos una clase de estrategia llamada "SignalStrategy" que hereda de la clase "Strategy" importada anteriormente. Esta clase será la encargada de implementar la lógica de compra y venta en base a las señales. La clase incluye la función de inicialización " init " y la función "siguiente".

En la función " init ", no tenemos mucho que hacer en este ejemplo en particular, pero es una buena práctica incluirla. La función "siguiente" es donde se implementará la lógica de compra y venta en función de las señales.

Para ejecutar el backtest, creamos una instancia de la clase backtest, pasando el marco de datos de Google y la clase "SignalStrategy". También establecemos el valor de caché en 10.000. Luego, ejecutamos el backtest y almacenamos los resultados en la variable "stats". Finalmente, imprimimos las estadísticas para ver el rendimiento de la estrategia.

Ejecutar el código en este punto no generará ningún intercambio porque aún no hemos implementado la lógica de compra y venta. Sin embargo, podemos acceder a los valores de la señal usando "self.data.signal" dentro de la función "siguiente", que nos dará el último valor de la señal.

Para implementar la lógica de compra y venta, verificamos el valor de la señal actual y la posición actual. Si la señal es 1 (señal de compra) y no existe una posición, ejecutamos una orden de compra usando "self.buy". Si la señal es -1 (señal de venta) y existe una posición larga, ejecutamos una orden de venta usando "self.sell".

  1. Estrategia de señal externa:

    • Genere señales aleatorias u obtenga señales de un programa externo.
    • Defina una clase SignalStrategy que herede de Strategy.
    • Implemente el siguiente método para ejecutar órdenes de compra o venta en función de las señales.
    • Utilice los métodos self.buy() y self.sell() para ejecutar las órdenes.
    • Cree una instancia de un objeto Backtest con los datos, la estrategia, el capital inicial y la comisión.
    • Ejecute el backtest usando bt.run() y analice los resultados.

  2. Uso de pandas-ta para indicadores personalizados:

    • Importe la biblioteca pandas_ta (instálela con pip install pandas_ta).
    • Use la función de indicador deseada de pandas_ta para calcular el indicador.
    • Agregue el indicador calculado al marco de datos.
    • Defina una clase de estrategia que herede de Strategy.
    • Implemente el siguiente método para ejecutar órdenes de compra o venta en función de los valores del indicador.
    • Utilice las condiciones deseadas para determinar cuándo comprar o vender.
    • Cree una instancia de un objeto Backtest con los datos, la estrategia, el capital inicial y la comisión.
    • Ejecute el backtest usando bt.run() y analice los resultados.

Recuerde reemplazar los marcadores de posición como GOOG con sus datos reales y personalice las estrategias de acuerdo con sus requisitos específicos.

Custom Indicators In Backtesting.py - Python Deep Dive
Custom Indicators In Backtesting.py - Python Deep Dive
  • 2022.07.30
  • www.youtube.com
Learn how to make your own custom indicators in backtesting.py. We show how you can integrate libraries like pandas-ta, ta-lib, etc. as well as write your ow...
 

Stop Loss en Backtesting.py



Stop Loss en Backtesting.py

En este video, vamos a explorar el concepto de stop loss en la biblioteca "backtesting.py". El video cubrirá tres ejemplos de complejidad y profundidad crecientes, brindando una comprensión integral de las pérdidas limitadas en "backtesting.py". El presentador asume algún conocimiento previo de "backtesting.py" y recomienda ver un curso gratuito en YouTube para principiantes antes de sumergirse en este tema avanzado.

Para comenzar, abra una terminal y asegúrese de que "backtesting.py" esté instalado ejecutando el comando "pip install backtesting". Esto instalará todos los paquetes necesarios. Luego, cree un nuevo archivo de Python, llamémoslo "example.py", e importe los módulos requeridos: "backtest" y "strategy" de "backtesting", y "googledale" de "backtesting.test". "googledale" es un conjunto de datos de prueba que viene con "backtesting.py".

A continuación, defina la clase de estrategia creando una clase llamada "Strats" que herede de la clase de "estrategia". Implemente las dos funciones requeridas: " init " y "next". En este punto, estamos listos para ejecutar nuestro backtest. Inicialice un nuevo objeto de backtest, "bt", utilizando la función "backtest". Pase los datos de "googledale" y la clase de estrategia que acabamos de definir. Establezca el valor en efectivo inicial en $ 10,000. Finalmente, ejecute el backtest usando el método "bt.run" y trace los resultados usando "bt.plot".

Inicialmente, la clase de estrategia no realiza ninguna acción comercial. Para demostrar un ejemplo simple de stop-loss, agregaremos una lógica básica de compra y venta. Si tenemos una posición existente, no tomaremos ninguna acción. Sin embargo, si no tenemos una posición, colocaremos una orden de compra utilizando el método "self.to_buy", especificando el tamaño de la posición (por ejemplo, 1 acción). Además, agregaremos un stop loss y una toma de ganancias. El stop loss se establecerá en 10 unidades por debajo del precio de cierre actual, mientras que el take profit se establecerá en 20 unidades por encima del precio de cierre actual.

Ejecutar el backtest generará una gran cantidad de operaciones. Tan pronto como se cierre una operación, se abrirá una nueva operación en la barra siguiente a menos que se active el stop loss o el take profit. Es importante entender cómo "backtesting.py" maneja las pérdidas y las ganancias. En los casos en que tanto el stop loss como el take profit se activan en la misma barra, la biblioteca asume que el stop loss se activa primero. Este comportamiento puede generar resultados inesperados, especialmente cuando se trata de datos diarios que pueden tener brechas significativas.

Para gestionar stop loss de forma más eficaz, podemos ampliar la clase de estrategia y utilizar la "estrategia de seguimiento" proporcionada por "backtesting.py". Importe los módulos necesarios, incluidos "cruce" y "estrategia de seguimiento" desde "backtesting.lib". En la nueva clase de estrategia, herede de la "estrategia final" en lugar de la clase de "estrategia" base. Anule la función " init " para llamar a la función " init " de la clase principal usando "super". Luego, use la función "set_trailing_stop_loss" de la clase principal para establecer un valor de stop loss dinámico.

En la siguiente sección del video, el presentador explica con más detalle cómo funciona la "estrategia de rastreo" y cómo personalizarla para requisitos específicos. Sin embargo, en esta sección, la atención se centra en utilizar la "estrategia de rastreo" en nuestro código. Al llamar a la función " init " de la clase principal y usar la función "set_trailing_stop_loss", podemos aprovechar la funcionalidad de trailing stop loss en nuestro backtest.

En general, el video proporciona una explicación paso a paso de la implementación de stop loss en "backtesting.py". Cubre ejemplos simples, así como conceptos más avanzados, como rastrearlo en un valor de 10, lo que significa que nuestro límite de pérdida seguirá el precio en 10 unidades.

Ahora que hemos configurado nuestra función de inicialización, pasemos a la siguiente función. Aquí es donde se implementará la mayor parte de nuestra lógica comercial. Dentro de la siguiente función, primero llamaremos a la siguiente función de la clase principal usando super().next(). Esto asegura que la funcionalidad de trailing stop loss se ejecute junto con la otra lógica comercial.

A continuación, agregaremos un código para ajustar nuestro stop loss dinámico. Usaremos una declaración condicional para verificar si tenemos una posición abierta (self.position no es None). Si tenemos una posición, actualizaremos el stop loss dinámico utilizando el método update_trailing_sl proporcionado por la clase trailing_strategy. Este método toma el precio actual como argumento y actualiza el stop loss en consecuencia.

Stop Losses in Backtesting.py
Stop Losses in Backtesting.py
  • 2022.08.19
  • www.youtube.com
In this video we go in-depth on how to use stop-losses in backtesting.py. We cover both static and trailing stop losses and how backtesting.py executes them ...
 

Validación de backtest en Python (engañado por la aleatoriedad)



Validación de backtest en Python (engañado por la aleatoriedad)

Todos hemos estado en esa situación en la que creamos una estrategia comercial, la probamos y, cuando finalmente la implementamos, no funciona como se esperaba. Una de las principales razones de esta decepción es adaptar la estrategia a un conjunto específico de datos históricos utilizados en el backtest. En este video, demostraré una estrategia para combatir el sobreajuste y garantizar que no confíes en estrategias que carezcan de una base sólida o te dejes engañar por la aleatoriedad.

Vamos a sumergirnos en un ejemplo específico. Realicé una prueba retrospectiva en una estrategia simple basada en RSI utilizando Bitcoin como activo. La estrategia implica vender cuando el RSI es alto y comprar cuando el RSI es bajo. Los resultados del backtest mostraron un rendimiento modesto de alrededor del tres por ciento, a pesar de que Bitcoin experimentó una disminución del 15 por ciento en el período de prueba. A primera vista, puede parecer una estrategia prometedora para los mercados bajistas.

Sin embargo, es fundamental examinar el rendimiento de la estrategia en varios períodos de tiempo para determinar si identifica oportunidades rentables de manera consistente o si simplemente tuvo suerte con los valores de los parámetros elegidos durante el backtest. Para lograr esto, realicé múltiples pruebas retrospectivas de 30 días, cubriendo diferentes períodos a lo largo del año.

Al trazar la distribución de los rendimientos de estas pruebas retrospectivas, podemos obtener información sobre la efectividad de la estrategia. El gráfico muestra cada ventana de 30 días como un punto, que representa los rendimientos obtenidos durante ese período. El diagrama de caja adjunto muestra el rendimiento medio, los cuartiles y los valores máximo y mínimo. Al analizar el gráfico, se hace evidente que el rendimiento medio durante un período de 30 días es -8,5 por ciento. Además, la distribución de los rendimientos parece ser aleatoria, similar a los resultados que cabría esperar de un conjunto generador de números aleatorios entre -35 y 15. Estos resultados indican claramente que la estrategia no es única ni eficaz más allá de los datos históricos específicos utilizados en el prueba retrospectiva

Para validar la estrategia y mitigar la influencia del sobreajuste, debemos realizar pruebas retrospectivas en una gama más amplia de datos. Para este propósito, descargué varios archivos de datos que cubrían todo el año, desde principios de 2022 hasta finales de 2022. Combiné estos archivos en un CSV maestro que contenía datos de velas de un minuto para todo el período.

En el código de validación, hice algunos ajustes menores para acomodar el conjunto de datos extendido. La estrategia central sigue siendo la misma, centrándose en la lógica comercial basada en RSI. Sin embargo, introduje un ciclo para realizar pruebas retrospectivas en ventanas de 30 días en todos los datos. Cada backtest calcula los rendimientos, que luego se agregan a una lista para su posterior análisis.

Al generar un diagrama de caja utilizando los rendimientos recopilados, podemos visualizar la distribución del rendimiento de la estrategia en varias ventanas de 30 días. Este gráfico revela la variabilidad de los rendimientos y proporciona una imagen más clara de cómo funciona la estrategia en diferentes intervalos de tiempo. En este ejemplo específico, la gráfica indica rendimientos predominantemente negativos para casi todos los meses, lo que sugiere que la estrategia carece de una rentabilidad constante.

Estas técnicas para validar y verificar estrategias comerciales se pueden aplicar a cualquier marco de backtesting de su elección. El código proporcionado utiliza la biblioteca backtesting.py, pero puede adaptarlo a otras bibliotecas como vectorbt o backtrader. La idea clave es asegurarse de que su estrategia demuestre solidez en diversos marcos de tiempo y no sea simplemente un producto de sobreajuste a un conjunto específico de datos históricos.

Al seguir estos pasos de validación, puede reducir el riesgo de confiar en estrategias que no se basan en la realidad o de ser víctima de resultados aleatorios. Es esencial ir más allá del rendimiento del backtest y considerar la efectividad de la estrategia en diferentes condiciones de mercado para tomar decisiones informadas al implementar estrategias comerciales.

Después de analizar los resultados del backtest y la distribución de los rendimientos en diferentes períodos de tiempo, descubrimos que el rendimiento de la estrategia era esencialmente aleatorio. No proporcionó una rentabilidad constante fuera del período de tiempo específico utilizado para el backtesting. Esto indica que la estrategia sufría de sobreajuste y carecía de robustez.

Para evitar caer en la trampa del sobreajuste y aumentar las posibilidades de desarrollar estrategias comerciales confiables, aquí hay algunas recomendaciones:

  1. Use datos suficientes y diversos: asegúrese de que su backtest incorpore una cantidad significativa de datos históricos para cubrir diversas condiciones del mercado. Esto ayuda a capturar una gama más amplia de escenarios y reduce la probabilidad de sobreajuste a condiciones de mercado específicas.

  2. Valide en múltiples marcos de tiempo: en lugar de confiar únicamente en un solo período de tiempo para realizar pruebas retrospectivas, pruebe su estrategia en diferentes marcos de tiempo. Esto proporciona información sobre su rendimiento en diversas condiciones de mercado y ayuda a identificar si la estrategia tiene una rentabilidad constante o si los resultados observados se debieron a la aleatoriedad.

  3. Implemente pruebas fuera de muestra: reserve una parte de sus datos históricos para pruebas fuera de muestra. Después de realizar su prueba retrospectiva principal en el conjunto de datos inicial, valide la estrategia en los datos reservados que el modelo no ha visto antes. Esto ayuda a evaluar la capacidad de la estrategia para adaptarse a condiciones de mercado invisibles y proporciona una evaluación más realista de su desempeño.

  4. Tenga cuidado con el ajuste de curvas: evite la optimización excesiva o el ajuste de parámetros para que la estrategia se ajuste demasiado a los datos históricos. Las estrategias que están demasiado adaptadas a patrones de datos específicos tienen más probabilidades de fallar en el comercio del mundo real. Apunte a la solidez en lugar de perseguir un rendimiento excepcional solo con datos históricos.

  5. Considere el análisis Walk-Forward: en lugar de confiar únicamente en backtest estáticos, considere usar el análisis Walk-Forward. Esto implica volver a optimizar y probar periódicamente su estrategia a medida que haya nuevos datos disponibles. Le permite adaptar y afinar su estrategia continuamente, mejorando su desempeño en condiciones cambiantes del mercado.

  6. Utilice pruebas de significación estadística: aplique pruebas estadísticas para evaluar la importancia del rendimiento de su estrategia. Esto ayuda a determinar si los resultados observados son estadísticamente significativos o simplemente se deben al azar. Las pruebas estadísticas comunes utilizadas en las pruebas retrospectivas incluyen pruebas t, pruebas de arranque y simulaciones de Monte Carlo.

Al seguir estas pautas, puede reducir el riesgo de desarrollar estrategias que se ajusten demasiado a los datos históricos y aumentar la probabilidad de crear enfoques comerciales sólidos y confiables.

Recuerde, el objetivo es desarrollar estrategias comerciales que demuestren una rentabilidad constante en diferentes condiciones de mercado, en lugar de estrategias que simplemente funcionan bien con datos históricos.

Backtest Validation in Python (Fooled By Randomness)
Backtest Validation in Python (Fooled By Randomness)
  • 2022.09.14
  • www.youtube.com
In this video we go through a method that I've found helpful for validating my backtests before I go live with a strategy. Looking at the distribution of ret...
 

Una introducción rápida a Python para ingenieros de aprendizaje automático



Una introducción rápida a Python para ingenieros de aprendizaje automático

El instructor del curso comienza introduciendo el concepto de modelado predictivo y su importancia en la industria. El modelado predictivo se centra en el desarrollo de modelos que pueden hacer predicciones precisas, incluso si es posible que no brinden una explicación de por qué se hacen esas predicciones. El instructor enfatiza que el curso se enfocará específicamente en datos tabulares, como hojas de cálculo o bases de datos. El objetivo es guiar a los estudiantes para que pasen de ser desarrolladores interesados en el aprendizaje automático en Python a dominar el trabajo con nuevos conjuntos de datos, el desarrollo de modelos predictivos de extremo a extremo y el aprovechamiento de Python y la biblioteca SCIPy para tareas de aprendizaje automático.

Para empezar, el instructor ofrece un curso intensivo de sintaxis de Python. Cubren conceptos fundamentales como variables y asignaciones, aclarando la distinción entre el signo "igual" que se usa para la asignación y el signo "doble igual" que se usa para las comparaciones de igualdad. El instructor demuestra cómo usar Jupyter Notebook para la codificación de Python y brinda sugerencias para la navegación, como la creación de un nuevo cuaderno, el uso de alias para bibliotecas, la ejecución de celdas y la copia o el movimiento de celdas. También explican la función de guardado automático y el guardado manual de los cuadernos. Finalmente, el video toca brevemente cómo detener la ejecución del kernel.

Continuando, el instructor explica cómo usar la barra de herramientas en Jupyter Notebook para la navegación del motor Python y cómo anotar cuadernos usando Markdown. El video cubre declaraciones de control de flujo esenciales, incluidas las condiciones if-then-else, bucles for y bucles while. Estas declaraciones permiten la toma de decisiones y la repetición dentro del código de Python. Luego, el instructor presenta tres estructuras de datos cruciales para el aprendizaje automático: tuplas, listas y diccionarios. Estas estructuras de datos proporcionan formas eficientes de almacenar y manipular datos. Además, el video incluye un curso intensivo sobre NumPy, una biblioteca que permite operaciones numéricas en Python. Abarca la creación de matrices, el acceso a datos y la realización de operaciones aritméticas con matrices.

El video procede a discutir dos bibliotecas esenciales, Matplotlib y Pandas, que se usan comúnmente en el aprendizaje automático para el análisis y la visualización de datos. Matplotlib permite a los usuarios crear varios diagramas y gráficos, lo que facilita la visualización de datos. Pandas, por otro lado, proporciona estructuras de datos y funciones para la manipulación y el análisis de datos, particularmente a través de estructuras de series y marcos de datos. El video destaca la importancia de la función read_csv de Pandas para cargar archivos CSV, el formato más común en las aplicaciones de aprendizaje automático. También enfatiza la utilidad de las funciones de Pandas para resumir y trazar datos para obtener información y preparar datos para tareas de aprendizaje automático. Las estadísticas descriptivas en Python se mencionan como una herramienta crucial para comprender las características y la naturaleza de los datos.

El video se sumerge en técnicas específicas de visualización de datos que pueden ayudar al análisis de datos antes de aplicar técnicas de aprendizaje automático. Se presentan histogramas, diagramas de densidad y diagramas de caja como formas de observar la distribución de atributos e identificar posibles valores atípicos. Las matrices de correlación y las matrices de diagramas de dispersión se presentan como métodos para identificar relaciones entre pares de atributos. El video enfatiza la importancia de volver a escalar, estandarizar, normalizar y binarizar los datos como pasos de preprocesamiento necesarios para preparar los datos para los algoritmos de aprendizaje automático. El método de ajuste y transformación se explica como un enfoque común para el preprocesamiento de datos.

El siguiente tema discutido son las técnicas de preprocesamiento de datos en el aprendizaje automático. El video cubre la normalización y la estandarización como dos técnicas importantes. La normalización implica cambiar la escala de los atributos para que tengan la misma escala, mientras que la estandarización implica transformar los atributos para que tengan una media de cero y una desviación estándar de uno. También se explica la binarización, que establece el umbral de los datos para crear atributos binarios o valores nítidos. Se enfatiza la importancia de la selección de funciones, ya que las funciones irrelevantes o parcialmente irrelevantes pueden afectar negativamente el rendimiento del modelo. El video presenta la selección univariada como un enfoque estadístico para la selección de características y destaca el uso de métodos recursivos de eliminación de características y de importancia de características que utilizan conjuntos de árboles de decisión como bosques aleatorios o árboles adicionales. El análisis de componentes principales (PCA) también se analiza como una técnica de reducción de datos que puede comprimir el conjunto de datos en un número menor de dimensiones utilizando álgebra lineal.

El video enfatiza la importancia de los métodos de remuestreo para evaluar el rendimiento de los algoritmos de aprendizaje automático en datos ocultos. Advierte contra la evaluación de algoritmos en el mismo conjunto de datos utilizado para el entrenamiento, ya que puede provocar un sobreajuste y una mala generalización de los nuevos datos. Técnicas como conjuntos divididos de prueba de tren, validación cruzada de k-fold, validación cruzada de exclusión y divisiones de prueba aleatorias repetidas se explican como formas de obtener estimaciones confiables del rendimiento del algoritmo. El video concluye con una discusión de varias métricas de rendimiento para algoritmos de aprendizaje automático, como precisión de clasificación, pérdida logarítmica, área bajo la curva, matriz de confusión e informe de clasificación.

El video profundiza en las métricas de rendimiento utilizadas para evaluar las predicciones realizadas por los modelos de aprendizaje automático. Abarca la precisión de la clasificación, la pérdida de registros (para evaluar las probabilidades), el área bajo la curva característica operativa del receptor (ROC) (para problemas de clasificación binaria), la matriz de confusión (para evaluar la precisión del modelo con varias clases) y el informe de clasificación (que proporciona información de precisión). , recuerdo, puntaje F1 y soporte para cada clase). Además, el video explica tres métricas de regresión comunes: error absoluto medio, error cuadrático medio y R-cuadrado. Se muestran ejemplos prácticos para ilustrar cómo calcular estas métricas usando Python.

El orador presenta el concepto de verificación puntual para determinar qué algoritmos de aprendizaje automático funcionan bien para un problema específico. La comprobación puntual implica la evaluación de varios algoritmos y la comparación de sus actuaciones. El video demuestra la verificación puntual de seis modelos diferentes de aprendizaje automático, incluidos algoritmos lineales y no lineales, utilizando Python con la biblioteca scikit-learn. El ponente destaca que los resultados pueden variar debido a la naturaleza estocástica de los modelos. La sección concluye con una introducción a los modelos de aprendizaje automático de regresión, preparando a los espectadores para la próxima sección sobre la verificación puntual de esos modelos.

A continuación, el orador presenta modelos de aprendizaje automático lineales y no lineales utilizando el conjunto de datos de precios de la vivienda de Boston como ejemplo. Se emplea un arnés de prueba con validación cruzada de 10 veces para demostrar cómo verificar cada modelo, y el error cuadrático medio se usa como indicador de rendimiento (invertido debido a una peculiaridad en la función de puntuación de archivos cruzados). Se analiza el modelo de regresión lineal, asumiendo una distribución gaussiana para las variables de entrada y su relevancia para la variable de salida. También se explica la regresión de cresta, una modificación de la regresión lineal que minimiza la complejidad del modelo. El orador destaca la importancia de comprender la canalización o el proceso en lugar de quedar atrapado en la implementación del código específico en esta etapa.

El video explora el proceso de comprensión y visualización de variables de entrada para un problema de aprendizaje automático. Sugiere el uso de gráficos univariados, como gráficos de caja y bigotes e histogramas, para comprender la distribución de las variables de entrada. Para el análisis multivariado, los diagramas de dispersión pueden ayudar a identificar las relaciones estructurales entre las variables de entrada y revelar altas correlaciones entre pares de atributos específicos. El video también analiza el proceso de evaluación, utilizando un arnés de prueba con validación cruzada de 10 veces para evaluar el rendimiento del modelo. Se enfatiza la importancia de crear un conjunto de datos de validación para evaluar de forma independiente la precisión del mejor modelo. Se evalúan seis modelos diferentes de aprendizaje automático y se selecciona el más preciso para hacer predicciones. El informe de clasificación, la matriz de confusión y la estimación de precisión se utilizan para evaluar las predicciones. Finalmente, el video toca la regresión de regularización, destacando la construcción de modelos Lasso y Elastic Net para reducir la complejidad de los modelos de regresión.

El video presenta un problema de clasificación binaria en el aprendizaje automático, con el objetivo de predecir el metal de la roca utilizando el conjunto de datos Sonar Mines versus Rocks. El conjunto de datos contiene 208 instancias con 61 atributos, incluido el atributo de clase. Se analizan las estadísticas descriptivas, lo que indica que aunque los datos están en el mismo rango, las diferentes medias sugieren que la estandarización de los datos podría ser beneficiosa. Se exploran visualizaciones de datos unimodales y multimodales, como histogramas, gráficos de densidad y visualizaciones de correlación, para obtener información sobre los datos. Se crea un conjunto de datos de validación y se establece una línea de base para el rendimiento del modelo mediante la prueba de varios modelos, incluida la regresión lineal, la regresión logística, el análisis discriminante lineal, los árboles de regresión de clasificación, las máquinas de vectores de soporte (SVM), el bayesiano ingenuo y los k-vecinos más cercanos ( KNN). La precisión de cada algoritmo se calcula utilizando una validación cruzada de 10 veces y se compara.

En el siguiente segmento, el video analiza cómo evaluar diferentes algoritmos de aprendizaje automático utilizando datos y ajustes estandarizados. La estandarización implica transformar los datos, por lo que cada atributo tiene una media de 0 y una desviación estándar de 1, lo que puede mejorar el rendimiento de ciertos modelos. Para evitar la fuga de datos durante el proceso de transformación, se recomienda una canalización que estandarice los datos y cree el modelo para cada pliegue en el arnés de prueba de validación cruzada. El video demuestra técnicas de ajuste para k-vecinos más cercanos (KNN) y máquinas de vectores de soporte (SVM) utilizando una búsqueda de cuadrícula con validación cruzada de 10 veces en la copia estandarizada del conjunto de datos de entrenamiento. Se identifican las configuraciones óptimas para KNN y SVM y se evalúa la precisión de los modelos. Finalmente, el video analiza brevemente KNN, la regresión del árbol de decisiones y SVM como modelos de aprendizaje automático no lineal.

  • 00:00:00 El instructor del curso introduce el concepto de modelado predictivo y su relevancia para la industria. A diferencia del modelado estadístico que intenta comprender los datos, el modelado predictivo se enfoca en desarrollar modelos que hacen predicciones más precisas a expensas de explicar por qué se hacen las predicciones. El curso se enfoca en datos tabulares, como hojas de cálculo o bases de datos. El instructor lleva a los estudiantes de ser desarrolladores interesados en el aprendizaje automático en python a tener los recursos y las capacidades para trabajar con nuevos conjuntos de datos de principio a fin usando python y desarrollar modelos predictivos precisos. Los estudiantes aprenden a completar todas las subtareas de un problema de modelado predictivo con python, integran técnicas nuevas y diferentes en python y SCIPy, aprenden python y obtienen ayuda con el aprendizaje automático. La conferencia también cubre un curso intensivo en python que destaca los detalles clave sobre la sintaxis del lenguaje, incluida la asignación, el control de flujo, las estructuras de datos y las funciones.

  • 00:05:00 El video cubre la sintaxis básica de Python, incluyendo variables y asignaciones, y explica la diferencia entre "igual" para asignación y "doble igual" para igualdad. Luego, el disertante demuestra cómo usar Jupyter Notebook para la codificación de Python y explica algunos consejos básicos de navegación, por ejemplo, cómo crear un nuevo cuaderno, usar alias para bibliotecas, ejecutar celdas y mover o copiar celdas. El disertante también explica la función de guardado automático y cómo guardar el cuaderno manualmente. El video concluye con una breve explicación de cómo detener la ejecución del kernel.

  • 00:10:00 El instructor explica cómo usar la barra de herramientas para navegar por el motor de Python y cómo anotar cuadernos con Markdown. Luego, el video cubre declaraciones de control de flujo como condiciones if-then-else, bucles for y bucles while. Luego, el instructor explica las tres principales estructuras de datos necesarias para el aprendizaje automático: tuplas, listas y diccionarios. Por último, el video proporciona un curso intensivo sobre NumPy, que incluye la creación de matrices, el acceso a datos y el uso de matrices en aritmética.

  • 00:15:00 Se discute el curso intensivo sobre Matplotlib y Pandas para el aprendizaje automático. Matplotlib es una biblioteca que se puede utilizar para crear diagramas y gráficos. Pandas proporciona estructuras de datos y funcionalidad para manipular y analizar datos con la ayuda de estructuras de datos de series y marcos de datos. Estos son importantes para cargar archivos csv, que es el formato más común utilizado para aplicaciones de aprendizaje automático. Además, las funciones flexibles como Pandas read_csv pueden ayudar a cargar datos y devolver un marco de datos de Pandas para resumir y trazar datos para obtener información y generar ideas para el preprocesamiento y manejo de datos en tareas de aprendizaje automático. Finalmente, obtener información de los datos a través de estadísticas descriptivas en python no se puede sustituir y puede ayudar a comprender mejor las características y la naturaleza de los datos.

  • 00:20:00 Pandas DataFrame facilita la creación de histogramas con la función hist(). Otra forma de visualizar datos es usar gráficos de densidad, que se pueden crear con la función plot(). Los gráficos de densidad muestran la función de densidad de probabilidad de los datos y pueden proporcionar información sobre la forma de la distribución. Los diagramas de caja y bigotes también son útiles para visualizar la distribución de datos e identificar valores atípicos. En general, la visualización de datos es un paso clave para comprender las características de un conjunto de datos y puede ayudar a seleccionar los algoritmos de aprendizaje automático apropiados.

  • 00:25:00 El video explica varias gráficas y diagramas que pueden ser útiles para el análisis de datos antes de aplicar técnicas de aprendizaje automático. Se utilizan histogramas, diagramas de densidad y diagramas de caja para observar la distribución de atributos, mientras que las matrices de correlación y las matrices de diagramas de dispersión se utilizan para identificar la relación entre pares de atributos. El cambio de escala, la estandarización, la normalización y la binarización de datos también se analizan como pasos de preprocesamiento necesarios para preparar los datos para los algoritmos de aprendizaje automático, y el video explica el método de ajuste y transformación como un enfoque común para el preprocesamiento de datos.

  • 00:30:00 El video analiza las técnicas para el preprocesamiento de datos en el aprendizaje automático. En primer lugar, se explican las técnicas de normalización y estandarización. La normalización implica cambiar la escala de los atributos para que tengan la misma escala, y la estandarización implica cambiar los atributos para que tengan una media de cero y una desviación estándar de uno. La binarización, o umbralización de datos, es otra técnica discutida, que puede ser útil para agregar nuevos atributos binarios o convertir probabilidades en valores nítidos. Luego, se explica la importancia de la selección de funciones, ya que las funciones irrelevantes o parcialmente irrelevantes pueden afectar negativamente el rendimiento del modelo. La selección univariante es un enfoque estadístico para la selección de características, utilizando las puntuaciones de las pruebas estadísticas. Los métodos recursivos de eliminación de características y de importancia de características que usan conjuntos de árboles de decisión como bosques aleatorios o árboles adicionales también pueden ser útiles para la selección de características. Finalmente, el análisis de componentes principales (PCA) es una técnica de reducción de datos que utiliza álgebra lineal para transformar el conjunto de datos en una forma comprimida con un número menor de dimensiones.

  • 00:35:00 Se explica la importancia de los métodos de remuestreo para evaluar el rendimiento de los algoritmos de aprendizaje automático en datos ocultos. Se destaca que evaluar el algoritmo en el mismo conjunto de datos utilizado para el entrenamiento puede dar lugar a un sobreajuste, lo que da como resultado una puntuación perfecta en el conjunto de datos de entrenamiento pero predicciones deficientes en los datos nuevos. Técnicas como conjuntos divididos de prueba de tren, validación cruzada de k-fold, validación cruzada de exclusión y divisiones de prueba aleatorias repetidas se presentan luego como formas de crear estimaciones útiles del rendimiento del algoritmo. La sección finaliza con una discusión de varias métricas de rendimiento del algoritmo de aprendizaje automático, como la precisión de la clasificación, la pérdida logarítmica, el área bajo la curva, la matriz de confusión y el informe de clasificación.

  • 00:40:00 El video cubre varias métricas de rendimiento para evaluar las predicciones realizadas por un modelo de aprendizaje automático. Estos incluyen la precisión de la clasificación, la pérdida logarítmica para evaluar las probabilidades, el área bajo la curva ROC para problemas de clasificación binaria, la matriz de confusión para evaluar la precisión del modelo con dos o más clases y el informe de clasificación para evaluar la precisión, recuperación, puntaje F1 y soporte. para cada clase. Además, el video cubre tres métricas de regresión comunes: error absoluto medio, error cuadrático medio y R-cuadrado, y muestra ejemplos de cómo calcular estas métricas usando Python.

  • 00:45:00 El orador explica el concepto de utilizar la verificación puntual para descubrir qué algoritmos de aprendizaje automático funcionan bien para un problema determinado. Demuestra la verificación puntual de seis modelos diferentes de aprendizaje automático, incluidos algoritmos lineales y no lineales, utilizando python con la biblioteca scikit-learn. También enfatiza que los resultados pueden variar debido a la naturaleza estocástica del modelo. Por último, el orador presenta modelos de aprendizaje automático de regresión y prepara a los espectadores para la próxima sección sobre cómo verificar esos modelos.

  • 00:50:00 El orador presenta modelos de aprendizaje automático lineales y no lineales utilizando el conjunto de datos de precios de la vivienda de Boston. Se utiliza un arnés de prueba con validación cruzada de 10 veces para demostrar cómo bloquear la verificación de cada modelo, y se utilizan números de error cuadráticos medios para indicar el rendimiento, que se invierten debido a una peculiaridad en la función de puntuación de archivos cruzados. El modelo de regresión lineal asume una distribución gaussiana para las variables de entrada y que son relevantes para la variable de salida y no están altamente correlacionadas entre sí. La regresión de cresta, una modificación de la regresión lineal, minimiza la complejidad del modelo medido por el valor de la suma cuadrada de los valores del coeficiente o la norma L2. El orador enfatiza la comprensión de la canalización o el proceso y no quedarse atrapado en la comprensión del código en este punto.

  • 00:55:00 El video analiza el proceso de comprensión y visualización de las variables de entrada para un problema de aprendizaje automático. El video sugiere el uso de gráficos univariados como diagramas de caja y bigotes e histogramas para comprender la distribución de las variables de entrada. Para gráficos multivariados, los gráficos de dispersión pueden ayudar a detectar relaciones estructurales entre las variables de entrada e identificar una alta correlación entre ciertos pares de atributos. Luego, el video continúa discutiendo el proceso de evaluación de modelos a través de un arnés de prueba utilizando una validación cruzada de 10 veces, donde el conjunto de datos se divide en 10 partes y se entrena y prueba en diferentes divisiones. El video destaca la importancia de crear un conjunto de datos de validación para obtener una segunda idea independiente de qué tan preciso podría ser el mejor modelo. El video evalúa seis modelos diferentes de aprendizaje automático y selecciona el más preciso para hacer predicciones, evaluando las predicciones a través del informe de clasificación, la matriz de confusión y la estimación de precisión. La sección finaliza con una discusión sobre la regresión de regularización y la construcción de modelos Lasso y Elastic Net para minimizar la complejidad del modelo de regresión.

  • 01:00:00 Se nos presenta un problema de clasificación binaria en el aprendizaje automático donde el objetivo es predecir el metal de la roca usando el conjunto de datos de minas versus rocas del sonar. El conjunto de datos contiene 208 instancias con 61 atributos, incluido el atributo de clase. Después de analizar los datos y observar las estadísticas descriptivas, vemos que los datos están en el mismo rango, pero las diferentes medias indican que la estandarización de los datos puede ser beneficiosa. También echamos un vistazo a las visualizaciones de datos unimodales y multimodales, incluidos histogramas, gráficos de densidad y visualizaciones de correlación entre atributos. Luego, preparamos un conjunto de datos de validación y creamos una línea de base para el rendimiento de diferentes modelos, incluida la regresión lineal, la regresión logística, el análisis discriminante lineal, los árboles de regresión de clasificación, SVM, Bayes ingenuo y k-vecinos más cercanos. Comparamos la precisión de cada algoritmo calculado a través de una validación cruzada de 10 veces.

  • 01:05:00 El video analiza cómo evaluar diferentes algoritmos de aprendizaje automático utilizando datos y ajustes estandarizados. La estandarización transforma los datos para que cada atributo tenga una media de 0 y una desviación estándar de 1, lo que puede mejorar la habilidad de algunos modelos. Para evitar la fuga de datos durante el proceso de transformación, se recomienda una canalización que estandarice los datos y cree el modelo para cada pliegue en el arnés de prueba de validación cruzada. El video demuestra cómo sintonizar k-vecinos más cercanos (KNN) y máquinas de vectores de soporte (SVM) usando una búsqueda de cuadrícula con validación cruzada de 10 veces en la copia estandarizada del conjunto de datos de entrenamiento. Se identifican las configuraciones óptimas para KNN y SVM y se evalúa la precisión de los modelos. Finalmente, el video analiza brevemente KNN, la regresión del árbol de decisiones y SVM como modelos de aprendizaje automático no lineal.
A Fast Track Introduction to Python for Machine Learning Engineers
A Fast Track Introduction to Python for Machine Learning Engineers
  • 2022.03.23
  • www.youtube.com
Complete Course on Machine Learning with Python
 

Estadística aplicada para ingenieros de aprendizaje automático


Estadística aplicada para ingenieros de aprendizaje automático

El instructor del video presenta el campo de la estadística y destaca su importancia al trabajar con problemas de modelado predictivo en el aprendizaje automático. Explican que la estadística ofrece una variedad de técnicas, desde simples estadísticas de resumen hasta pruebas de hipótesis y estadísticas de estimación. El curso está diseñado para proporcionar una base paso a paso en métodos estadísticos, con ejemplos prácticos en Python. Cubre seis aspectos básicos de las estadísticas para el aprendizaje automático y se centra en las aplicaciones del mundo real, lo que lo hace adecuado para los ingenieros de aprendizaje automático.

El instructor enfatiza la estrecha relación entre el aprendizaje automático y las estadísticas y sugiere que los programadores pueden beneficiarse al mejorar sus habilidades estadísticas a través de este curso. Clasifican el campo de la estadística en dos categorías: estadística descriptiva y estadística inferencial. Las estadísticas descriptivas implican resumir y describir datos utilizando medidas como promedios y representaciones gráficas. Las estadísticas inferenciales, por otro lado, se utilizan para hacer inferencias sobre una población más grande con base en datos de muestra.

También se destaca la importancia del tratamiento adecuado de los datos, lo que incluye abordar la pérdida de datos, la corrupción y los errores. Luego, el video profundiza en los diversos pasos involucrados en la preparación de datos para modelos de aprendizaje automático. Esto incluye la limpieza de datos, la selección de datos, el muestreo de datos y la transformación de datos utilizando métodos estadísticos como la estandarización y la normalización. También se enfatiza la evaluación de datos, y el video analiza el diseño experimental, el remuestreo de datos y la selección de modelos para estimar la habilidad de un modelo. Para predecir nuevos datos, el video recomienda usar estadísticas de estimación.

El video explica las diferentes escalas de medición utilizadas en estadística, a saber, escalas nominales, ordinales, de intervalo y de razón. Discute las técnicas estadísticas aplicables a cada escala y cómo se pueden implementar en el aprendizaje automático. Se enfatiza la importancia de comprender y reportar la incertidumbre en el modelado, especialmente cuando se trabaja con conjuntos de muestras. Luego, el video se enfoca en la distribución normal, que se observa comúnmente en varios conjuntos de datos. Demuestra cómo generar datos de muestra y evaluar visualmente su ajuste a una distribución gaussiana mediante un histograma. Si bien la mayoría de los conjuntos de datos no tienen una distribución gaussiana perfecta, a menudo exhiben propiedades de tipo gaussiano.

Se destaca la importancia de seleccionar una forma granular de dividir los datos para exponer la distribución gaussiana subyacente. Se exploran medidas de tendencia central, como la media y la mediana, junto con la varianza y la desviación estándar como medidas de dispersión de la distribución. La aleatoriedad se analiza como una herramienta esencial en el aprendizaje automático, que ayuda a que los algoritmos se vuelvan más robustos y precisos. Se explican varias fuentes de aleatoriedad, incluidos errores de datos y ruido.

El video explica que los algoritmos de aprendizaje automático a menudo aprovechan la aleatoriedad para lograr un mejor rendimiento y generar modelos más óptimos. La aleatoriedad permite que los algoritmos exploren diferentes posibilidades y encuentren mejores asignaciones de datos. Se analizan las fuentes de aleatoriedad controlables e incontrolables, y se explica el uso de la función semilla para hacer que la aleatoriedad sea coherente dentro de un modelo. El video proporciona un ejemplo del uso del módulo aleatorio de Python para generar números aleatorios y destaca la diferencia entre el generador de números pseudoaleatorios de la biblioteca numpy y el generador de números pseudoaleatorios de la biblioteca estándar. También se analizan dos casos sobre cuándo sembrar el generador de números aleatorios, a saber, durante la preparación de datos y las divisiones de datos.

Se enfatiza la división constante de los datos y el uso de generadores de números pseudoaleatorios al evaluar un algoritmo. El video recomienda evaluar el modelo de una manera que incorpore la incertidumbre medida y el rendimiento del algoritmo. La evaluación de un algoritmo en múltiples divisiones de los datos proporciona información sobre cómo varía su rendimiento con diferentes datos de entrenamiento y prueba. La evaluación de un algoritmo varias veces en las mismas divisiones de datos ayuda a comprender cómo varía su rendimiento por sí solo. El video también presenta la ley de los grandes números y el teorema del límite central, destacando que tener más datos mejora el rendimiento del modelo y que a medida que aumenta el tamaño de la muestra, la distribución de la media se acerca a una distribución gaussiana.

El video demuestra el teorema del límite central usando tiradas de dados y código, y muestra cómo las medias muestrales se aproximan a una distribución gaussiana a medida que aumenta el tamaño de la muestra.

El video enfatiza la importancia de evaluar modelos de aprendizaje automático y comprender la incertidumbre involucrada en sus predicciones. Introduce métricas de evaluación como exactitud, precisión, recuperación y puntaje F1, que se usan comúnmente para evaluar el rendimiento de los modelos de clasificación. El video explica que la precisión mide la corrección general de las predicciones, la precisión mide la proporción de predicciones positivas verdaderas de todas las predicciones positivas, la memoria mide la proporción de predicciones positivas verdaderas de todas las instancias positivas reales, y la puntuación F1 combina precisión y memoria en una sola métrica. También analiza el concepto de matriz de confusión, que proporciona una visión más detallada del rendimiento de un modelo de clasificación al mostrar el número de predicciones positivas verdaderas, negativas verdaderas, positivas falsas y negativas falsas.

El orador demuestra cómo calcular estas métricas de evaluación utilizando la biblioteca scikit-learn de Python. Muestra cómo importar los módulos necesarios, dividir los datos en conjuntos de entrenamiento y prueba, entrenar un modelo de clasificación, hacer predicciones en el conjunto de prueba y evaluar el rendimiento del modelo mediante la exactitud, la precisión, la recuperación y la puntuación F1. El video destaca la importancia de evaluar modelos en datos no vistos para garantizar sus capacidades de generalización.

Además, el video presenta el concepto de curvas características operativas del receptor (ROC) y el área bajo la curva (AUC) como métricas de evaluación para modelos de clasificación binaria. Las curvas ROC trazan la tasa de verdaderos positivos frente a la tasa de falsos positivos en varios umbrales de clasificación, lo que proporciona una representación visual del rendimiento del modelo en diferentes valores de umbral. El AUC representa el área bajo la curva ROC y proporciona una métrica única para comparar el rendimiento de diferentes modelos. El video explica cómo trazar una curva ROC y calcular el AUC usando la biblioteca scikit-learn de Python.

El concepto de sobreajuste se analiza como un problema común en el aprendizaje automático, donde un modelo funciona bien en los datos de entrenamiento pero no se puede generalizar a datos nuevos e invisibles. El video explica que el sobreajuste ocurre cuando un modelo se vuelve demasiado complejo y aprende patrones específicos de los datos de entrenamiento que no se cumplen en la población general. El video demuestra cómo se puede visualizar el sobreajuste al comparar el rendimiento de entrenamiento y prueba de un modelo. Explica que un modelo sobreajustado tendrá un error de entrenamiento bajo pero un error de prueba alto, lo que indica una generalización deficiente. El video sugiere técnicas de regularización como la regresión de cresta y la regresión de Lasso como formas de mitigar el sobreajuste al agregar un término de penalización a la función objetivo del modelo.

Se introduce el concepto de validación cruzada como una técnica para evaluar el rendimiento y la generalización de los modelos de aprendizaje automático. El video explica que la validación cruzada implica dividir los datos en varios subconjuntos, entrenar el modelo en una parte de los datos y evaluar su rendimiento en la parte restante. Este proceso se repite varias veces, con diferentes subconjuntos utilizados para el entrenamiento y la prueba, y los resultados se promedian para proporcionar una estimación del rendimiento del modelo. El video demuestra cómo realizar una validación cruzada usando la biblioteca scikit-learn de Python, específicamente el método de validación cruzada K-fold.

A continuación, el video analiza el concepto de selección de funciones y su importancia en el aprendizaje automático. Explica que la selección de características implica identificar las características o variables más relevantes que contribuyen al rendimiento del modelo. El video destaca la importancia de seleccionar características informativas para mejorar la precisión del modelo, reducir el sobreajuste y mejorar la interpretabilidad. Introduce diferentes técnicas de selección de características, como la selección univariada, la eliminación recursiva de características y las puntuaciones de importancia de características. El video demuestra cómo implementar la selección de funciones usando la biblioteca scikit-learn de Python.

El concepto de reducción de dimensionalidad también se analiza como una técnica para abordar la maldición de la dimensionalidad en el aprendizaje automático. El video explica que la reducción de la dimensionalidad implica reducir la cantidad de características o variables en un conjunto de datos mientras se conserva la mayor parte de la información relevante. Introduce el análisis de componentes principales (PCA) como una técnica de reducción de dimensionalidad de uso común. PCA tiene como objetivo transformar los datos en un espacio de menor dimensión mediante la identificación de las direcciones de máxima variación en los datos. El video explica que PCA crea nuevas características, llamadas componentes principales, que son combinaciones lineales de las características originales. Estos componentes principales capturan la información más importante de los datos y se pueden utilizar como entrada para modelos de aprendizaje automático.

El video demuestra cómo realizar PCA usando la biblioteca scikit-learn de Python. Muestra cómo importar los módulos necesarios, estandarizar los datos, inicializar un objeto PCA, ajustar el modelo PCA a los datos y transformar los datos en el espacio de menor dimensión. El video también explica cómo determinar el número óptimo de componentes principales para retener en función de la relación de varianza explicada.

El concepto de aprendizaje conjunto se presenta como una técnica para mejorar el rendimiento de los modelos de aprendizaje automático mediante la combinación de múltiples modelos individuales. El video explica que el aprendizaje conjunto aprovecha la sabiduría de las multitudes, donde cada modelo individual contribuye con sus propias predicciones, y la predicción final se determina en función de un mecanismo de votación o promedio. El video analiza dos métodos populares de aprendizaje de conjuntos: embolsado y potenciado. El embolsado implica entrenar varios modelos en diferentes subconjuntos de datos y agregar sus predicciones, mientras que impulsar se enfoca en entrenar modelos secuencialmente, y cada modelo le da más importancia a las instancias que los modelos anteriores clasificaron incorrectamente.

El video demuestra cómo implementar el aprendizaje conjunto usando la biblioteca scikit-learn de Python. Muestra cómo importar los módulos necesarios para embolsar y aumentar, inicializar los modelos de conjunto, ajustarlos a los datos y hacer predicciones utilizando los modelos de conjunto. El video enfatiza que el aprendizaje conjunto a menudo puede mejorar el rendimiento general y la solidez de los modelos de aprendizaje automático.

Finalmente, el video toca brevemente temas avanzados en el aprendizaje automático, como el aprendizaje profundo y el procesamiento del lenguaje natural (NLP). Menciona que el aprendizaje profundo implica entrenar redes neuronales profundas con múltiples capas para aprender patrones complejos en los datos. NLP se centra en el desarrollo de modelos y técnicas para comprender y procesar el lenguaje humano, lo que permite aplicaciones como la clasificación de textos, el análisis de sentimientos y la traducción automática. El video concluye destacando que el aprendizaje automático es un campo vasto y en rápida evolución con numerosas aplicaciones y oportunidades para una mayor exploración y aprendizaje.

El video proporciona una descripción general completa de los conceptos y técnicas esenciales en el aprendizaje automático, incluida la evaluación del modelo, el sobreajuste, la regularización, la validación cruzada, la selección de características, la reducción de la dimensionalidad, el aprendizaje conjunto y una introducción al aprendizaje profundo y la PNL. Demuestra implementaciones prácticas usando Python y la biblioteca scikit-learn, lo que lo convierte en un recurso valioso para principiantes y aquellos que buscan mejorar su comprensión del aprendizaje automático.

  • 00:00:00 El instructor presenta el campo de la estadística y su importancia al trabajar con problemas de modelado predictivo con aprendizaje automático. Explica la variedad de técnicas estadísticas disponibles, desde simples estadísticas de resumen hasta pruebas de hipótesis y estadísticas de estimación. El curso está diseñado para proporcionar una base paso a paso para los métodos estadísticos con ejemplos ejecutables en Python, cubriendo seis aspectos básicos de las estadísticas para el aprendizaje automático. El instructor también enfatiza que el curso se centra en la aplicación y proporciona ejemplos de uso del mundo real, lo que lo hace adecuado para ingenieros de aprendizaje automático.

  • 00:05:00 Se enfatiza que el aprendizaje automático está estrechamente relacionado con las estadísticas, y el curso se presenta como una buena opción para los programadores que desean mejorar sus habilidades estadísticas. El campo de la estadística se clasifica en 2 categorías, la primera es estadística descriptiva y la segunda categoría es estadística inferencial. La estadística descriptiva se usa para describir datos usando medidas como promedios y representaciones gráficas, mientras que la estadística inferencial se usa para hacer inferencias a partir de datos para una población más grande. Por último, se enfatiza la importancia del tratamiento de los datos, incluida la pérdida de datos, la corrupción y los errores.

  • 00:10:00 El video analiza los diversos pasos involucrados en la preparación de datos para modelos de aprendizaje automático. Esto incluye la limpieza de datos, la selección de datos, el muestreo de datos y la transformación de datos utilizando métodos estadísticos como la estandarización y la normalización. La evaluación de datos también es importante, y se debe realizar un diseño experimental, incluidos los datos de remuestreo y la selección de modelos, para estimar la habilidad de un modelo. Para predecir nuevos datos, el video recomienda el enfoque de estadísticas de estimación. Además, el video explica diferentes escalas de medición utilizadas en estadística y las características de la distribución normal.

  • 00:15:00 El ponente explica las diferentes escalas de medida: nominal, ordinal, de intervalo y de razón. Continúan discutiendo las estadísticas que son aplicables a cada escala y cómo se pueden implementar en el aprendizaje automático. Dado que casi siempre trabajamos con conjuntos de muestras, el autor enfatiza que necesitamos comprender y reportar la incertidumbre involucrada en el modelado. Luego, la discusión pasa a una distribución normal de muestra que es muy común en varios conjuntos de datos. Finalmente, demuestran cómo podemos generar datos de muestra y aplicarlos a un histograma para ver si se ajusta a la distribución gaussiana. El autor explica que, si bien la mayoría de los conjuntos de datos no tendrán una distribución gaussiana perfecta, tendrán propiedades de tipo gaussiano.

  • 00:20:00 Se destaca la importancia de seleccionar una forma más granular de dividir los datos para exponer mejor la distribución gaussiana subyacente, y se exploran las medidas de tendencia central como la media y la mediana, con la varianza y la desviación estándar también discutidas como un medida de la dispersión de la distribución. La aleatoriedad es una herramienta esencial en el aprendizaje automático y se utiliza para ayudar a que los algoritmos sean más sólidos y precisos. Se explican varias fuentes de aleatoriedad, como errores en los datos y ruido que pueden oscurecer las relaciones.

  • 00:25:00 Se explica que los algoritmos de aprendizaje automático a menudo usan la aleatoriedad para lograr un mejor mapeo de datos. La aleatoriedad permite que los algoritmos generen un modelo más óptimo. Esta sección analiza las fuentes de aleatoriedad, tanto controlables como no controlables, y cómo el uso de la función semilla puede hacer que la aleatoriedad en un modelo sea consistente. Se da un ejemplo utilizando el módulo aleatorio de Python para generar números aleatorios y la biblioteca numpy para trabajar eficientemente con vectores y matrices de números. El generador de números pseudoaleatorios numpy es diferente al generador de números pseudoaleatorios de la biblioteca estándar de Python y debe usarse por separado. Finalmente, se analizan dos casos sobre cuándo sembrar el generador de números aleatorios, incluida la preparación de datos y las divisiones de datos.

  • 00:30:00 Se discute la importancia de dividir consistentemente los datos y el uso de generadores de números pseudoaleatorios al evaluar un algoritmo. Se recomienda evaluar el modelo de tal manera que el rendimiento informado incluya la incertidumbre medida y el rendimiento del algoritmo. La evaluación de un algoritmo en varias divisiones de los datos brindará información sobre cómo varía el rendimiento del algoritmo con los cambios en los datos de entrenamiento y prueba, mientras que la evaluación de un algoritmo varias veces en las mismas divisiones de datos ayudará a comprender cómo varía el rendimiento del algoritmo por sí solo. . También se analizan la ley de los grandes números y el teorema del límite central, destacando que cuantos más datos tengamos, mejor será para el rendimiento de nuestro modelo y que a medida que aumente el tamaño de una muestra, la distribución de la media se aproximará a una distribución gaussiana. .

  • 00:35:00 El teorema del límite central se demuestra usando tiradas de dados y código. La demostración muestra que a medida que aumenta el tamaño de la muestra, las medias de la muestra se aproximarán a una distribución gaussiana. La interpretación de datos es crucial en estadística para descubrir el significado. Las pruebas de hipótesis estadísticas o las pruebas de significación se utilizan en el aprendizaje automático para hacer afirmaciones sobre distribuciones de datos o para comparar dos muestras. La hipótesis 0 o hipótesis nula es la suposición predeterminada de que nada ha cambiado y una prueba de hipótesis estadística puede arrojar un valor p o un valor crítico. El valor p es una cantidad que se usa para interpretar el resultado de una prueba de hipótesis y rechazar o no rechazar la hipótesis nula, mientras que el valor crítico se usa para comparar la estadística de prueba con su distribución de muestreo para determinar si hay suficiente evidencia para rechazar la hipótesis nula.

  • 00:40:00 Se aclara el concepto de rechazar la hipótesis nula, con la hipótesis nula indicando que no hay una diferencia estadísticamente significativa. Si el resultado de una prueba estadística rechaza la hipótesis nula, significa que algo es estadísticamente significativo. También se analiza la distribución gaussiana, que describe el agrupamiento o la densidad de las observaciones y, a menudo, se denomina distribución normal. La distribución es una función matemática que describe la relación de las observaciones con un espacio muestral. Las funciones de densidad, incluidas las funciones de densidad de probabilidad y las funciones de densidad acumulativa, se utilizan para describir la probabilidad de las observaciones en una distribución. Finalmente, se enfatiza la importancia de verificar si una muestra de datos es aleatoria y se dan las características de las muestras normalmente distribuidas.

  • 00:45:00 El orador habló sobre la distribución normal (gaussiana), sus propiedades, incluida la función de distribución de probabilidad (pdf) y la función de distribución acumulativa (cdf), y la regla de 68, 95 y 99,7 asociada con las desviaciones estándar. El orador también presentó la distribución t, que es similar a la distribución normal pero se usa para muestras pequeñas. Posteriormente, el artículo introdujo la distribución chi-cuadrado, su uso para la bondad de ajuste y su relación con la distribución t. Por último, el orador demostró el uso del módulo stats chi 2 en Scipy para calcular estadísticas para una distribución de chi-cuadrado.

  • 00:50:00 Se explica el concepto de valores críticos en las pruebas de hipótesis estadísticas. Un valor crítico es un umbral utilizado para determinar si se acepta o rechaza una hipótesis nula. Asume una distribución normal o gaussiana y tiene una región de aceptación y una región de rechazo. La línea que separa esas regiones es el valor crítico. Las pruebas de una cola determinan si la media es mayor o menor que otra media pero no ambas, mientras que las pruebas de dos colas determinan si las dos medias son diferentes entre sí. El valor crítico permite la cuantificación de la incertidumbre de las estadísticas o intervalos estimados, como los intervalos de confianza y tolerancia.

  • 00:55:00 Se discute el uso de pruebas de dos colas, que tienen en cuenta los efectos positivos y negativos de un producto. El ejemplo dado es el de un medicamento genérico contra un producto de marca, donde una prueba de dos colas puede determinar si el producto genérico es equivalente o peor que el producto de marca. El uso de funciones de puntos porcentuales, o funciones de cuantiles, también se explica y demuestra con ejemplos utilizando tres distribuciones de uso común: la distribución estándar de Gauss, la distribución estándar de la t de Student y la distribución estándar de chi-cuadrado. Finalmente, se discute el concepto de correlación y su importancia para determinar la relación entre dos variables, así como el problema potencial de la multicolinealidad y cómo puede afectar el rendimiento del algoritmo.

  • 01:00:00 El video muestra una demostración rápida para mostrar una fuerte correlación positiva entre dos variables utilizando un conjunto de datos artificial con cada variable extraída de una distribución gaussiana y correlacionada linealmente. La demostración calcula e imprime la matriz de covarianza, que muestra una covarianza positiva entre las dos variables, lo que sugiere que cambian en la misma dirección. Sin embargo, un problema con la covarianza como herramienta estadística sola es que es difícil de interpretar, lo que lleva al coeficiente de correlación de Pearson. El video explica cómo el coeficiente de correlación r de Pearson puede resumir la fuerza de la relación lineal entre dos muestras de datos mediante el cálculo de la covarianza de las dos variables divididas por el producto de la desviación estándar de cada muestra, y que el coeficiente de correlación se puede usar para evaluar la relación entre más de dos variables.

  • 01:05:00 El video analiza el uso de pruebas de significancia estadística paramétrica, que suponen que los datos se extrajeron de una distribución gaussiana con la misma media y desviación estándar. Se define y utiliza un conjunto de datos de prueba para demostrar la prueba t de Student para muestras independientes y pareadas, así como la prueba de análisis de varianza. El video muestra cómo se pueden implementar estas pruebas en Python usando las funciones Scipy apropiadas. Los ejemplos ilustran cómo se pueden usar estas pruebas para determinar si diferentes muestras de datos tienen la misma distribución.

  • 01:10:00 Se discute el concepto de tamaño del efecto en estadística como una forma de cuantificar la magnitud de las diferencias entre grupos o asociaciones entre variables, que pueden complementar los resultados obtenidos de las pruebas de hipótesis estadísticas. Los métodos de tamaño del efecto se dividen en asociación y diferencia, y pueden ser estandarizados, de unidad original o sin unidad, según el propósito de la interpretación y la medida estadística utilizada. El coeficiente de correlación de Pearson es una medida estandarizada de uso común para determinar asociaciones lineales, que no tiene unidades y se puede calcular mediante la función pearsonr() de Python. El poder estadístico, que está influenciado por el tamaño del efecto, el tamaño de la muestra, la importancia y el nivel de poder, también se explica como un factor crucial en el diseño experimental y se puede estimar a través del análisis de poder para determinar el tamaño de muestra mínimo necesario para un experimento.

  • 01:15:00 El video analiza la importancia del muestreo de datos y el remuestreo de datos en el modelado predictivo, y explica que el muestreo implica seleccionar un subconjunto de una población, mientras que el remuestreo implica estimar los parámetros de la población varias veces a partir de una muestra de datos para mejorar la precisión y cuantificar la incertidumbre. El video describe métodos comunes de muestreo, categorizados como muestreo probabilístico o no probabilístico, y destaca tres tipos de muestreo que los ingenieros de aprendizaje automático probablemente encontrarán: muestreo aleatorio simple, muestreo sistémico y muestreo estratificado. Además, el video advierte sobre los posibles errores que se pueden introducir en el proceso de muestreo y enfatiza la necesidad de la inferencia estadística y el cuidado al sacar conclusiones sobre una población. El video continúa explicando los métodos de muestreo comúnmente utilizados en el aprendizaje automático, a saber, la validación cruzada de k-fold y bootstrap, siendo este último costoso desde el punto de vista computacional, aunque proporciona estimaciones sólidas de la población.

  • 01:20:00 El método de arranque se analiza como una herramienta para estimar cantidades sobre una población mediante el promedio de estimaciones de múltiples muestras de datos pequeños. Las muestras se construyen extrayendo observaciones de grandes conjuntos de datos uno a la vez y devolviéndolas a la muestra original después de ser seleccionadas. Este enfoque se denomina muestreo con reemplazo. La función de remuestreo, proporcionada en la biblioteca SciPy, se puede usar para crear una sola muestra de arranque y, aunque no incluye ningún mecanismo para recopilar fácilmente observaciones fuera de la bolsa que podrían usarse para evaluar modelos de ajuste, fuera de la bolsa. las observaciones de la bolsa aún se pueden recopilar utilizando la comprensión de listas de Python. Además, se explica el proceso de validación cruzada k-fold, ya que es un procedimiento de remuestreo utilizado para evaluar modelos de aprendizaje automático en datos limitados. La clase de aprendizaje del ciclo K-fold se puede utilizar para este procedimiento, y se mencionan cuatro variaciones comúnmente utilizadas de la validación cruzada k-fold.

  • 01:25:00 El orador analiza dos enfoques para el remuestreo en el aprendizaje automático: validación cruzada de k-fold y división de prueba de tren. Si bien la validación cruzada de k-fold es el estándar de oro, la división de prueba de tren puede ser más fácil de entender e implementar. El orador demuestra cómo usar el enfoque de división de prueba de tren en Python y también menciona el uso de estadísticas de estimación, cuyo objetivo es cuantificar el tamaño y la incertidumbre de un hallazgo y se están volviendo más populares en la literatura de investigación. Las tres clases principales de estadísticas de estimación incluyen el tamaño del efecto, la estimación por intervalos y el metanálisis. El cambio a las estadísticas de estimación está ocurriendo porque son más fáciles de analizar e interpretar en el contexto de las preguntas de investigación.

  • 01:30:00 Se discuten los diferentes métodos para medir el tamaño del efecto y la estimación del intervalo. El tamaño del efecto se puede medir a través de la asociación, que es el grado en que las muestras cambian juntas, o la diferencia, que es el grado en que las muestras difieren. Mientras tanto, la estimación de intervalos permite la cuantificación de la incertidumbre en las observaciones y se puede realizar a través de intervalos de tolerancia, intervalos de confianza o intervalos de predicción. Los intervalos de tolerancia especifican los límites superior e inferior dentro de los cuales cae un determinado porcentaje de la salida del proceso, mientras que los intervalos de confianza proporcionan límites para las estimaciones de un parámetro de población. Finalmente, se da una demostración sobre cómo calcular los intervalos de tolerancia para una muestra de observaciones extraídas de una distribución gaussiana.

  • 01:35:00 Se discute el concepto de intervalo de confianza, que es la estadística de intervalo utilizada para cuantificar la incertidumbre en una estimación. El intervalo de confianza proporciona límites en un parámetro de población, como la media, la desviación estándar o similar. El valor de un intervalo de confianza es la capacidad de cuantificar la incertidumbre de una estimación. Un intervalo de confianza más pequeño equivale a una estimación más precisa, mientras que un intervalo de confianza más grande es una estimación menos precisa. Además, se analiza el concepto de precisión o error de clasificación, que es una proporción o razón utilizada para describir la proporción de predicciones correctas o incorrectas realizadas por el modelo. El error de clasificación o la precisión se pueden utilizar para calcular fácilmente el intervalo de confianza suponiendo una distribución gaussiana de la proporción.

  • 01:40:00 Se explica el concepto de intervalos de confianza, desde el cálculo de un intervalo de confianza para el error de clasificación de un modelo hasta el uso del remuestreo bootstrap como método no paramétrico para estimar los intervalos de confianza. El método de remuestreo de arranque implica extraer muestras con reemplazo de un conjunto de datos finitos fijos para estimar los parámetros de la población. Adicionalmente, se introduce el concepto de intervalos de predicción como una estimación del intervalo en el que caerán las observaciones futuras con un cierto nivel de confianza, lo cual es útil para realizar predicciones o pronósticos con modelos de regresión.

  • 01:45:00 El concepto de intervalos de predicción se explica como una estimación del rango en el que caerá una observación futura con un cierto nivel de confianza, dados los datos observados previamente. Se diferencia de un intervalo de confianza, que cuantifica la incertidumbre relacionada con una variable de muestra de población. Los intervalos de predicción se utilizan normalmente en modelos de predicción o previsión. El artículo presenta un ejemplo simple de regresión lineal en un conjunto de datos de dos variables, en el que la relación entre las variables es visible desde un diagrama de dispersión. Luego, el modelo de regresión lineal se usa para hacer una sola predicción, con un intervalo predicho de 95% de certeza y comparado con el valor esperado conocido. Se enfatiza la diferencia entre los intervalos de predicción y los intervalos de confianza, así como el hecho de que los intervalos de predicción suelen ser más amplios que los intervalos de confianza debido a la incertidumbre asociada con el error.
Applied Statistics for Machine Learning Engineers
Applied Statistics for Machine Learning Engineers
  • 2022.03.24
  • www.youtube.com
Complete Course on Applied Statistics for Machine Learning Engineers. It's all the statistics you'll need to know for a career in machine learning.
 

Álgebra lineal aplicada para ingenieros de aprendizaje automático



Álgebra lineal aplicada para ingenieros de aprendizaje automático

El video enfatiza la importancia de aprender álgebra lineal para los ingenieros de aprendizaje automático, ya que sirve como un componente fundamental para comprender el cálculo y la estadística, que son esenciales en el aprendizaje automático. Tener una comprensión más profunda del álgebra lineal proporciona a los profesionales una mejor intuición de cómo funcionan los métodos de aprendizaje automático, lo que les permite personalizar algoritmos y desarrollar otros nuevos.

El curso adopta un enfoque de arriba hacia abajo para enseñar los conceptos básicos de álgebra lineal, utilizando ejemplos concretos y estructuras de datos para demostrar operaciones en matrices y vectores. El álgebra lineal se describe como las matemáticas de matrices y vectores, proporcionando un lenguaje para la manipulación de datos y permitiendo la creación de nuevas columnas o matrices de números a través de operaciones en estas estructuras de datos. Inicialmente desarrollado a fines del siglo XIX para resolver sistemas de ecuaciones lineales, el álgebra lineal se ha convertido en un requisito previo clave para comprender el aprendizaje automático.

El disertante introduce el concepto de álgebra lineal numérica, que implica la aplicación del álgebra lineal en computadoras. Esto incluye implementar operaciones de álgebra lineal y abordar los desafíos que surgen cuando se trabaja con una precisión de coma flotante limitada en computadoras digitales. El álgebra lineal numérica juega un papel crucial en el aprendizaje automático, particularmente en los algoritmos de aprendizaje profundo que dependen en gran medida de las unidades de procesamiento gráfico (GPU) para realizar cálculos de álgebra lineal de manera eficiente. Varias bibliotecas de álgebra lineal numérica de código abierto, con bibliotecas basadas en Fortran como base, se usan comúnmente para calcular operaciones de álgebra lineal, a menudo junto con lenguajes de programación como Python.

Se destaca la importancia del álgebra lineal en las estadísticas, particularmente en el análisis estadístico multivariado, el análisis de componentes principales y la resolución de problemas de regresión lineal. El video también menciona la amplia gama de aplicaciones del álgebra lineal en campos como el procesamiento de señales, los gráficos por computadora e incluso la física, con ejemplos como la teoría de la relatividad de Albert Einstein que utiliza tensores y cálculo de tensores, un tipo de álgebra lineal.

El video explora aún más la aplicación práctica del álgebra lineal en tareas de aprendizaje automático. Introduce el concepto de usar operaciones de álgebra lineal, como recortar, escalar y cortar, para manipular imágenes, demostrando cómo se pueden emplear la notación y las operaciones de álgebra lineal en este contexto. Además, el video explica la popular técnica de codificación llamada codificación one-hot para variables categóricas. Se presenta la principal estructura de datos utilizada en el aprendizaje automático, matrices N-dimensionales o matrices ND, y se analiza la biblioteca NumPy en Python como una herramienta poderosa para crear y manipular estas matrices. El video cubre funciones importantes, como v-stack y apilamiento horizontal, que permiten la creación de nuevos arreglos a partir de arreglos existentes.

Se explica la manipulación y el acceso a datos en arreglos NumPy, comúnmente utilizados para representar datos de aprendizaje automático. El video demuestra cómo convertir listas unidimensionales en matrices usando la función de matriz y cómo crear matrices de datos bidimensionales usando listas de listas. También cubre operaciones de indexación y división en matrices NumPy, incluido el uso del operador de dos puntos para división e indexación negativa. Se destaca la importancia del corte en la especificación de variables de entrada y salida en el aprendizaje automático.

En el video se analizan las técnicas para trabajar con conjuntos de datos multidimensionales en el aprendizaje automático. Comienza con el corte unidimensional y progresa al corte bidimensional, junto con la separación de datos en valores de entrada y salida para entrenamiento y prueba. Se cubre la remodelación de matrices, que explica cómo remodelar matrices unidimensionales en matrices bidimensionales con una columna y transformar datos bidimensionales en matrices tridimensionales para algoritmos que requieren múltiples muestras de uno o más pasos de tiempo y características. Se introduce el concepto de transmisión de matriz, que permite utilizar matrices con diferentes tamaños en operaciones aritméticas, lo que permite procesar conjuntos de datos con diferentes tamaños de manera efectiva.

El video también aborda las limitaciones de la aritmética de matrices en NumPy, específicamente que las operaciones aritméticas solo se pueden realizar en matrices con las mismas dimensiones y dimensiones con el mismo tamaño. Sin embargo, esta limitación se supera con la función de transmisión integrada de NumPy, que replica la matriz más pequeña a lo largo de la última dimensión no coincidente, lo que permite la aritmética entre matrices con diferentes formas y tamaños. El video proporciona tres ejemplos de transmisión, incluidos arreglos escalares y unidimensionales, escalar en un arreglo bidimensional y arreglo unidimensional en un arreglo bidimensional. Se observa que la transmisión sigue una regla estricta, que establece que la aritmética solo se puede realizar cuando la forma de cada dimensión en las matrices es igual o una de ellas tiene un tamaño de dimensión de uno.

Continuando, el disertante introduce el concepto de vectores, que son tuplas de uno o más valores llamados escalares. Los vectores a menudo se representan usando caracteres en minúsculas como "v" y se pueden ver como puntos o coordenadas en un espacio n-dimensional, donde "n" representa el número de dimensiones. Se explica la creación de vectores como arreglos NumPy en Python. El video también cubre las operaciones aritméticas de vectores, como la suma y resta de vectores, que se realizan por elementos para vectores de igual longitud, lo que da como resultado un nuevo vector de la misma longitud. Además, el orador explica cómo los vectores se pueden multiplicar por escalares para escalar su magnitud y demuestra cómo realizar estas operaciones utilizando matrices NumPy en Python. También se analiza el producto escalar de dos vectores, que produce un escalar y se puede usar para calcular la suma ponderada de un vector.

Luego, el enfoque cambia a las normas vectoriales y su importancia en el aprendizaje automático. Las normas de vectores se refieren al tamaño o la longitud de un vector y se calculan utilizando una medida que resume la distancia del vector desde el origen del espacio vectorial. Se enfatiza que las normas vectoriales son siempre positivas, excepto por un vector de todos los valores cero. El video presenta cuatro cálculos de normas vectoriales comunes utilizados en el aprendizaje automático. Comienza con la norma vectorial L1, seguida de la norma L2 (norma euclidiana) y la norma máxima. La sección también define matrices y explica cómo manipularlas en Python. Se analiza la aritmética matricial, incluida la multiplicación matriz-matriz (producto escalar), la multiplicación matriz-vector y la multiplicación escalar. Una matriz se describe como una matriz bidimensional de escalares con una o más columnas y una o más filas, típicamente representada por letras mayúsculas como "A".

A continuación, se introduce el concepto de operaciones matriciales para el aprendizaje automático. Esto incluye la multiplicación de matrices, la división de matrices y la multiplicación escalar de matrices. La multiplicación de matrices, también conocida como producto escalar de matrices, requiere que el número de columnas en la primera matriz sea igual al número de filas en la segunda matriz. El video menciona que la función de punto en NumPy se puede usar para implementar esta operación. También se explica el concepto de transposición de matriz, donde se crea una nueva matriz al invertir el número de filas y columnas de la matriz original. Finalmente, se analiza el proceso de inversión de matrices, que consiste en encontrar otra matriz que, cuando se multiplica con la matriz original, da como resultado una matriz identidad.

Continuando con la discusión de la inversión de matriz, el video explora más este concepto. La inversión de una matriz se indica con un superíndice negativo 1 al lado de la matriz. El video explica que la inversión de matrices implica encontrar métodos numéricos eficientes. Se introduce la operación de rastreo de una matriz cuadrada, que calcula la suma de los elementos diagonales y se puede calcular usando la función de rastreo en NumPy. El determinante de una matriz cuadrada se define como una representación escalar del volumen de la matriz y también se puede calcular usando la función det en NumPy. Se menciona brevemente el rango de una matriz, que estima el número de filas o columnas linealmente independientes en la matriz y comúnmente se calcula mediante la descomposición de valores singulares. Por último, se explica el concepto de matrices dispersas, destacando que contienen predominantemente valores cero y pueden ser computacionalmente costosos de representar y trabajar con ellas.

Luego, el video profundiza en las matrices dispersas, que son matrices compuestas principalmente de valores cero y se diferencian de las matrices densas que en su mayoría tienen valores distintos de cero. La dispersión se cuantifica calculando la puntuación de dispersión, que es el número de valores cero dividido por el número total de elementos de la matriz. El video enfatiza dos problemas principales asociados con la escasez: la complejidad del espacio y la complejidad del tiempo. Se observa que representar y trabajar con matrices dispersas puede ser computacionalmente costoso.

Para abordar estos desafíos, el video menciona que Scipy proporciona herramientas para crear y manipular matrices dispersas. Además, destaca que muchas funciones de álgebra lineal en NumPy y Scipy pueden operar en matrices escasas, lo que permite cálculos y operaciones eficientes en datos escasos.

Las matrices dispersas se usan comúnmente en el aprendizaje automático aplicado para la observación y preparación de datos. Su escasez permite un almacenamiento y procesamiento más eficientes de grandes conjuntos de datos con una cantidad significativa de valores cero. Al aprovechar la estructura de escasez, los algoritmos de aprendizaje automático pueden beneficiarse de un uso reducido de la memoria y cálculos más rápidos.

Continuando, el video analiza diferentes tipos de matrices comúnmente utilizadas en álgebra lineal, particularmente aquellas relevantes para el aprendizaje automático. Se introducen matrices cuadradas, donde el número de filas es igual al número de columnas. También se mencionan las matrices rectangulares, que tienen diferente número de filas y columnas. El video explica la diagonal principal de una matriz cuadrada, que consta de elementos con los mismos índices de fila y columna. También se cubre el orden de una matriz cuadrada, definida como el número de filas o columnas.

Además, el video presenta matrices simétricas, que son matrices cuadradas que son iguales a su transpuesta. Se explican las matrices triangulares, incluidas las matrices triangulares superior e inferior. También se analizan las matrices diagonales, donde todos los elementos no diagonales son cero. Las matrices de identidad, que son matrices cuadradas con unos en la diagonal principal y ceros en otros lugares, se explican en el contexto de su papel como identidades multiplicativas. También se introducen las matrices ortogonales, formadas cuando dos vectores tienen un producto escalar igual a cero.

El video continúa discutiendo matrices ortogonales y tensores. Una matriz ortogonal es un tipo específico de matriz cuadrada donde las columnas y las filas son vectores unitarios ortogonales. Estas matrices son computacionalmente eficientes y estables para calcular su inversa, lo que las hace útiles en varias aplicaciones, incluidos los modelos de aprendizaje profundo. El video menciona además que en TensorFlow, los tensores son una estructura de datos fundamental y una generalización de vectores y matrices. Los tensores se representan como matrices multidimensionales y se pueden manipular en Python utilizando matrices n-dimensionales, similares a las matrices. El video destaca que las operaciones de tensor de elementos, como la suma y la resta, se pueden realizar en tensores, matrices y vectores, proporcionando una intuición para dimensiones más altas.

A continuación, el video presenta la descomposición de matrices, que es un método para descomponer una matriz en sus partes constituyentes. La descomposición de matrices simplifica las operaciones complejas de matrices y permite cálculos eficientes. Se cubren dos técnicas de descomposición de matrices ampliamente utilizadas: descomposición LU (inferior-superior) para matrices cuadradas y descomposición QR (factorización QR) para matrices rectangulares.

La descomposición LU puede simplificar ecuaciones lineales en el contexto de problemas de regresión lineal y facilitar cálculos como el determinante y el inverso de una matriz. La descomposición QR tiene aplicaciones en la resolución de sistemas de ecuaciones lineales. Ambos métodos de descomposición se pueden implementar usando funciones integradas en el paquete NumPy en Python, proporcionando soluciones eficientes y confiables para varios problemas de álgebra lineal.

Además, el video analiza la descomposición de Cholesky, que se usa específicamente para matrices simétricas y definidas positivas. La descomposición de Cholesky está representada por una matriz triangular inferior y se considera casi el doble de eficiente que la descomposición LU para descomponer matrices simétricas.

El video menciona brevemente que los métodos de descomposición de matrices, incluida la descomposición Eigen, se emplean para simplificar operaciones complejas. La descomposición Eigen descompone una matriz en sus vectores propios y valores propios. Los vectores propios son coeficientes que representan direcciones, mientras que los valores propios son escalares. Tanto los vectores propios como los valores propios tienen aplicaciones prácticas, como la reducción de la dimensionalidad y la realización de operaciones matriciales complejas.

Por último, el video toca el concepto de descomposición de valores singulares (SVD) y sus aplicaciones en el aprendizaje automático. SVD se utiliza en varias operaciones matriciales y métodos de reducción de datos en el aprendizaje automático. Desempeña un papel crucial en cálculos como la regresión lineal de mínimos cuadrados, la compresión de imágenes y los datos de eliminación de ruido.

El video explica que SVD permite que una matriz se descomponga en tres matrices separadas: U, Σ y V. La matriz U contiene los vectores singulares de la izquierda, Σ es una matriz diagonal que contiene los valores singulares y V contiene los vectores singulares de la derecha. Al reconstruir la matriz original a partir de estos componentes, se puede obtener una aproximación de los datos originales mientras se reduce su dimensionalidad.

Una de las principales aplicaciones de SVD es la reducción de dimensionalidad. Al seleccionar un subconjunto de los valores singulares más significativos y sus vectores singulares correspondientes, es posible representar los datos en un espacio de menor dimensión sin perder información crucial. Esta técnica es particularmente útil en los casos en que los datos tienen una gran dimensionalidad, ya que permite un almacenamiento y un cálculo más eficientes.

El video destaca que SVD se ha aplicado con éxito en el procesamiento del lenguaje natural utilizando una técnica llamada análisis semántico latente (LSA) o indexación semántica latente (LSI). Al representar documentos de texto como matrices y realizar SVD, LSA puede capturar la estructura semántica subyacente de los documentos, lo que permite tareas como la similitud de documentos y el modelado de temas.

Además, el video presenta la clase SVD truncada, que implementa directamente la capacidad de reducir la dimensionalidad de una matriz. Con el SVD truncado, es posible transformar la matriz original en una representación de menor dimensión mientras se conserva la información más importante. Esta técnica es particularmente beneficiosa cuando se trata de grandes conjuntos de datos, ya que permite un procesamiento y análisis más eficiente.

En resumen, el video ha cubierto varios temas relacionados con el álgebra lineal para el aprendizaje automático. Ha enfatizado la importancia de aprender álgebra lineal como un componente fundamental para comprender el cálculo y la estadística en el contexto del aprendizaje automático. El video ha discutido las aplicaciones del álgebra lineal en el aprendizaje automático, como la personalización y el desarrollo de algoritmos, el álgebra lineal numérica, el análisis estadístico y varios otros campos como el procesamiento de señales y los gráficos por computadora.

Además, el video ha explorado conceptos clave en álgebra lineal, incluidos vectores, matrices, operaciones con matrices, normas vectoriales, técnicas de descomposición de matrices y matrices dispersas. Ha explicado cómo se utilizan estos conceptos en el aprendizaje automático y ha proporcionado información sobre sus aplicaciones prácticas.

Al comprender el álgebra lineal, los profesionales del aprendizaje automático pueden obtener una intuición más profunda de los fundamentos matemáticos subyacentes de los algoritmos de aprendizaje automático y aplicarlos de manera efectiva a los problemas del mundo real. El álgebra lineal sirve como una herramienta poderosa para la manipulación de datos, la reducción de la dimensionalidad y la optimización, lo que permite soluciones de aprendizaje automático eficientes y efectivas.

  • 00:00:00 Se destaca la importancia de aprender álgebra lineal para los ingenieros de aprendizaje automático, ya que se considera un componente básico para comprender el cálculo y la estadística necesarios en el aprendizaje automático. Una comprensión más profunda del álgebra lineal brinda a los profesionales del aprendizaje automático una mejor intuición de cómo funcionan los métodos, lo que les permite personalizar algoritmos e idear otros nuevos. Los conceptos básicos del álgebra lineal se enseñan en un enfoque de arriba hacia abajo en este curso, utilizando ejemplos concretos y estructuras de datos para demostrar operaciones en matrices y vectores. El álgebra lineal es la matemática de las matrices y los vectores, proporciona un lenguaje para los datos y permite la creación de nuevas columnas o matrices de números utilizando operaciones en estas estructuras de datos. El álgebra lineal se desarrolló a fines del siglo XIX para resolver sistemas desconocidos de ecuaciones lineales y ahora es un requisito previo clave para comprender el aprendizaje automático.

  • 00:05:00 El orador analiza el álgebra lineal numérica, que es la aplicación del álgebra lineal en las computadoras. Esto incluye la implementación de operaciones de álgebra lineal, así como el manejo de los posibles problemas que surgen cuando se trabaja con una precisión de coma flotante limitada en computadoras digitales. El álgebra lineal numérica es una herramienta esencial en el aprendizaje automático, ya que muchos algoritmos de aprendizaje profundo se basan en la capacidad de las unidades de procesamiento gráfico para calcular operaciones de álgebra lineal rápidamente. Varias bibliotecas de álgebra lineal numérica de código abierto populares se utilizan para calcular operaciones de álgebra lineal, con bibliotecas de álgebra lineal basadas en Fortran que proporcionan la base para la mayoría de las implementaciones modernas que utilizan lenguajes de programación como Python. El álgebra lineal también es esencial en estadística, especialmente en análisis estadístico multivariado, análisis de componentes principales y resolución de problemas de regresión lineal. Además, el orador analiza las diversas aplicaciones del álgebra lineal en campos como el procesamiento de señales, los gráficos por computadora e incluso la física, con la teoría de la relatividad de Albert Einstein usando tensores y cálculo de tensores, un tipo de álgebra lineal.

  • 00:10:00 Se presenta el concepto de usar operaciones de álgebra lineal en imágenes como recortar, escalar y cortar usando notación y operaciones de álgebra lineal. Además, se explica la popular técnica de codificación para variables categóricas llamada codificación en caliente. Además, se analiza la estructura de datos principal utilizada en el aprendizaje automático, matrices N-dimensionales o matrices ND, y cómo crearlas y manipularlas utilizando la biblioteca NumPy en Python. Finalmente, se explican dos de las funciones más populares para crear nuevos arreglos a partir de arreglos existentes, v-stack y apilamiento horizontal.

  • 00:15:00 El orador analiza cómo manipular y acceder a los datos en matrices numpy, que generalmente se usan para representar datos de aprendizaje automático. La lista unidimensional se puede convertir en una matriz usando la función de matriz, y una matriz de datos bidimensional se puede crear usando una lista de listas. Acceder a los datos a través de la indexación es similar a otros lenguajes de programación, pero las matrices numpy también se pueden dividir utilizando el operador de dos puntos. También es posible la indexación negativa, y el corte se puede usar para especificar variables de entrada y salida en el aprendizaje automático.

  • 00:20:00 El video cubre técnicas para trabajar con conjuntos de datos multidimensionales comunes en el aprendizaje automático. Comienza con el corte unidimensional y continúa con el corte bidimensional y la separación de datos en valores de entrada y salida para entrenamiento y prueba. Luego, el video cubre la remodelación de matrices, incluida la remodelación de matrices unidimensionales en matrices bidimensionales con una columna y la remodelación de datos bidimensionales en una matriz tridimensional para algoritmos que esperan múltiples muestras de uno o más pasos de tiempo y una o más características. . Finalmente, el video cubre la transmisión de matrices, que permite sumar, restar o usar matrices con diferentes tamaños en aritmética, lo cual es útil para conjuntos de datos con diferentes tamaños.

  • 00:25:00 Se discuten las limitaciones de la aritmética de matrices en numpy, que incluyen solo realizar aritmética en matrices con las mismas dimensiones y dimensiones con el mismo tamaño. Sin embargo, esta limitación se supera con la función de transmisión integrada de numpy que replica la matriz más pequeña a lo largo de la última dimensión no coincidente. Este método permite la aritmética entre matrices con diferentes formas y tamaños. Se dan tres ejemplos de transmisión, que incluyen matrices escalares y unidimensionales, escalar en una matriz bidimensional y matriz unidimensional en una matriz bidimensional. También se señalan las limitaciones de la transmisión, incluida la regla estricta que debe cumplirse para que se realice la transmisión, que establece que la aritmética solo se puede realizar a partir de la forma de cada dimensión en las matrices son iguales o uno tiene el tamaño de dimensión de uno.

  • 00:30:00 El disertante introduce el concepto de vectores, que son tuplas de uno o más valores llamados escalares y a menudo se representan usando un carácter en minúscula como "v". Los vectores se pueden considerar como puntos o coordenadas en un espacio n-dimensional donde n es el número de dimensiones, y se pueden crear como una matriz numérica en Python. El orador también analiza las operaciones aritméticas de vectores, como la suma y resta de vectores, que se realizan por elementos para vectores de igual longitud que dan como resultado un nuevo vector de la misma longitud. Además, el orador explica que los vectores se pueden multiplicar por un escalar para escalar su magnitud y cómo realizar estas operaciones usando matrices numpy en Python. Por último, el orador habla sobre el producto escalar de dos vectores, que da un escalar, y cómo se puede usar para calcular la suma ponderada de un vector.

  • 00:35:00 La atención se centra en las normas vectoriales y su importancia en el aprendizaje automático. Las normas de vectores se refieren al tamaño o la longitud de un vector, calculado utilizando alguna medida que resume la distancia del vector desde el origen del espacio vectorial. La norma es siempre un número positivo, excepto por un vector de todos los valores cero. Se presentan cuatro cálculos de normas vectoriales comunes que se utilizan en el aprendizaje automático, comenzando con la norma vectorial L1, que luego es seguida por las normas L2 y max. La sección también define matrices y cómo manipularlas en Python, analizando la aritmética de matrices, la multiplicación matriz-matriz (producto escalar), la multiplicación matriz-vector y la multiplicación escalar. Una matriz es un arreglo bidimensional de escalares con una o más columnas y una o más filas, y a menudo se representa con una letra mayúscula, como A.

  • 00:40:00 Se introduce el concepto de operaciones matriciales para el aprendizaje automático, incluida la multiplicación de matrices, la división de matrices y la multiplicación escalar de matrices. La multiplicación de matrices, también conocida como producto escalar de matrices, requiere que el número de columnas en la primera matriz sea igual al número de filas en la segunda matriz. La función de punto en numpy se puede usar para implementar esta operación. También se introduce el concepto de transposición de matriz, donde se crea una nueva matriz al invertir el número de filas y columnas de la matriz original. Por último, se discute el proceso de inversión de matrices, que encuentra otra matriz que se multiplicará con la matriz dando como resultado una matriz identidad.

  • 00:45:00 Se cubre el concepto de inversión de matriz, donde la inversión de una matriz se indica con un superíndice negativo 1 al lado de la matriz. La operación de inversión de matrices implica encontrar un conjunto de métodos numéricos eficientes. También se analiza la operación de rastreo de una matriz cuadrada, que se puede calcular usando la función de rastreo en numpy. El determinante de una matriz cuadrada se define como una representación escalar del volumen de una matriz y también se puede calcular usando la función det en numpy. Además, se introduce el rango de una matriz, que estima el número de filas o columnas linealmente independientes en la matriz y se calcula comúnmente mediante la descomposición de valores singulares. Finalmente, se explica el concepto de matrices dispersas, que son matrices que contienen en su mayoría valores cero y son computacionalmente costosas de representar y trabajar con ellas.

  • 00:50:00 Aprendemos sobre matrices dispersas, que son matrices que en su mayoría se componen de valores cero y son diferentes de las matrices densas que tienen en su mayoría valores distintos de cero. La dispersión se puede cuantificar calculando la puntuación, que es el número de valores cero dividido por el número total de elementos de la matriz. También aprendemos sobre los dos grandes problemas con la escasez: la complejidad del espacio y la complejidad del tiempo. Scipy proporciona herramientas para crear matrices dispersas y muchas funciones numpy y scipy de álgebra lineal pueden operar en ellas. Las matrices dispersas se usan comúnmente en el aprendizaje automático aplicado para la observación y preparación de datos.

  • 00:55:00 Se discuten los diferentes tipos de matrices comúnmente utilizadas en álgebra lineal, particularmente relevantes para el aprendizaje automático. Se introducen matrices cuadradas, donde el número de filas es igual al número de columnas, junto con matrices rectangulares. También se cubren la diagonal principal y el orden de una matriz cuadrada. Además, se explican las matrices simétricas, las matrices triangulares (incluidas la superior y la inferior), las matrices diagonales, las matrices de identidad y las matrices ortogonales. Se observa que una matriz ortogonal se forma cuando dos vectores tienen un producto escalar igual a cero.

  • 01:00:00 Aprendemos sobre matrices ortogonales y tensores. Una matriz ortogonal es un tipo de matriz cuadrada cuyas columnas y filas son vectores unitarios ortogonales. Estas matrices son computacionalmente baratas y estables para calcular su inversa y pueden usarse en modelos de aprendizaje profundo. En Tensorflow, los tensores son una estructura de datos fundamental y una generalización de vectores y matrices, representados como matrices multidimensionales. Los tensores se pueden manipular en Python usando arreglos n-dimensionales, similares a las matrices, con operaciones de tensor por elemento, como la suma y la resta. Además, las operaciones de producto tensorial se pueden realizar en tensores, matrices y vectores, lo que permite una intuición de dimensiones más altas.

  • 01:05:00 El video presenta la descomposición de matrices, un método para reducir una matriz en sus partes constituyentes y simplificar operaciones de matriz más complejas que se pueden realizar en la matriz de descomposición. Dos técnicas de descomposición de matrices ampliamente utilizadas que se tratan en las próximas lecciones son la descomposición de matrices LU para matrices cuadradas y la descomposición de matrices QR para matrices rectangulares. La descomposición LU se puede utilizar para simplificar ecuaciones lineales en el problema de regresión lineal y calcular el determinante y el inverso de una matriz, mientras que la descomposición QR tiene aplicaciones para resolver sistemas de ecuaciones lineales. Ambas descomposiciones se pueden implementar usando funciones integradas en el paquete NumPy en Python.

  • 01:10:00 El video analiza la descomposición de Cholesky, que se utiliza para matrices definidas positivas y simétricas. Este método es casi el doble de eficiente que la descomposición LU y se prefiere para la descomposición de matrices simétricas. La descomposición de Cholesky está representada por una matriz triangular inferior, a la que se puede acceder fácilmente a través de la función de Cholosky en NumPy. El video también menciona que los métodos de descomposición de matrices, incluida la descomposición propia, se utilizan para simplificar operaciones complejas, y la descomposición propia descompone una matriz en vectores propios y valores propios. Finalmente, el video señala que los vectores propios son vectores unitarios, mientras que los valores propios son escalares, y ambos son útiles para reducir la dimensionalidad y realizar operaciones matriciales complejas.

  • 01:15:00 Se discute el concepto de descomposición propia y su cálculo usando un algoritmo iterativo eficiente. La descomposición propia es un método para descomponer una matriz cuadrada en sus valores propios y vectores propios, que son coeficientes y direcciones respectivamente. La descomposición propia se puede calcular en NumPy usando la función eig, y se pueden realizar pruebas para confirmar que un vector es de hecho un vector propio de una matriz. La matriz original también se puede reconstruir a partir de los valores propios y los vectores propios. La sección también presenta brevemente la descomposición de valor singular (SVD) como un método de descomposición de matriz para reducir la matriz en sus partes constituyentes para simplificar ciertos cálculos de matriz posteriores y sus aplicaciones en varios campos, como compresión, eliminación de ruido y reducción de datos.

  • 01:20:00 Se discute el concepto de descomposición de valores singulares (SVD) y sus aplicaciones en el aprendizaje automático. SVD se utiliza en el cálculo de otras operaciones de matrices y métodos de reducción de datos en el aprendizaje automático, como la regresión lineal de mínimos cuadrados, la compresión de imágenes y la eliminación de ruido. La matriz original se puede reconstruir a partir de los elementos u, sigma yv devueltos por el SVD. Una aplicación popular de SVD es la reducción de la dimensionalidad, donde los datos se pueden reducir a un subconjunto más pequeño de características que son las más relevantes para el problema de predicción. Esto se ha aplicado con éxito en el procesamiento del lenguaje natural utilizando una técnica llamada análisis semántico latente o indexación semántica latente. Se analiza la clase SVD truncada que implementa directamente esta capacidad y se demuestra su aplicación utilizando una matriz definida seguida de una versión transformada.
Applied Linear Algebra for Machine Learning Engineers
Applied Linear Algebra for Machine Learning Engineers
  • 2022.03.26
  • www.youtube.com
This course will cover everything you need to know about linear algebra for your career as a machine learning engineer.
 

Una introducción completa a XGBoost para ingenieros de aprendizaje automático


Una introducción completa a XGBoost para ingenieros de aprendizaje automático

En el video, el instructor proporciona una introducción completa a XGBoost para ingenieros de aprendizaje automático. Explican que XGBoost es una biblioteca de aprendizaje automático de código abierto conocida por su capacidad para crear rápidamente modelos de clasificación y regresión de alta precisión. Ha ganado popularidad como la mejor opción para construir modelos del mundo real, particularmente cuando se trata de conjuntos de datos altamente estructurados. XGBoost fue creado por Taiki Chen y se basa en la técnica de árboles de decisión de impulso de gradiente, que permite la construcción de modelos rápida y eficiente.

El instructor destaca que XGBoost admite múltiples interfaces, incluidas las implementaciones de Python y scikit-learn. Proceden a dar una demostración de XGBoost, mostrando varios módulos para cargar datos y construir modelos.

Luego, el video se enfoca en preparar el conjunto de datos para entrenar un modelo XGBoost. El instructor enfatiza la importancia de separar los datos en conjuntos de entrenamiento y prueba. Identifican la variable de destino como un problema de clasificación binaria y explican el proceso de configuración de los hiperparámetros necesarios para el modelo XGBoost. Una vez que el modelo se entrena en los datos de entrenamiento, evalúan su precisión en los datos de prueba utilizando la puntuación de precisión como métrica.

Para proporcionar una mejor comprensión de XGBoost, el instructor profundiza en el concepto de aumento de gradiente y su función en la categoría más amplia de modelos tradicionales de aprendizaje automático. Explican que el aumento de gradiente es una técnica que combina un modelo débil con otros modelos del mismo tipo para crear un modelo más preciso. En este proceso, cada árbol sucesivo se construye para los residuos de predicción del árbol anterior. El instructor enfatiza que los árboles de decisión se utilizan en la potenciación de gradientes, ya que brindan una representación gráfica de posibles soluciones de decisión basadas en condiciones dadas. También mencionan que diseñar un árbol de decisiones requiere un proceso de pensamiento bien documentado para identificar soluciones potenciales de manera efectiva.

El video explora aún más la creación de árboles de decisión binarios mediante la división binaria recursiva. Este proceso implica evaluar todas las variables de entrada y los puntos de división de manera codiciosa para minimizar una función de costo que mide la proximidad de los valores predichos a los valores reales. El instructor explica que se elige la división con el costo más bajo y los grupos resultantes se pueden subdividir recursivamente. Destacan que el algoritmo utilizado es codicioso, ya que se enfoca en tomar la mejor decisión en cada paso. Sin embargo, se prefiere tener árboles de decisión con menos divisiones para garantizar una mejor comprensión y reducir el riesgo de sobreajustar los datos. El instructor destaca que XGBoost proporciona mecanismos para evitar el sobreajuste, como limitar la profundidad máxima de cada árbol y podar ramas irrelevantes. Además, cubren la codificación de etiquetas y demuestran cómo cargar el conjunto de datos del iris usando scikit-learn.

Continuando, el video cubre el proceso de codificación de la etiqueta de destino como una variable numérica usando el método del codificador de etiquetas. Después de dividir los datos en conjuntos de datos de entrenamiento y prueba, el instructor define y entrena el clasificador XGBoost en los datos de entrenamiento. Luego usan el modelo entrenado para hacer predicciones sobre el conjunto de datos de prueba, logrando una precisión del 90 %. El concepto de aprendizaje conjunto se presenta como un método para combinar múltiples modelos para mejorar la precisión de la predicción y, en última instancia, mejorar la eficiencia del algoritmo de aprendizaje. El instructor enfatiza la importancia de seleccionar el modelo correcto para problemas de clasificación o regresión para lograr resultados óptimos.

El video se sumerge en el concepto de sesgo y variación en los modelos de aprendizaje automático y enfatiza la necesidad de un equilibrio entre los dos. El aprendizaje conjunto se presenta como una técnica para abordar este equilibrio al combinar grupos de alumnos débiles para crear modelos más complejos. Se introducen dos técnicas de conjunto, bagging y boosting. El embolsado tiene como objetivo reducir la varianza mediante la creación de subconjuntos de datos para entrenar árboles de decisión y crear un conjunto de modelos con alta varianza y bajo sesgo. El boosting, por otro lado, involucra modelos de aprendizaje secuencial con árboles de decisión, lo que permite la corrección de errores cometidos por modelos anteriores. El instructor destaca que el aumento de gradiente es un tipo específico de aumento que optimiza una función de pérdida diferenciable utilizando aprendices débiles en forma de árboles de regresión.

El video explica en detalle el concepto de aumento de gradiente y describe su proceso de tres pasos. El primer paso implica la adición iterativa de alumnos débiles (por ejemplo, árboles de decisión) para minimizar la pérdida. El segundo paso es la adición secuencial de árboles y el paso final se enfoca en reducir el error del modelo a través de más iteraciones. Para demostrar el proceso, el video muestra el uso de la validación cruzada k-fold para segmentar los datos. A través de XGBoost se obtienen puntuaciones por cada pliegue. El instructor elige árboles de decisión como aprendices débiles, asegurando una profundidad superficial para evitar el sobreajuste. Finalmente, una función de pérdida se define como una medida de qué tan bien se ajusta el modelo de aprendizaje automático a los datos.

Se explican los pasos básicos del aumento de gradiente, que incluyen la optimización de la función de pérdida, la utilización de alumnos débiles (a menudo árboles de decisión) y la combinación de múltiples alumnos débiles de manera aditiva a través del aprendizaje en conjunto. El video también cubre aspectos prácticos del uso de XGBoost, como el manejo de valores faltantes, el almacenamiento de modelos en el disco y el empleo de la detención anticipada. Se proporcionan demostraciones utilizando código Python para ilustrar varios casos de uso de XGBoost. Además, el video enfatiza la importancia de la limpieza de datos, incluidas las técnicas para manejar los valores faltantes, como la imputación del valor medio.

El orador analiza la importancia de limpiar los datos correctamente en lugar de depender únicamente de algoritmos para hacer el trabajo. Demuestran cómo la eliminación de valores vacíos puede mejorar la precisión del modelo y la precaución contra los algoritmos que manejan valores vacíos. El concepto de decapado, que implica guardar modelos entrenados en el disco para su uso posterior, se presenta mediante la biblioteca de decapado en Python. El orador demuestra cómo guardar y cargar modelos. También muestran cómo trazar la importancia de cada atributo en un conjunto de datos utilizando la función de importancia de trazado en XGBoost y la biblioteca matplotlib.

El orador analiza la importancia de analizar y probar diferentes escenarios al crear modelos de aprendizaje automático, y enfatiza que las puntuaciones de importancia de las funciones de XGBoost pueden no siempre reflejar el impacto real de una función en la precisión del modelo. Utilizan el ejemplo del conjunto de datos Titanic para demostrar cómo agregar el atributo "sexo" mejora la precisión del modelo, a pesar de tener una clasificación baja en las puntuaciones de importancia de las características. El orador enfatiza la importancia de probar varios escenarios y no confiar únicamente en los puntajes de importancia de las características. También mencionan que XGBoost puede evaluar e informar el rendimiento de un conjunto de prueba durante el entrenamiento.

El video explica cómo monitorear el rendimiento de un modelo XGBoost durante el entrenamiento especificando una métrica de evaluación y pasando una matriz de pares x e y. El rendimiento del modelo en cada conjunto de evaluación se almacena y está disponible después del entrenamiento. El video cubre las curvas de aprendizaje, que brindan información sobre el comportamiento del modelo y ayudan a prevenir el sobreajuste al detener el aprendizaje temprano. La detención anticipada se presenta como una técnica para detener el entrenamiento después de un número fijo de épocas si no se observa una mejora en la puntuación de validación.

El video cubre el uso de rondas de detención temprana en XGBoost y demuestra la construcción de un modelo de regresión para evaluar los precios de las viviendas en Boston. Se analizan los beneficios del paralelismo en la potenciación de gradientes, centrándose en la construcción de árboles individuales y la preparación eficiente de los datos de entrada. El video proporciona una demostración del soporte de subprocesos múltiples, que utiliza todos los núcleos del sistema para ejecutar cálculos simultáneamente, lo que resulta en una ejecución más rápida del programa. Aunque XGBoost está orientado principalmente a problemas de clasificación, el video también destaca su capacidad para sobresalir en la creación de modelos de regresión.

El orador crea una lista para contener el número de iteraciones de un ejemplo y utiliza un bucle for para probar la velocidad de ejecución del modelo en función del número de subprocesos. Imprimen la velocidad de la compilación para cada iteración y trazan los resultados, mostrando cómo disminuye la velocidad del modelo a medida que aumenta la cantidad de subprocesos. Luego, el orador analiza el ajuste de hiperparámetros, que implica ajustar los parámetros en un modelo para mejorar su rendimiento. Exploran los parámetros predeterminados para XGBoost y scikit-learn y mencionan que ajustar los hiperparámetros es esencial para optimizar el rendimiento de un modelo XGBoost. El video explica que los hiperparámetros son configuraciones que no se aprenden de los datos, sino que el usuario las configura manualmente. El ajuste de hiperparámetros implica la búsqueda sistemática de la mejor combinación de valores de parámetros que den como resultado el mayor rendimiento del modelo.

Para realizar el ajuste de hiperparámetros, el video presenta dos enfoques comunes: búsqueda en cuadrícula y búsqueda aleatoria. La búsqueda en cuadrícula implica definir una cuadrícula de valores de hiperparámetros y evaluar exhaustivamente cada combinación. La búsqueda aleatoria, por otro lado, muestra aleatoriamente combinaciones de hiperparámetros de un espacio de búsqueda predefinido. El video recomienda usar la búsqueda aleatoria cuando el espacio de búsqueda es grande o la cantidad de hiperparámetros es alta.

El video demuestra el ajuste de hiperparámetros usando la clase RandomizedSearchCV de scikit-learn. Definen una cuadrícula de parámetros que contiene diferentes valores para los hiperparámetros, como la tasa de aprendizaje, la profundidad máxima y la relación de submuestra. La clase RandomizedSearchCV realiza una búsqueda aleatoria con validación cruzada, evaluando el rendimiento de cada combinación de parámetros. Después del ajuste, se seleccionan los mejores hiperparámetros y el modelo se entrena con estos valores óptimos.

El orador explica que el ajuste de hiperparámetros ayuda a encontrar el mejor equilibrio entre el ajuste insuficiente y el ajuste excesivo. Es importante lograr un equilibrio y evitar el sobreajuste seleccionando cuidadosamente los hiperparámetros en función del conjunto de datos específico y el problema en cuestión.

Además del ajuste de hiperparámetros, el video analiza la importancia de las funciones en los modelos XGBoost. La importancia de las características proporciona información sobre qué características tienen el impacto más significativo en las predicciones del modelo. El ponente explica que la importancia de la función está determinada por la ganancia media, que mide la mejora en la función de pérdida que aporta una función cuando se utiliza en un árbol de decisión. Una ganancia promedio más alta indica una importancia más alta.

El video demuestra cómo extraer y visualizar la importancia de las características utilizando la biblioteca XGBoost. Trazan un gráfico de barras que muestra las características principales y sus puntuaciones de importancia correspondientes. El orador señala que la importancia de las características puede ayudar en la selección de características, la reducción de la dimensionalidad y la obtención de información sobre el problema subyacente.

Hacia el final del video, el orador menciona brevemente otros temas avanzados relacionados con XGBoost. Abordan el manejo de conjuntos de datos desequilibrados mediante el ajuste del hiperparámetro scale_pos_weight, el manejo de valores faltantes mediante la capacidad integrada de XGBoost y el manejo de variables categóricas a través de la codificación one-hot o mediante el soporte integrado para características categóricas en XGBoost.

El video proporciona una descripción general completa de XGBoost, que cubre sus conceptos clave, implementación, ajuste de hiperparámetros y análisis de importancia de características. Las demostraciones y los ejemplos de código ayudan a ilustrar los aspectos prácticos de trabajar con XGBoost en Python. Sirve como un recurso valioso para los ingenieros de aprendizaje automático que buscan utilizar XGBoost para sus tareas de clasificación y regresión.

  • 00:00:00 El instructor proporciona una introducción a XGBoost para ingenieros de aprendizaje automático. XGBoost es una biblioteca de aprendizaje automático de código abierto que se utiliza para crear rápidamente modelos de clasificación y regresión de alta precisión, lo que la convierte en la mejor opción para crear modelos del mundo real contra conjuntos de datos altamente estructurados. El autor de XGBoost es Taiki Chen, y es una implementación de árboles de decisión de aumento de gradiente para velocidad y rendimiento. El instructor también destaca que XGBoost es compatible con varias interfaces, como Python y las implementaciones de scikit-learn, y proporciona una demostración de XGBoost utilizando varios módulos para cargar datos y crear modelos.

  • 00:05:00 El instructor explica cómo preparar el conjunto de datos para entrenar un modelo XGBoost, centrándose en separar los datos en conjuntos de entrenamiento y prueba. La variable de destino se identifica como un problema de clasificación binaria y se establecen los hiperparámetros necesarios para el modelo XGBoost. El modelo se entrena con los datos de entrenamiento y la precisión del modelo se evalúa con los datos de prueba utilizando la puntuación de precisión como métrica. El instructor también brinda una descripción general del aumento de gradiente, el concepto detrás de XGBoost y cómo encaja en la categoría más amplia de modelos tradicionales de aprendizaje automático.

  • 00:10:00 Aprendemos sobre la división binaria recursiva y el aprendizaje conjunto, que combina múltiples modelos débiles para mejorar la precisión de las predicciones. El aumento de gradiente es una técnica para crear modelos predictivos mediante la combinación de un modelo débil con otros modelos del mismo tipo para producir un modelo más preciso. Cada árbol sucesivo se construye para los residuos de predicción del árbol anterior. Los árboles de decisión se utilizan en la potenciación de gradientes y suponen una representación gráfica de todas las posibles soluciones a una decisión basada en determinadas condiciones. El diseño de un árbol de decisiones requiere un proceso de pensamiento bien documentado que ayude a formalizar el proceso de lluvia de ideas para que podamos identificar más soluciones potenciales.

  • 00:15:00 El video explica cómo se crean los árboles de decisión binarios. El proceso se denomina división binaria recursiva e implica evaluar todas las variables de entrada y los puntos de división de manera codiciosa para minimizar una función de costo que mide qué tan cerca están los valores predichos de sus valores reales correspondientes. Se elige la división con el costo más bajo y los grupos resultantes se pueden subdividir recursivamente. El algoritmo es codicioso y se enfoca en tomar la mejor decisión en cada paso. Se prefieren los árboles de decisión con menos divisiones, ya que son más fáciles de entender y es menos probable que sobreajusten los datos. Para evitar el sobreajuste, el algoritmo XGBoost permite un mecanismo para detener el crecimiento de los árboles, como limitar la profundidad máxima de cada árbol y podar las ramas irrelevantes. El video también cubre la codificación de etiquetas y la carga del conjunto de datos del iris usando scikit-learn.

  • 00:20:00 El video cubre el proceso de codificación de una etiqueta de destino como una variable numérica, utilizando el método de codificador de etiquetas. Una vez que los datos se han dividido en conjuntos de datos de entrenamiento y prueba, el clasificador XGBoost se define y entrena en los datos de entrenamiento. Luego, el modelo se usa para hacer predicciones sobre el conjunto de datos de prueba con un 90 % de precisión. Luego se presenta el aprendizaje de conjunto como un método para combinar múltiples modelos para mejorar la precisión de las predicciones, lo que permite un algoritmo de aprendizaje más eficiente. El video enfatiza la importancia de elegir el modelo correcto para problemas de clasificación o regresión cuando se trata de lograr los mejores resultados.

  • 00:25:00 Se discute el concepto de sesgo y variación en los modelos de aprendizaje automático y se enfatiza la necesidad de un equilibrio entre los dos. El aprendizaje en conjunto se presenta como una técnica utilizada para abordar este equilibrio mediante la combinación de grupos de alumnos débiles para crear modelos más complejos. El embolsado y el impulso son dos técnicas de conjunto, y el embolsado se utiliza para reducir la varianza mediante la creación de varios subconjuntos de datos para entrenar árboles de decisión y crear un conjunto de modelos con alta varianza y bajo sesgo. El impulso implica aprender modelos secuencialmente con árboles de decisión, lo que permite la corrección de errores de modelos anteriores, y se logra con el trabajo en equipo entre los alumnos débiles para clasificar correctamente la entrada. El aumento de gradiente es un tipo específico de aumento que implica la optimización de una función de pérdida diferenciable y el uso de aprendices débiles en forma de árboles de regresión.

  • 00:30:00 Se introdujo el concepto de aumento de gradiente y se explicó su proceso de tres pasos. El primer paso implica agregar alumnos débiles como árboles de decisión en un proceso iterativo para minimizar la pérdida. El segundo paso es la adición secuencial de árboles, mientras que el paso final tiene como objetivo reducir el error del modelo a través de más iteraciones. La demostración involucró el uso de validación cruzada de k-fold para segmentar datos y, a través de XGBoost, se obtuvieron puntajes para cada pliegue. El árbol de decisión se utilizó como el alumno débil de elección, con poca profundidad para evitar el sobreajuste. Por último, se definió una función de pérdida como una medida de qué tan bien se ajusta el modelo de aprendizaje automático a los datos de un fenómeno particular.

  • 00:35:00 Se explican los pasos principales del aumento de gradiente, que incluyen la optimización de la función de pérdida, el uso de un alumno débil (normalmente un árbol de decisión) y la combinación de muchos alumnos débiles de forma aditiva a través del aprendizaje conjunto. La sección también cubre varios aspectos prácticos del uso de XGBoost, como el manejo de valores faltantes, el almacenamiento de modelos en el disco y el uso de la detención anticipada. En esta sección se adopta un enfoque basado en código, con numerosas demostraciones para mostrar varios usos de XGBoost. Además, la sección explora la importancia de la limpieza de datos, incluida la forma de reemplazar los valores faltantes con la imputación del valor medio.

  • 00:40:00 El orador analiza la importancia de limpiar sus propios datos y no depender de algoritmos para que hagan el trabajo por usted. Demuestran cómo eliminar valores vacíos puede mejorar la precisión del modelo y advierten que no se permita que los algoritmos manejen valores vacíos. El orador también presenta el concepto de decapado, que es una forma de guardar modelos entrenados en el disco para su uso posterior, y demuestra cómo usar la biblioteca de decapado para guardar y cargar modelos en Python. Finalmente, muestran cómo trazar la importancia de cada atributo en un conjunto de datos utilizando la función de importancia de trazado en XGBoost y matplotlib.

  • 00:45:00 El orador analiza los puntajes de importancia de las funciones determinados por XGBoost y la importancia de analizar y probar diferentes escenarios al crear modelos de aprendizaje automático. Usan el ejemplo del conjunto de datos del Titanic y muestran cómo agregar el atributo "sexo" mejora la precisión del modelo, a pesar de que está clasificado bajo en las puntuaciones de importancia de las características. El orador enfatiza la importancia de probar varios escenarios y no depender únicamente de los puntajes de importancia de las características. También mencionan la capacidad de XGBoost para evaluar e informar el rendimiento de un conjunto de prueba durante el entrenamiento.

  • 00:50:00 El video explica cómo monitorear el rendimiento del modelo XGBoost durante el entrenamiento especificando una métrica de evaluación y pasando una matriz de pares x e y. El rendimiento del modelo en cada conjunto de evaluación se almacena y está disponible después del entrenamiento. Con estas medidas de rendimiento, se pueden crear curvas de aprendizaje para obtener más información sobre el comportamiento del modelo y, potencialmente, detener el aprendizaje antes de tiempo para evitar el sobreajuste. El video también cubre la detención anticipada, una técnica en la que el entrenamiento se detiene después de un número fijo de épocas si no se observa una mejora en el puntaje de validación.

  • 00:55:00 El video cubre el uso de rondas de detención temprana en XGBoost y la construcción de un modelo de regresión para evaluar los precios de las viviendas en Boston. También se analizan los beneficios del paralelismo en la potenciación de gradientes, centrándose en la construcción de árboles individuales y la preparación eficiente de los datos de entrada. Se proporciona una demostración de compatibilidad con subprocesos múltiples, que permite una ejecución más rápida del programa al realizar varios cálculos al mismo tiempo, haciendo uso de todos los núcleos de su sistema. El video también menciona que aunque XGBoost está orientado a problemas de clasificación, también puede sobresalir en la construcción de modelos de regresión.

  • 01:00:00 El hablante crea una lista para contener el número de iteraciones del ejemplo y usa un bucle for para probar la velocidad de ejecución del modelo en función del número de subprocesos. Se imprimen dos resultados: la velocidad de construcción para cada iteración y un gráfico para mostrar cómo disminuye la velocidad del modelo a medida que aumenta el número de subprocesos. Luego, el orador analiza el ajuste de hiperparámetros, lo que significa pasar parámetros a un modelo para mejorar su rendimiento. Exploran los parámetros predeterminados para xgboost y scikit-learn, y observan que ajustar los hiperparámetros puede requerir algo de trabajo para exprimir el rendimiento del modelo. Finalmente, profundizan en cuántos árboles o aprendices débiles o estimadores se necesitan para configurar un modelo de aumento de gradiente y qué tan grande debe ser cada árbol.

  • 01:05:00 El video enseña cómo ajustar los hiperparámetros para optimizar el modelo XGBoost. Muestran un ejemplo de búsqueda en cuadrícula para el parámetro del modelo del estimador n, que evalúa una serie de valores para probar los estimadores en un modelo determinado. También cubren diferentes técnicas de submuestra y cómo se puede especificar el muestreo de filas en el segundo contenedor de la clase XGBoost. Además, el video destaca la importancia de configurar la tasa de aprendizaje, que se realiza a través de prueba y error. Se muestra que la tasa de aprendizaje interactúa con muchos otros aspectos del proceso de optimización, y las tasas de aprendizaje más pequeñas requerirán más épocas de entrenamiento. Finalmente, las gráficas de diagnóstico son útiles para investigar cómo la tasa de aprendizaje afecta la tasa de aprendizaje y la dinámica de aprendizaje del modelo.

  • 01:10:00 El presentador demuestra cómo crear un modelo XGBoost de alta puntuación en el conjunto de datos del Titanic. El presentador usa pandas y entrena bibliotecas divididas de prueba para preprocesar los datos y XGBoost para entrenar el modelo. La calificación de precisión del modelo está por encima de 80, lo que lo hace digno de reanudar. El presentador también advierte contra las personas que cargan puntajes falsos en la tabla de clasificación de Kaggle, ya sea sobreajustando el modelo o modificando los resultados. Finalmente, el presentador recorre el código línea por línea, demostrando la limpieza de datos, la codificación de etiquetas, el manejo de valores nulos, la definición de los ejes X e Y y la división de datos para entrenar y probar el modelo.

  • 01:15:00 Se reiteró la importancia de manejar correctamente los datos que faltan, ya que el aprendizaje automático aplicado se trata principalmente de datos y no tanto de modelado. Además, se explicaron los resultados de monitorear el rendimiento de un modelo y se presentó la detención temprana como un enfoque para entrenar modelos complejos de aprendizaje automático para evitar el sobreajuste. La sección también incluyó una discusión sobre la configuración de la compatibilidad con subprocesos múltiples para XGBoost y los hiperparámetros predeterminados para XGBoost y Scikit-learn.
A Complete Introduction to XGBoost for Machine Learning Engineers
A Complete Introduction to XGBoost for Machine Learning Engineers
  • 2022.03.28
  • www.youtube.com
This course will cover all the core aspects of the most well-known gradient booster used in the real-world.
 

Aprendizaje automático con BigQuery en la plataforma en la nube de Google



Aprendizaje automático con BigQuery en la plataforma en la nube de Google

El video analiza el contenido de un curso que se enfoca en el uso de BigQuery para el aprendizaje automático. BigQuery es un almacén de datos empresarial que inicialmente se usó internamente en Google y luego se convirtió en un servicio en la nube. Es altamente escalable y sin servidor, capaz de acomodar petabytes de datos y proporcionar resultados de consulta rápidos. La instrucción del curso se basa en estudios de casos del mundo real, guiando a los alumnos a través del proceso de construcción de modelos de aprendizaje automático desde el abastecimiento de datos hasta la creación de modelos. A lo largo del curso, los alumnos utilizan BigQuery para construir sus modelos, lo que requiere que configuren una cuenta de Google Cloud Platform (GCP) específica para BigQuery.

El video explica los principios rectores de Google para escalar los recursos de hardware y enfatiza la decisión de escalar horizontalmente en lugar de escalar verticalmente. Google reconoce que el hardware puede fallar en cualquier momento, por lo que los diseños deben tener en cuenta las posibles fallas. Además, Google utiliza hardware básico, que es asequible y permite la flexibilidad del proveedor. Se prefiere escalar horizontalmente a escalar verticalmente debido al alto costo del hardware. Google ha desarrollado tecnologías como GFS, MapReduce y Bigtable, que han llevado a una arquitectura de hardware escalable. Colossus reemplazó a GFS y sirve como el subsistema distribuido subyacente para las tecnologías de Google, incluido BigQuery.

El disertante brinda una descripción general de la solución de base de datos de Google, Spanner, que se distribuye globalmente y depende de Colossus para administrar transacciones distribuidas. El video también demuestra el proceso de registro y administración de cuentas de facturación dentro de Google Cloud Platform. Los usuarios pueden crear una cuenta de GCP visitando el sitio web de la plataforma, aceptando los términos y proporcionando la información necesaria. A los nuevos usuarios se les otorga un crédito de $ 300 para usar en GCP, que se puede monitorear a través de la sección de facturación. El ponente aconseja configurar alertas de presupuesto para recibir notificaciones cuando se alcancen determinados objetivos de facturación.

La creación y el propósito de BigQuery se analizan en detalle. El crecimiento exponencial de datos de Google hizo necesario el desarrollo de BigQuery, que permite realizar consultas interactivas sobre grandes conjuntos de datos. BigQuery puede manejar consultas sin importar si involucran 50 filas o 50 mil millones de filas. Su dialecto SQL no estándar facilita una curva de aprendizaje corta y puede paralelizar la ejecución de SQL en miles de máquinas. Si bien BigQuery almacena datos estructurados, se diferencia de las bases de datos relacionales en que admite tipos de registros anidados dentro de las tablas, lo que permite el almacenamiento de estructuras anidadas.

Se explica la arquitectura de BigQuery, destacando su enfoque de paralelización. A diferencia de la mayoría de los sistemas de bases de datos relacionales que ejecutan una consulta por núcleo, BigQuery está diseñado para ejecutar una sola consulta en miles de núcleos, lo que mejora significativamente el rendimiento en comparación con los enfoques tradicionales. El motor Dremel habilita la canalización de consultas, lo que permite que otras consultas utilicen núcleos disponibles mientras algunas esperan E/S. BigQuery emplea un enfoque de múltiples inquilinos, lo que permite que varios clientes ejecuten consultas simultáneamente en el mismo hardware sin afectar otras ubicaciones. La interfaz de BigQuery consta de tres paneles principales, que incluyen el historial de consultas, las consultas guardadas, el historial de trabajos y las secciones de recursos para organizar el acceso a tablas y vistas.

El video brinda una explicación detallada de las pantallas y los paneles dentro de Google Cloud Console específicos para BigQuery. El menú de navegación muestra los recursos de BigQuery, como conjuntos de datos y tablas, mientras que la sección del espacio de trabajo de SQL permite a los usuarios crear consultas, trabajar con tablas y ver su historial de trabajos. El panel Explorador enumera los proyectos actuales y sus recursos, mientras que el panel Detalles proporciona información sobre los recursos seleccionados y permite modificar los esquemas de tablas, exportar datos y otras funciones. Se aclara que BigQuery no es adecuado para aplicaciones OLTP debido a su falta de soporte para actualizaciones frecuentes de nivel de fila pequeñas. Si bien no es una base de datos NoSQL, BigQuery usa un dialecto de SQL y está más cerca de una base de datos OLAP, lo que brinda beneficios similares y es adecuado para muchos casos de uso de OLAP.

Se analiza más a fondo la definición de BigQuery de Google, con énfasis en su nube rápida, rentable, altamente escalable y totalmente administrada.

Aquí hay puntos adicionales discutidos en el video:

  1. Formato de almacenamiento de BigQuery: BigQuery usa un formato de almacenamiento en columnas, que está optimizado para el rendimiento de las consultas. Almacena datos de forma comprimida y en columnas, lo que permite un procesamiento eficiente de columnas específicas en una consulta sin acceder a datos innecesarios. Este formato es especialmente beneficioso para las cargas de trabajo analíticas que involucran agregaciones y filtrado.

  2. Ingesta de datos: BigQuery admite varios métodos de ingesta de datos. Puede cargar datos directamente de fuentes como Google Cloud Storage, Google Sheets y Google Cloud Bigtable. También ofrece integraciones con otras herramientas de procesamiento de datos, como Dataflow y Dataprep, para operaciones ETL (Extracción, Transformación, Carga).

  3. Particionamiento y agrupación de datos: para optimizar el rendimiento de las consultas, BigQuery proporciona funciones como partición y agrupación. La partición implica dividir grandes conjuntos de datos en partes más pequeñas y manejables en función de una columna elegida (p. ej., fecha). La agrupación organiza aún más los datos dentro de cada partición, en función de una o más columnas, para mejorar el rendimiento de las consultas al reducir la cantidad de datos escaneados.

  4. Seguridad y controles de acceso a los datos: BigQuery ofrece controles de acceso sólidos para administrar la seguridad de los datos. Se integra con Google Cloud Identity and Access Management (IAM), lo que permite a los usuarios definir permisos de acceso detallados a nivel de proyecto, conjunto de datos y tabla. BigQuery también admite el cifrado en reposo y en tránsito, lo que garantiza la protección de los datos confidenciales.

  5. Precios de datos y optimización de costos: el video aborda brevemente el modelo de precios de BigQuery. Opera sobre una base de pago por uso, cobrando a los usuarios en función de la cantidad de datos procesados por las consultas. BigQuery ofrece funciones como el almacenamiento en caché de consultas, que puede reducir los costos al evitar el procesamiento de datos redundantes. Es importante optimizar las consultas y evitar el escaneo de datos innecesarios para minimizar los costos.

  6. Aprendizaje automático con BigQuery: el curso cubre el uso de BigQuery para tareas de aprendizaje automático. BigQuery se integra con los servicios de aprendizaje automático de Google Cloud, como AutoML y TensorFlow, lo que permite a los usuarios aprovechar el poder de BigQuery para la preparación de datos y la ingeniería de funciones antes de entrenar modelos de aprendizaje automático.

  7. Casos de uso y ejemplos: el disertante menciona varios casos de uso del mundo real en los que BigQuery sobresale, como el análisis de grandes volúmenes de datos de registro, la realización de estudios de mercado, la realización de segmentaciones de clientes y la ejecución de consultas analíticas complejas en conjuntos de datos masivos.

En general, el video brinda una descripción general de las capacidades, la arquitectura y las funciones clave de BigQuery, y destaca su idoneidad para el análisis de datos a gran escala y las tareas de aprendizaje automático. Enfatiza los beneficios de usar una solución basada en la nube totalmente administrada y altamente escalable como BigQuery para manejar grandes cantidades de datos de manera eficiente.

  • 00:00:00 El video analiza el contenido del curso, que se centra en el uso de BigQuery para el aprendizaje automático. BigQuery es un almacén de datos empresarial altamente escalable y sin servidor que originalmente se usaba internamente en Google antes de convertirse en un servicio en la nube. Puede alojar petabytes de datos y devolver datos en cuestión de segundos, lo que lo convierte en un recurso valioso para el aprendizaje automático supervisado, especialmente con grandes conjuntos de datos. La instrucción en este curso se basa en estudios de casos del mundo real, y los alumnos serán guiados a través del proceso de construcción de sus modelos de aprendizaje automático desde la obtención de los datos hasta el modelado para crear un modelo altamente predictivo. A lo largo del curso, los alumnos aprovecharán BigQuery para crear sus modelos, lo que significa configurar una cuenta de GCP, que será específica solo para BigQuery.

  • 00:05:00 El video explica los principios rectores detrás de la escalabilidad de los recursos de hardware en Google, específicamente la decisión de avanzar hacia la escalabilidad horizontal, en lugar de hacia arriba. Los principios rectores de Google cuando se trata de hardware es que cualquier cosa puede fallar en cualquier momento y que los diseños deben tener eso en cuenta. El segundo principio tiene que ver con el uso de hardware básico, que es asequible y fácil de obtener, lo que permite a Google cambiar de proveedor sin incurrir en sanciones. Por último, el hardware es caro, por lo que el objetivo es escalar horizontalmente en lugar de aumentar. Google ha diseñado tecnologías clave como GFS, MapReduce y Bigtable para moverlas hacia una arquitectura de hardware escalable. Además, Colossus reemplazó a GFS y es el subsistema distribuido subyacente en el que se basa gran parte de la tecnología de Google, incluido BigQuery, que se basa en Colossus.

  • 00:10:00 El disertante brinda una descripción general de la solución de base de datos de Google, Spanner, que se distribuye globalmente y usa Colossus para administrar transacciones distribuidas, al tiempo que demuestra cómo registrarse y administrar cuentas de facturación dentro de Google Cloud Platform. Para comenzar a usar los servicios de Google Cloud, los usuarios deben crear una cuenta en GCP, lo que se puede hacer navegando al navegador y escribiendo "GCP" o "Google Cloud Platform". Después de aceptar los términos y proporcionar la información adecuada, los nuevos usuarios reciben un crédito de $ 300 para usar en GCP, que se puede monitorear a través de las funciones de descripción general y presupuesto en la sección de facturación. El disertante alienta a los usuarios a configurar alertas de presupuesto para recibir notificaciones cuando se alcanzan ciertos objetivos de facturación, lo que se puede lograr haciendo clic en "crear un presupuesto" y especificando el monto total en dólares que se gastará, así como seleccionando las alertas de proyecto y presupuesto. estar habilitado.

  • 00:15:00 Se discute la creación y el propósito de BigQuery. El crecimiento exponencial de datos de Google causó problemas, lo que llevó al desarrollo de una herramienta que permitía realizar consultas interactivas sobre grandes conjuntos de datos: BigQuery. Ofrece la opción de operar igual independientemente de si se consultan 50 filas o 50 mil millones de filas. Gracias a su dialecto no estándar basado en SQL, tiene una curva de aprendizaje corta, integrada con la capacidad de paralelizar la ejecución de SQL en miles de máquinas. Los datos estructurados son lo que BigQuery puede almacenar, pero a diferencia de una base de datos relacional, estos campos pueden contener tipos de registros, incluidos los registros anidados dentro de las tablas. Estas estructuras anidadas son esencialmente tablas previamente unidas.

  • 00:20:00 El video explica la arquitectura de BigQuery y su enfoque de paralelización. Si bien la mayoría de los sistemas de bases de datos relacionales solo pueden ejecutar una consulta por núcleo, BigQuery está diseñado para ejecutar una única consulta en miles de núcleos, lo que maximiza significativamente el rendimiento en comparación con los enfoques de núcleo de consulta tradicionales. Esto es posible gracias al motor Dremel, que puede canalizar consultas, lo que permite que otras consultas utilicen núcleos disponibles mientras algunas esperan E/S. Este enfoque de tenencia múltiple significa que muchos clientes pueden ejecutar consultas al mismo tiempo en el mismo hardware, y BigQuery aprovecha los diversos patrones de uso de datos, por lo que el uso intensivo en una ubicación geográfica no afecta a otras ubicaciones. El video también explica los tres paneles principales de la interfaz de BigQuery, con el historial de consultas específico de cada proyecto, y guarda las consultas, el historial de trabajos y las secciones de recursos disponibles para organizar el acceso a tablas y vistas.

  • 00:25:00 El ponente explica las distintas pantallas y paneles que componen Google Cloud Console específico para BigQuery. El menú de navegación muestra los recursos de BigQuery, como conjuntos de datos y tablas, mientras que la sección del espacio de trabajo de SQL permite a los usuarios crear consultas, trabajar con tablas y ver su historial de trabajos. El panel Explorador muestra una lista de proyectos actuales y sus recursos, y el panel Detalles proporciona información sobre el recurso seleccionado y permite a los usuarios modificar esquemas de tablas, exportar datos y realizar otras funciones. El orador también analiza lo que BigQuery no es, y explica que no es adecuado para las aplicaciones OLTP debido a que no es compatible con las actualizaciones pequeñas y frecuentes de nivel de fila, y que no es una base de datos NoSQL porque usa un dialecto de SQL. . En cambio, BigQuery está más cerca de una base de datos OLAP y brinda muchos de los mismos beneficios, lo que lo hace apropiado para muchos casos de uso de OLAP.

  • 00:30:00 Se discutió la definición de BigQuery de Google. Es un almacén de datos en la nube totalmente administrado, altamente escalable, rentable y rápido para análisis con aprendizaje automático incorporado. Además, BigQuery se compone de muchos otros componentes, como Megastore y Colossus. BigQuery tiene su algoritmo para almacenar datos, Column IO, que almacena datos en columnas, mejora el rendimiento y cobra a los usuarios según los datos devueltos. La red de Google es rápida debido a su gran atención al detalle; por lo tanto, gran parte de su arquitectura de red sigue siendo un misterio. Por último, BigQuery lanzó compatibilidad con SQL estándar con el lanzamiento de BigQuery 2.0, cambió el nombre de BigQuery SQL a Legacy SQL y prefirió el dialecto de SQL para consultas y datos almacenados en BigQuery.

  • 00:35:00 El video cubre el proceso para guardar y abrir consultas en BigQuery, además de crear y consultar vistas. El narrador explica que una vista es una tabla virtual y demuestra cómo crear y guardar una vista en un nuevo conjunto de datos. El video también analiza las diferentes opciones dentro del editor de consultas, como formatear la consulta y acceder a la configuración de la consulta. Además, el video cubre la explosión de las carreras de aprendizaje automático y ciencia de datos y analiza las diferencias entre roles como analista de datos y científico de datos. Finalmente, el narrador explica que el enfoque del curso estará en el aprendizaje automático supervisado usando Python, que se considera el estándar de oro en el campo.

  • 00:40:00 Se discuten los diferentes roles dentro del campo del aprendizaje automático, incluido el científico de datos, el ingeniero de aprendizaje automático y el ingeniero de datos. La atención se centra en el aprendizaje automático aplicado, que es la aplicación en el mundo real de los principios del aprendizaje automático para resolver problemas, a diferencia de las aplicaciones puramente académicas o de investigación. También se enfatiza la importancia de los conjuntos de datos estructurados, en particular los que se encuentran en las bases de datos relacionales, ya que se ha demostrado que los modelos tradicionales como los amplificadores de gradiente sobresalen en el modelado de conjuntos de datos altamente estructurados y han ganado muchas competencias sobre redes neuronales artificiales.

  • 00:45:00 Se cubre el proceso de aprendizaje automático, que está muy orientado al proceso. El artículo explica cómo los ingenieros de aprendizaje automático deben seguir los mismos pasos básicos cuando se les presenta un problema para resolver. El primer paso es observar los datos, seguido de la búsqueda de datos. Dado que la mayor parte del aprendizaje automático aplicado está supervisado, los datos primero deben limpiarse (o "discutirse"), lo que implica manipular los datos en un formato con soporte numérico. Esto requiere que el ingeniero de aprendizaje automático dedique la mayor parte de su tiempo a la disputa de datos. Una vez que se han limpiado los datos, comienza la etapa de modelado. En esta etapa, se deben desarrollar modelos o algoritmos que aprendan patrones del conjunto de datos limpio. El objetivo del aprendizaje automático es poder hacer predicciones altamente precisas contra datos nuevos. Una vez que los modelos se han ajustado y probado con nuevos datos, se ponen en producción para que los utilicen los consumidores.

  • 00:50:00 El video analiza el proceso de instalación de la versión Python 3.7 usando la distribución Anaconda en una Mac. La distribución de Anaconda está disponible tanto para Windows como para Mac y tiene un instalador gráfico. Después de descargar el instalador e ingresar la contraseña, se recomienda el tipo de instalación predeterminado y el proceso de instalación puede demorar un par de minutos. Una vez que se completa la instalación, se puede iniciar Anaconda Navigator y se puede abrir una nueva computadora portátil Python 3 para comenzar a codificar.

  • 00:55:00 El instructor explica cómo navegar por el IDE de Jupyter Notebook, que se usa para el aprendizaje automático con BigQuery en la plataforma en la nube de Google. El primer paso es ubicar el Notebook en la computadora portátil escribiendo CMD y accediendo al símbolo del sistema de Anaconda. A partir de ahí, al escribir "Jupyter Notebook" se cargará el motor de Python en la computadora local. Una vez cargado, se explica cómo navegar por el Notebook, incluido cómo cerrar la página

  • 01:00:00 Se presenta una guía paso a paso sobre el uso de Jupyter Notebook, comenzando con la navegación a "Nuevo cuaderno" y seleccionando Python 3. El tutorial también muestra cómo importar bibliotecas, crear, ejecutar y renombrar celdas, cambiar ordenar las celdas, guardar automáticamente un cuaderno, insertar, copiar, cortar, pegar, ejecutar todo y reiniciar el kernel, y usar Markdown para anotar un cuaderno. Además, se enfatiza la simplicidad del portátil y se considera suficiente para trabajar con la canalización de aprendizaje automático.

  • 01:05:00 El video cubre los fundamentos del trabajo con datos en BigQuery, incluidos conjuntos de datos y tablas. Explica lo importante que es para los ingenieros de aprendizaje automático poder crear, cargar y gestionar datos en BigQuery, ya que la escala puede ser un problema importante al crear modelos del mundo real. Con BigQuery ML, solo requiere conocimientos de SQL, lo que lo hace simple y accesible para aquellos que conocen bien SQL, y brinda a los profesionales experimentados en aprendizaje automático la capacidad de crear sus modelos a cualquier escala. Además, el video cubre las principales bibliotecas de aprendizaje automático utilizadas en el aprendizaje automático aplicado en python, como Pandas, que es una biblioteca para la manipulación y disputa de datos, Numpy, que es un paquete fundamental para la computación científica con python, Matplotlib para crear gráficos 2D, y Scikit-Learn, que es una biblioteca utilizada para construir modelos tradicionales.

  • 01:10:00 El video tutorial explora los conceptos básicos de la disputa y manipulación de datos para el aprendizaje automático utilizando dos bibliotecas principales: pandas y numpy. La biblioteca pandas se utiliza para cargar un famoso conjunto de datos de juguetes para el aprendizaje automático llamado conjunto de datos Titanic y crear un alias. Se crea una matriz para permitir la comprensión del modelo y se identifican los atributos necesarios para el modelo, como clase de pasajero, sexo, edad y supervivencia. La variable de destino, que se va a predecir, es el atributo superviviente, que es 1 o 0; sobrevivió significa 1, mientras que no sobrevivió es 0. El siguiente paso es convertir los valores de los atributos en números usando el código Python, que la máquina puede entender. Todas las observaciones con valores nulos o nand se eliminan y el atributo sobrevivido se elimina del eje x para evitar que el modelo haga trampa. Finalmente, el conjunto de datos se divide en secciones de prueba y capacitación utilizando la biblioteca de propósito general para el aprendizaje automático llamada scikit-learn.

  • 01:15:00 El video analiza el uso del aprendizaje automático con el conjunto de datos Titanic y cómo, en escenarios del mundo real, la mayoría de los modelos se obtienen de bases de datos relacionales. Se presenta la interfaz de SQL Server Management Studio, ya que se usa comúnmente para administrar las bases de datos del servidor SQL. Se presenta un escenario hipotético donde la tarea es crear un conjunto de datos que pueda usarse para predecir ventas futuras. El video explica cómo crear una consulta y unir tablas para crear un historial de pedidos para las celebridades, y cómo guardar esta información como una vista para que pueda consultarse fácilmente y exportarse como un archivo CSV para compartirlo con el resto de la equipo.

  • 01:20:00 El video recorre el proceso de exportación de datos a un archivo CSV desde una base de datos en la nube usando SQL Server. Explican que el análisis exploratorio de datos, también conocido como análisis de datos, juega un papel crucial en el aprendizaje automático y presentan las bibliotecas Matplotlib y Seaborn para la visualización de datos. El video continúa mostrando ejemplos de cómo usar estas bibliotecas para explorar el conjunto de datos del Titanic, calcular porcentajes de valores faltantes y crear histogramas y diagramas de barras. Señalan que a menudo se prefiere Seaborn debido a su simplicidad.

  • 01:25:00 El ponente explora los diferentes tipos de modelos de aprendizaje automático y sus aplicaciones. Los modelos de aprendizaje profundo, si bien sobresalen en el reconocimiento de imágenes y voz, pueden no ser los más adecuados para el aprendizaje automático supervisado en la mayoría de los casos, que se basa en conjuntos de datos altamente estructurados. Los modelos tradicionales, como los amplificadores de gradiente, son más precisos, menos computacionales, más fáciles de explicar y pueden acelerar los problemas de clasificación y regresión. Luego, el orador lleva a la audiencia a través del proceso de construcción de un modelo tradicional utilizando Python, Pandas para la gestión de datos y XGBoost, una biblioteca de refuerzo de gradiente que ha ganado muchas competencias de modelado competitivas. El modelo logró una puntuación del 83 % en el conjunto de datos y el orador explica cómo guardar el modelo usando la biblioteca Pickle.

  • 01:30:00 El video explica qué es la clasificación y cómo separa las observaciones en grupos según características como calificaciones, puntajes de exámenes y experiencia. También cubre la clasificación binaria y cómo implica la clasificación de datos en dos grupos con una salida de sí o no. Luego, el video presenta redes neuronales artificiales y modelos de aprendizaje profundo, define la regresión lineal como la predicción del valor en función de una línea y explica cómo se usa en el pronóstico para predecir puntos de datos aleatorios como diagnósticos de cáncer o precios de acciones. La demostración de regresión lineal en Python usa la biblioteca pandas para masajear datos, mientras que la biblioteca numpy contiene datos en un contenedor de matriz optimizado y la biblioteca matplotlib se usa para la visualización de datos. El video muestra cómo trazar un gráfico para encontrar la relación lineal positiva entre las horas estudiadas y las puntuaciones obtenidas y, finalmente, importa el modelo clasificador utilizado para la regresión lineal en el script de Python.

  • 01:35:00 El orador repasa los fundamentos de la clasificación como técnica de aprendizaje automático supervisado y proporciona una definición simplificada que separa las observaciones en grupos según sus características. El ejemplo dado es la detección de spam, donde los correos electrónicos se dividen en dos categorías: spam y no spam. Un ejemplo más complejo es el proyecto de aprendizaje automático Titanic, que es un problema de clasificación binaria en el que el resultado del modelo es uno para sobrevivido o cero para no sobrevivido. La siguiente parte de la sección trata sobre cómo construir un modelo de clasificación con alta precisión, incluida la importación de bibliotecas, el uso del conjunto de datos del iris, la conversión de valores textuales en números mediante la codificación de etiquetas, el entrenamiento de un modelo clasificador de bosque aleatorio y la prueba del modelo completo con el datos de entrenamiento para lograr una precisión del 97%.

  • 01:40:00 Se analiza la base para trabajar con datos mediante BigQuery, incluidos conjuntos de datos y tablas. Como ingeniero de aprendizaje automático, es fundamental poder crear, cargar y gestionar datos en BigQuery. La sección trata sobre la disputa de datos en BigQuery, incluida la forma en que puede manejar petabytes de datos y los beneficios de usar el cuaderno Jupyter en la nube de Google llamado Cloud Datalab. También se cubre BigQuery ML, que no requiere conocimientos de programación aparte de SQL, lo que facilita a los profesionales de datos la creación de modelos de aprendizaje automático. Finalmente, la sección cubre los matices de los conjuntos de datos y las tablas, incluido cómo crear un conjunto de datos y agregarle tablas en BigQuery.

  • 01:45:00 El orador analiza las diferentes opciones de fuentes al crear tablas en BigQuery, incluida una tabla vacía, fuentes de datos externas y la carga de datos desde una fuente legible como CSV, JSON, Arvo, Parquet y ORC. Si bien la mayoría de los ingenieros de aprendizaje automático prefieren usar archivos CSV, Arvo es más rápido de cargar y más fácil de analizar sin problemas de codificación, mientras que Parquet y ORC se usan ampliamente en el ecosistema Apache Hadoop. Luego, el orador presenta Cloud Data Lab de Google, que es una máquina virtual (VM) alojada en GCP que contiene una interfaz similar a Jupyter Notebook llamada Datalab. Los usuarios pueden tomar el código de un Jupyter Notebook localmente y usarlo en GCP, y al crear una nueva instancia de Datalab, los usuarios eligen una región de almacenamiento y se les puede solicitar que creen una clave SSH.

  • 01:50:00 El instructor demuestra cómo crear una conexión con BigQuery e importar el conjunto de datos titánico en disputa a una instancia de laboratorio de datos en la nube. Al importar BigQuery y crear una conexión con él, los usuarios pueden escribir código SQL para consultar datos. Con la ayuda de bibliotecas preempaquetadas como pandas, clasificador de árboles de decisión y división de prueba de entrenamiento, los usuarios pueden segmentar sus datos, ajustarlos a sus datos de entrenamiento y calificar su modelo. Además, los usuarios pueden realizar cambios en su consulta directamente dentro de la celda y ejecutarlos para crear un nuevo marco de datos de pandas que alberga el conjunto de datos de la consulta. Finalmente, el instructor muestra cómo cargar y consultar otro conjunto de datos, el conjunto de datos del iris, en la instancia del laboratorio de datos en la nube mediante BigQuery.

  • 01:55:00 El presentador demuestra cómo importar datos de la biblioteca BigQuery a un cuaderno Jupyter en la plataforma en la nube de Google. El conjunto de datos de iris se importa y se divide en conjuntos de entrenamiento y prueba, y se usa un clasificador de bosque aleatorio para el entrenamiento. Los valores pronosticados se generan para el modelo. El presentador también muestra cómo actualizar los recursos en una instancia de laboratorio de datos en la nube accediendo a ella en la página de inicio de Google y haciendo clic en "editar".

  • 02:00:00 El orador explica BigQuery ML, una herramienta que permite a los profesionales de SQL crear modelos de aprendizaje automático a gran escala utilizando las habilidades y herramientas de SQL existentes, democratizando así el aprendizaje automático. BigQuery ML actualmente admite tres tipos de modelos: regresión lineal, regresión logística binaria y regresión logística de varias clases. El ponente también explica cómo crear un modelo de regresión logística binaria en BigQuery usando lenguaje SQL. La creación del modelo implica definir el modelo, especificar opciones y pasar la variable de destino mediante sentencias SQL. El modelo se puede evaluar y las métricas de precisión también se pueden presentar a través de SQL. Finalmente, el orador explica la fase de predicción en la que el modelo pasa datos nuevos que nunca antes había visto.

  • 02:05:00 El orador analiza cómo usar BigQuery ML para crear un modelo de clasificación binaria y evaluarlo. Los datos se cargan desde un archivo CSV a BigQuery y el modelo pasa todas las columnas excepto la variable de destino. Una vez que se complete la evaluación, el modelo hará una predicción para cada miembro de la familia, con la primera columna en el resultado prediciendo la supervivencia (uno para sobrevivió y cero para no sobrevivió). Luego, el orador pasa a instalar la herramienta de línea de comandos llamada gsutil, que es una herramienta de línea de comandos que se usa para trabajar con el almacenamiento de Google en GCP. La herramienta ofrece tres niveles de almacenamiento con diferente accesibilidad y precio.

  • 02:10:00 El orador demuestra cómo cargar y administrar archivos en Google Cloud Storage usando gsutil. Primero, el usuario debe configurar el proyecto para trabajar dentro y crear un depósito con gsutil mb, teniendo en cuenta que cada nombre de depósito debe ser único. Luego, el orador explica cómo copiar un archivo a un depósito y otorgarle acceso público, usando listas de control de acceso (ACL) para controlar quién puede leer y escribir los datos. El orador también demuestra cómo descargar y copiar archivos a otro depósito usando gsutil y usando el modificador -m para acelerar el proceso de carga. El ponente concluye mostrando cómo exportar datos de una base de datos relacional a dos archivos y subirlos a GCP mediante Cloud Storage.

  • 02:15:00 El orador demuestra cómo cargar dos conjuntos de datos en BigQuery de Google Cloud Platform, unirlos mediante SQL y crear una vista para crear modelos de aprendizaje automático. Después de exportar datos de SQL Server y guardarlos como archivos CSV, el orador los carga en el depósito de almacenamiento en la nube de GCP, los descarga en BigQuery y los combina mediante una declaración de unión simple. Finalmente, el orador muestra cómo crear una vista de este conjunto de datos más grande para usar en modelos de aprendizaje automático.

  • 02:20:00 El orador explica el proceso de creación de una tabla en Google BigQuery en Cloud Platform para su conjunto de datos del proyecto Titanic. Cargan el conjunto de datos desde su fuente local, detectan automáticamente el esquema del archivo CSV y omiten la primera fila, ya que contiene información de encabezado. Después de crear con éxito la tabla, la consultan y confirman que los datos y los encabezados aparecen correctamente. El orador señala que el conjunto de datos ahora está listo para los próximos pasos del proyecto.
Machine Learning with BigQuery on Google's Cloud Platform
Machine Learning with BigQuery on Google's Cloud Platform
  • 2022.04.25
  • www.youtube.com
A complete look at BigQuery for machine learning.LogikBot - Affordable, Real-World and Comprehensive - https://www.logikbot.comThere are two core paths on Lo...