Quantcast
Channel: Think Big
Viewing all articles
Browse latest Browse all 3623

Python para todos: ¿Por qué usamos números aleatorios ?

$
0
0

Continuamos hablando de «Python para todos». En esta ocasión, explicando por qué necesitamos poder generar números aleatorios para entrenar nuestros modelos de aprendizaje automático.

¿Qué son los números aleatorios?

Un número aleatorio es un número obtenido al azar. El ejemplo clásico es lanzar una moneda, o un dado (no trucado). Cada cara de la moneda o del dato, tiene siempre la misma probabilidad de salir, independientemente del resultado anterior. O del resultado de lanzar el otro dado, si lanzamos simultáneamente dos de ellos.

En general cuando se requiere una impredecibilidad en unos determinados datos, se utilizan números aleatorios.

Números aleatorios y modelos Machine Learning

En Ciencia de Datos, como en cualquier otra rama de la Ciencia, se construyen modelos que nos ayuden a representar la realidad o los fenómenos concretos que queremos estudiar. Pero esta realidad, y nosotros mismos, los seres humanos somos altamente impredecibles. Por ello, si queremos que nuestros modelos predictivos se aproximen a la realidad, deben funcionar como ésta: de forma aleatoria.

Algunos ejemplos de este tipo de fenómenos son:

  • Evolución del clima
  • Resultado de unas elecciones
  • Erupción del un volcán
  • Evolución del desempleo
  • Epidemias…
  • etc

Por tanto, en Machine Learning se trabaja a menudo con generadores de números aleatorios porque éstos permiten a los modelos matemáticos representar la realidad.

Generación de números aleatorios

Aunque sea tan sencillo como «lanzar un dado», cuando necesitas generar, por ejemplo, un millón de datos, hay que buscar alternativas más eficientes.

¿Por qué no generarlos por ordenador entonces?

Esta es un pregunta interesante. Un ordenador es una máquina que repite, a gran velocidad eso sí, los pasos que le pedimos que haga. Sin embargo, es imposible generar algo impredecible en un ordenador.

Uno de los primeros científicos interesados en este tema ,el físico John von Neumann, reconocía que la tarea en sí era imposible y acuñó la frase:

«Aquel que trate de producir dígitos aleatorios mediante métodos aritméticos está, por supuesto, pecando».

Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin (John von Neumann)
«Any one who considers arithmetical methods of producing random digits is, of course, in a state of sin«
(John von Neumann)

Recientemente han surgido alternativas interesantes, como basar la generación de números aleatorios en procesos físicos realmente impredecibles, como son los procesos cuánticos.

Sin embargo, lo más habitual es «tirar por el camino de enmedio» y trabajar con números pseudoaleatorios, que se obtienen a partir de operaciones aritméticas, y se parecen mucho a los números aleatorios. No sirven para todos los casos, por ejemplo en ciberseguridad es muy importante que sean realmente aleatorios, pero para la mayoría de los problemas, funcionan.

Una vez aclarado el porqué son necesarios los datos aleatorios en Machine Learning, ya sólo nos queda ponernos manos a la obra y aprender a generarlos en Python. Pero ésto, ya lo dejamos para el próximo post. ¡No te lo pierdas!

The post Python para todos: ¿Por qué usamos números aleatorios ? appeared first on Think Big.


Viewing all articles
Browse latest Browse all 3623

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>