inteligencia_artificial:datos
Diferencias
Muestra las diferencias entre dos versiones de la página.
| Ambos lados, revisión anteriorRevisión previaPróxima revisión | Revisión previa | ||
| inteligencia_artificial:datos [2023/07/22 17:46] – [Escalado de características "features"] alberto | inteligencia_artificial:datos [2025/11/21 18:18] (actual) – [Selección de datos (features) y la "maldición" de la dimensionalidad] alberto | ||
|---|---|---|---|
| Línea 7: | Línea 7: | ||
| ===== Clases y etiquetas ===== | ===== Clases y etiquetas ===== | ||
| Uno de los problemas a resolver por la IA son de " | Uno de los problemas a resolver por la IA son de " | ||
| - | A estas clases se les asigna un identificador o **etiqueta** | + | A estas clases se les asigna un identificador o **etiqueta**, |
| ===== Features y feature vectors ó Atributos y vectores de atributos ===== | ===== Features y feature vectors ó Atributos y vectores de atributos ===== | ||
| Línea 17: | Línea 17: | ||
| ==== Atributos o " | ==== Atributos o " | ||
| Los // | Los // | ||
| - | Antes de introducir estos //feature vectors// es común tener que manipularlos para adaptarlos a la entrada | + | Antes de introducir estos //feature vectors// es común tener que manipularlos para adaptarlos a la entrada |
| === Números en coma flotante === | === Números en coma flotante === | ||
| Línea 37: | Línea 37: | ||
| El problema de este sistema es que puede dar lugar a vectores realmente grandes, por ejemplo: sexo: vector de 2 elementos, 5 posibles colores: 5 elementos, miles de posibilidades: | El problema de este sistema es que puede dar lugar a vectores realmente grandes, por ejemplo: sexo: vector de 2 elementos, 5 posibles colores: 5 elementos, miles de posibilidades: | ||
| - | Usando esta estructura, si tenemos una matriz que representan las entradas, cada una especificada por cada fila, sólo habría una posición con ' | + | Usando esta estructura, si tenemos una matriz que representan las entradas, cada una especificada por cada fila, sólo habría una posición con ' |
| ==== Selección de datos (features) y la " | ==== Selección de datos (features) y la " | ||
| Línea 54: | Línea 54: | ||
| Según esto, podemos ver un ejemplo: \\ | Según esto, podemos ver un ejemplo: \\ | ||
| Usamos como entrada una imagen en color. Esta imagen tendrá 1024 píxeles de largo por 1024 píxeles de ancho. Y cada píxel tiene 3 colores de 1 byte de intensidad por cada color RGB. De esta manera el //feature vector// tendrá: //d// = 1024 x 1024 x 3 = 3.145.728 dimensiones (nº de elementos). Necesitaríamos aproximadamente 10< | Usamos como entrada una imagen en color. Esta imagen tendrá 1024 píxeles de largo por 1024 píxeles de ancho. Y cada píxel tiene 3 colores de 1 byte de intensidad por cada color RGB. De esta manera el //feature vector// tendrá: //d// = 1024 x 1024 x 3 = 3.145.728 dimensiones (nº de elementos). Necesitaríamos aproximadamente 10< | ||
| + | |||
| + | Sin embargo, ese número tan brutal, lo que indica realmente son todas las posibles combinaciones que podemos hacer con una cantidad de dimensiones tan elevada. En el caso de una imagen, la mayor parte de estos valores es ruido. En realidad, el conjunto de imágenes existentes es un número mucho menor que el de todas las imágenes posibles. \\ | ||
| + | |||
| Este problema paralizó la investigación en inteligencia artificial durante décadas, pero en la actualidad hay formas de evitarlo, aunque sigue siendo necesario tenerlo en cuenta para modelos tradicionales. | Este problema paralizó la investigación en inteligencia artificial durante décadas, pero en la actualidad hay formas de evitarlo, aunque sigue siendo necesario tenerlo en cuenta para modelos tradicionales. | ||
| ===== Características de datos (features) de un buen dataset ===== | ===== Características de datos (features) de un buen dataset ===== | ||
| Línea 79: | Línea 82: | ||
| Por ejemplo, si por norma general, una clase aparece aproximadamente el 85% de las veces, y otra el 15%, deseamos que nuestro dataset incluya las clases en la misma proporción. \\ | Por ejemplo, si por norma general, una clase aparece aproximadamente el 85% de las veces, y otra el 15%, deseamos que nuestro dataset incluya las clases en la misma proporción. \\ | ||
| - | El problema | + | El problema |
| Una forma de salvar este problema es el de entrenar el modelo una en una proporción 10:1 con el modelo que menos aparece, y cuando haya pasado un tiempo, aumentar la proporción hasta obtener la real. \\ | Una forma de salvar este problema es el de entrenar el modelo una en una proporción 10:1 con el modelo que menos aparece, y cuando haya pasado un tiempo, aumentar la proporción hasta obtener la real. \\ | ||
| Línea 100: | Línea 103: | ||
| El tamaño del dataset de entrenamiento debe ser lo suficientemente grande para conseguir una precisión adecuada, en relación al coste de conseguir los datos. \\ | El tamaño del dataset de entrenamiento debe ser lo suficientemente grande para conseguir una precisión adecuada, en relación al coste de conseguir los datos. \\ | ||
| - | La cantidad de datos que debemos tener para entrenar adecuadamente nuestro modelo tampoco tiene por qué ser necesariamente enorme. Por norma general, suele haber un incremento exponencial de la precisión del modelo cuando se empieza a entrenar, pero a partir de cierto número de datos de entrada, la precisión aumenta muy poco en comparación con la gran cantidad de datos que se le están introduciendo. El cose te conseguir los datos, puede que no interese asumirlo a partir de ese punto.\\ | + | La cantidad de datos que debemos tener para entrenar adecuadamente nuestro modelo tampoco tiene por qué ser necesariamente enorme. Por norma general, suele haber un incremento exponencial de la precisión del modelo cuando se empieza a entrenar, pero a partir de cierto número de datos de entrada, la precisión aumenta muy poco en comparación con la gran cantidad de datos que se le están introduciendo. El coste de conseguir los datos, puede que no interese asumirlo a partir de ese punto.\\ |
| También el número de parámetros del modelo cuenta a la hora de definir el tamaño del dataset. Por norma general, será necesario tener un mayor número de muestras que de parámetros, | También el número de parámetros del modelo cuenta a la hora de definir el tamaño del dataset. Por norma general, será necesario tener un mayor número de muestras que de parámetros, | ||
| Línea 109: | Línea 112: | ||
| ==== Escalado de atributos ==== | ==== Escalado de atributos ==== | ||
| - | Cuando | + | Cuando |
| Para ellos se siguen los siguientes pasos: | Para ellos se siguen los siguientes pasos: | ||
| - | - Centrado medio: Por cada característica, se saca su media a partir de todos los datos disponibles, | + | - Centrado medio: Por cada atributo, se saca su media a partir de todos los datos disponibles, |
| - | - Cambiamos la desviación estándar σ a 1: Calculamos la desviación estándar σ de todas las muestras de cada característica | + | - Cambiamos la desviación estándar σ a 1: Calculamos la desviación estándar σ de todas las muestras de cada atributo |
| - | Dado un array x, que representa el dataset (un elemento por cada vector, y cada uno es un array en que cada elemento es una característica) podemos hacer esto con NumPy de la siguiente forma: | + | Dado un array x, que representa el dataset (un elemento por cada vector, y cada uno es un array en que cada elemento es un atributo) podemos hacer esto con NumPy de la siguiente forma: |
| <code python> | <code python> | ||
| x = (x-x.mean(axis=0))/ | x = (x-x.mean(axis=0))/ | ||
| </ | </ | ||
| - | Si hiciésemos la media de los valores de cada característica, obtendríamos valores extremadamente cercanos a cero. Si de igual manera, calculamos la desviación estándar de los valores de cada característica, obtendríamos valores extremadamente cercanos a 1 . Los valores del dataset ya están normalizados y listos para ser usados en el modelo. | + | Si hiciésemos la media de los valores de cada atributo, obtendríamos valores extremadamente cercanos a cero. Si de igual manera, calculamos la desviación estándar de los valores de cada atributo, obtendríamos valores extremadamente cercanos a 1 . Los valores del dataset ya están normalizados y listos para ser usados en el modelo. |
| ==== Valores perdidos ==== | ==== Valores perdidos ==== | ||
inteligencia_artificial/datos.1690040799.txt.gz · Última modificación: por alberto
