Adrianistán

El blog de Adrián Arroyo


Artículos con etiqueta «python»

Natural Language Understanding con Snips NLU en Python

Uno de los campos más importantes de la inteligencia artificial es el del tratamiento del lenguaje natural. Ya en 1955, en el primer evento sobre Inteligencia Artificial, y promovido entre otros por John McCarthy (creador de Lisp) y Claude Shannon (padre de la teoría de la información y promotor del uso del álgebra de boole para la electrónica), estas cuestiones entraron en el listado de temas
Seguir leyendo

Programación dinámica: el problema de knapsack

Los algoritmos nos ayudan a resolver problemas. Hay muchas maneras de diseñarlos, un método que no conocía hasta hace poco y que me ha resultado muy interesante conocer es la programación dinámica. La idea fundamental de la programación dinámica es dividir el problema en subproblemas y posteriormente calcular una única vez cada subproblema. Existen dos acercamientos: top-down y bottom-up. La programación dinámica nos permite resolver problemas más rápidamente que con fuerza bruta, gastando a cambio mucha más memoria del ordenador
Seguir leyendo

Te espero en la feria Espacios de Ingenio

Los días próximos 15 y 16 de marzo tendrá lugar la feria Espacios de Ingenio. Tendrá lugar en la Escuela Técnica Superior de Arquitectura, en la ciudad de Valladolid. El objetivo es interesar a los alumnos de bachillerato en las carreras técnicas
Seguir leyendo

Lenguajes de programación que todo buen programador debe conocer

Dice Bjarne Stroustrup (creador de C++) que nadie debería llamarse un profesional si no conoce al menos 5 lenguajes suficientemente diferentes entre sí. Comparto con él esa afirmación, así que he decidido hacer una lista con esos 5 lenguajes suficientemente diferentes entre sí. La razón de que sean diferentes entre sí es que implementan paradigmas distintos
Seguir leyendo

Generar frases con cadenas de Markov. Machine Learning en Python

Hoy vamos a hacer un ejercicio muy sencillo de machine learning. Para ello usaremos cadenas de Markov. Trataremos de generar frases totalmente nuevas basadas en otras frases que le demos como entrada
Seguir leyendo

Cheatsheet de Pandas

He encontrado esta cheatsheet en formato PDF de cómo manejar Pandas, la cuál es muy interesante y que os dejo aquí.Pandas_Cheat_Sheet Agradecimientos a Irv Lusting que se ha tomado la molestia de hacerla
Seguir leyendo

Estadística en Python: ajustar datos a una distribución (parte VII)

Ya hemos visto con anterioridad que existen modelos que nos hacen la vida más sencilla. Sin embargo, en esos modelos conocíamos ciertos datos de antemano. ¿Qué pasa si tenemos datos y queremos ver si podemos estar ante un modelo de los ya definidos? Este tipo de ajuste es muy interesante, ya que nos permite saber si los datos en bruto pueden parecerse a los modelos de Normal u otros y aprovecharlo
Seguir leyendo

¡Feliz navidad y próspero 2018! (con fractales)

Feliz Navidad! Si estás leyendo esto, darte las gracias por seguir leyendo este blog. Me alegro mucho de tener cada vez más lectores y es algo que me anima a escribir más y más. En este especial navideño disfrutaremos de éxitos musicales de la navidad, veremos como hacer un fractal muy navideño en Rust y os pediré vuestra opinión
Seguir leyendo

Estadística en Python: distribución binomial, normal y de Poisson (Parte VI)

Después del rollo del capítulo anterior, vamos a entrar en algo más práctico, modelos de probabilidad. Hemos hablado de las funciones de probabilidad y de densidad, sin embargo, nos falta algo muy importante. ¿Cuáles son esas funciones exactamente? Es donde entran los modelos de probabilidad, modelos estadísticos que se pueden ajustar a una variable aleatoria con mejor o peor precisión y que nos dan los valores de la probabilidad. Empecemos, pero antes hagamos un apunte sobre las equivalencias en SciPy:
  • cdf(x) - Función de distribución F(X)
  • sf(x) = 1 - cdf(x)
  • pmf(x) - Función de probabilidad f(x) (distribuciones discretas)
  • pdf(x) - Función de densidad f(x) (distribuciones continuas)
  • ppf(x) - Función inversa a cdf(x). Nos permite obtener el valor correspondiente a una probabilidad.

Distribución Binomial

Un ensayo de Bernouilli se define como un experimento donde puede darse un éxito o fracaso y donde cada ensayo es independiente del anterior. Por ejemplo, un ensayo de Bernoulli de parámetro 0.5 sería lanzar una moneda a cara o cruz (mitad de posibilidades de cara, mitad de posibilidades de cruz)
Seguir leyendo

Estadística en Python: cálculo de probabilidades (Parte V)

Ahora entramos en una de mis partes favoritas de la estadística, el cálculo de probabilidades, sin embargo va a ser muy teórico, sin apenas Python. En primer lugar vamos a definir algunos conceptos:
  • Experimento cualquier proceso de obtención de una observación o medida en el que se suponen fijos ciertos factores. Los experimentos puede ser deterministas si solo es posible un resultado (aunque sea desconocido) y aleatorios. Llamamos azar a los factores que no controlamos de un experimento aleatorio.
  • Probabilidad: la incertidumbre de observar un determinado resultado antes de que se realice el experimento.
  • Suceso: el resultado o conjunto de resultados de un experimento aleatorio
  • Espacio muestral: el conjunto de todos los resultados posibles de un experimento aleatorio
  • Suceso complementario de A: lo que ocurre cuando no ocurre A
  • Suceso seguro: Aquel que ocurre siempre. Se representa con Ω
  • Suceso imposible: Aquel que no forma parte del espacio muestral
  • Sucesos incompatibles: Aquellos que no pueden ocurrir de forma simultánea
El cálculo de probabilidades nos sirve para valorar el riesgo de nuestras decisiones, anticipar eventos y valorar si nuestras hipótesis eran razonables
Seguir leyendo