El algoritmo UCB-V es una variante de la familia UCB que utiliza la varianza para seleccionar el bandido en problemas tipo Bandido Multibrazo (Multi-Armed Bandit). Un algoritmo genérico que puede ser utilizado en cualquier tipo de bandido.UCB-VEn el algoritmo UCB-V se tiene que seleccionar en cada tirada aquel bandido que maximice la siguiente expresión.Donde es … [Leer más...] acerca de UCB-V para un problema Bandido Multibrazo (Multi-Armed Bandit)
Localizar la palabra más larga en una cadena de texto en JavaScript
En esta ocasión vamos a ver cómo se puede resolver un problema que a primera vista parece sencillo: localizar la palabra más larga en una cadena de texto. Para conseguir este objetivo va a ser necesario separar las palabras, ignorando los signos de puntuación, y medir la longitud de estas. Para lo que vamos a utilizar expresiones regulares en JavaScript.Paso 1: eliminar los … [Leer más...] acerca de Localizar la palabra más larga en una cadena de texto en JavaScript
Identificar y eliminar columnas duplicadas en Pandas
En los DataFrames de Pandas existe el método duplicated() con el que se pueden eliminar los registros duplicados de un DataFrame. Pero no es así para el caso de las columnas duplicadas. De modo que, en el caso querer comprobar la existencia de columnas duplicadas en un DataFrame es necesario programar el proceso de forma manual. Lo mismo en el caso de querer eliminar esta … [Leer más...] acerca de Identificar y eliminar columnas duplicadas en Pandas
MOSS para un problema Bandido Multibrazo (Multi-Armed Bandit)
MOSS (Minimax Optimal Strategy in the Stochastic case, Estrategia Óptima de Minimax en el caso estocástico) es una variante de UCB1 que se presenta como una aproximación generalizada, de modo que puede ser utilizado con cualquier tipo de bandido.MOSSEn la estrategia MOSS modifica la expresión que calcula en intervalo de confianza. Para ello se sustituye el término en el … [Leer más...] acerca de MOSS para un problema Bandido Multibrazo (Multi-Armed Bandit)
Truco JavaScript: repetir un vector en JavaScript
En Python existe una forma extremadamente sencilla de replicar el contenido de una lista una cantidad de veces, simplemente multiplicando la lista por un escalar. Por ejemplo, si escribimos [1, 2] * 3 se obtienen [1, 2, 1, 2, 1, 2]. Pero repetir un vector en JavaScript es algo más complicado que se puede conseguir con un par de trucos.Uso de Array(), fill() y … [Leer más...] acerca de Truco JavaScript: repetir un vector en JavaScript
NumPy: Obtener la frecuencia de los valores en un vector de NumPy en Python
La función unique() de NumPy devuelve por defecto los valores únicos que se encuentra en un vector. Aunque también se puede obtener la frecuencia de aparición de estos valores. Para ello solamente se tiene que usar la propiedad return_counts, cuando se le asigna el valor True la función en lugar de devolver un array de NumPy con los elementos únicos devolverá una tupla en la … [Leer más...] acerca de NumPy: Obtener la frecuencia de los valores en un vector de NumPy en Python
EXP3 para un problema Bandido Multibrazo (Multi-Armed Bandit)
Una estrategia bastante popular para solucionar los problemas tipo Bandido Multibrazo es EXP3. Siendo el nombre es una abreviatura de "Exponential-weight algorithm for Exploration and Exploitation" (Algoritmo de peso Exponencial para Exploración y Explotación). EXP3 se diferencia de otras estrategias populares como Epsilon Greedy o UCB1, siendo un algoritmo más tradicional de … [Leer más...] acerca de EXP3 para un problema Bandido Multibrazo (Multi-Armed Bandit)
Truco: Validar palabras con acentos mediante expresiones regulares
Uno de los problemas con los que nos podemos encontrar a la hora de validar nombres mediante el uso de expresiones regulares son los acentos. Debido a que las expresiones regulares nacieron pensando únicamente para trabajar en inglés. Generalmente para validar las cadenas que contienen letras se usa el patrón a-zA-Z, pero éste ignora los acentos y otros caracteres, como ç, que … [Leer más...] acerca de Truco: Validar palabras con acentos mediante expresiones regulares
Pandas: Comprobar la existencia de valores en los DataFrame
En el caso de que necesitemos comprobar la existencia de valores en los DataFrame de Pandas disponemos de varias opciones. Siendo una de ellas el uso del operador in. Una opción sencilla que además es muy flexible. Otra alternativa es el uso de la propiedad isin() de los objetos DataFrame.Conjunto de datos de ejemploAntes de continuar vamos a crear un pequeño conjunto … [Leer más...] acerca de Pandas: Comprobar la existencia de valores en los DataFrame
KL-UCB para un problema Bandido Multibrazo (Multi-Armed Bandit)
Continuando con el repaso a los principales algoritmos existentes para abordar los problemas tipo Bandido Multibrazo (Multi-Armed Bandit) vamos a ver en esta ocasión KL-UCB. Una versión del UCB donde se utiliza la divergencia de Kullback-Leibler para seleccionar el mejor bandido óptimo en cada jugada.La divergencia de Kullback-LeiblerUna de las medidas más populares … [Leer más...] acerca de KL-UCB para un problema Bandido Multibrazo (Multi-Armed Bandit)
Obtener el último valor de una columna en Excel
Uno de los usos que se le suele dar habitualmente a las hojas de cálculo es como registro de valores históricos. En el que cada vez se agrega un nuevo valor a una columna. A medida que crece el número de registros puede ser de interés tener una fórmula que nos permita conocer el último valor de una columna en Excel para tenerlos a la vista. Fórmula que se debería actualizar … [Leer más...] acerca de Obtener el último valor de una columna en Excel
Pandas: Descartar filas en un DataFrame
Parte del contenido de un DataFrame de Pandas se puede eliminar mediante el método drop(). En esta entrada vamos a ver cómo se puede usar este método para descartar filas en un DataFrame en base al índice.El método drop()Los DataFrames de Pandas cuentan con el método drop() para eliminar parte del contenido de los mismos. Método que tiene básicamente la siguiente … [Leer más...] acerca de Pandas: Descartar filas en un DataFrame









