Big Data

AI competitions don’t produce useful models

Posted on September 21, 2019

Awesome post totally recommended: AI competitions don’t produce useful models TLTR; From the upper average top performing models the one that has the best accuracy is not necessarily the best one. The blog post argues that the test set is not big enough to differentiate among the best models so in most of the cases what we find is which model actually better overfitted everything.

11 comandos para data scientists que quieran aprender a usar la consola

Posted on July 31, 2018

Algunas veces manipular datos puede resultar costoso. A menudo los data scientists tenemos que manipular grandes cantidades de datos por lo que es bueno conocer algunos tranquillos para optimizar el proceso. Aquí os dejo unos cuantos comandos con algunas opciones para trabajar más eficientemente. head head archivo.txt Este comando imprime las 10 primeras lineas del archivo. Si queremos un numero distinto de lineas podemos usar la opción -n. head -n 20 archivo.txt Este último comando nos imprimirá las 20 primerasRead More

Resumen del paper: Análisis de datos topológicos

Posted on July 17, 2018

Recientemente me encontré un par de papers relevantes para la minería de datos (data mining). Incluso hay una empresa que basa su business model en este concepto (Ayasdi). El concepto como habéis podido leer en el titulo es análisis de datos topológicos. ¿Que significa esto? La ida principal, tal y como se expone en la Figura 1 (sacada del paper [1]), se basa en que los datos tienen forma y la forma es consistente. Por ejemplo, la letra “A” seguiráRead More

Como calcular distancias entre dos arrays con variables binarias

Posted on July 8, 2018

El computo de distancias es un procedimiento básico para poder procesar datos. Las distancias nos sirven en el mundo real para poder desplazarnos con efectividad pero también podemos usar las distancias en el mundo no-físico para medir la similitud entre dos entidades. Cuando hablamos de entidades no-físicas nos referirnos por ejemplo a palabras, objetos o conceptos abstractos. Por ejemplo, ¿Cual es la similitud entre dos palabras? Dependiendo del enfoque podemos obtener resultados muy distintos. En este caso estoy interesado enRead More

Optimizadores de tensor flow

Posted on October 3, 2017

Continuando el anterior post dónde introducí tensor flow hoy vengo con los optimizadores de funciones. Tensor flow ofrece optimizadores que cambian las variables para minimizar la funcion de perdida (loss function). El más simple es el de gradiente descendiente. Computan las derivadas simbólicas (symbolic derivatives) simplemente usando el modelo y la función tf.gradients. Por ejemplo: [code language=”python”] optimizer = tf.train.GradientDescentOptimizer(0.01) train = optimizer.minimize(loss) sess.run(init) # reset values to incorrect defaults. for i in range(1000): sess.run(train, {x:[1,2,3,4], y:[0,-1,-2,-3]}) print(sess.run([W, b])) losRead More

Introducción a TensorFlow

Posted on May 20, 2017

La web oficial de TensorFlow tiene muy buenos recursos. En esencia lo que hay en este post proviene del “get started” de la web oficial. En el primer ejemplo importaremos TensorFlow. Crearemos dos constantes y las imprimiremos en pantalla. [code language=”python”] import tensorflow as tf node1 = tf.constant(3.0, tf.float32) node2 = tf.constant(4.0) # También tf.float32 de forma implícita sess = tf.Session() print(sess.run([node1, node2])) node3 = tf.add(node1, node2) print("node3: ", node3) #Esta linea muestra las propiedades del tensor print("sess.run(node3): ",sess.run(node3)) #Read More

Reducción de dimensiones: Principal Component Analysis (PCA)

Posted on March 29, 2017

Principal Component Analysis o PCA en corto es un método de reducción de dimensiones bastante conocido y comúnmente usado. Este método transforma ortogonalmente las observaciones (quizás relacionadas) en un conjunto de puntos linealmente no relacionados. De esta forma se consigue que el primer componente tenga la varianza mayor. El siguiente componente será el que tendrá la varianza mayor de los restantes y es ortogonal al anterior componente, y así sucesivamente. Este método es sensible a la escala de las variables.Read More

Reducción de dimensiones: Self-organizing feature map (SOFM)

Posted on January 28, 2017

Self-organizing map (SOM) o self-organizing feature map (SOFM) es un método que usa redes neuronales (neuronal networks) para reducir las dimensiones de un vector de datos. Para reducir las dimensiones lo que hace es usar los vecinos de un punto en concreto para moverlo al nuevo espacio dimensional manteniendo la misma topografía que en el espacio original. Una de las ventajas de SOFM es que es un método unsupervised, esto quiere decir que no necesitamos un training dataset para entrenarRead More

Reducción de dimensiones: T-SNE

Posted on January 21, 2017

Como ya explicamos en el post anterior los ordenadores si que pueden procesar grandes cantidades de datos multidimensionales. Pero los humanos a veces necesitamos “ver” y entender los datos. Cuando estamos trabajando en un espacio multidimensional no podemos imaginarnos nuestro dataset. Para solventar este problema se ha desarrollado T-SNE. Éste es un algoritmo pensado especialmente en reducir dimensiones (a 2 o 3) para que podamos visualizar los datos. En el paper original se expresa de forma explícita que el algoritmoRead More

Reducción de dimensiones: Introducción a los espacios multidimensionales

Posted on January 9, 2017

En inteligencia artificial y machine learning en la mayoría de ocasiones se usan espacios multidimensionales. Los espacios multidimensionales son espacios en los que los datos requieren más de un valor. Los espacios multidimensionales son espacios con puntos repartidos por el espacio. Un espacio 2D tiene dos dimensiones, las típicas X, Y. Un espacio 3D tiene tres dimensiones X, Y, Z. Las dimensiones las puedes llamar X, Y, Z pero también perro, gato, conejo. Como seres humanos estamos limitados a poderRead More