Gracias por el A2A.
Importancia de las estructuras de datos en el aprendizaje automático:
Una estructura de datos es una disposición de datos con el fin de poder almacenar y recuperar información. Por lo general, una estructura de datos es alguna representación física de un ADT.
- ¿Es posible cuantificar la experiencia laboral?
- Cómo comenzar a aprender algoritmos de reconocimiento de voz
- ¿Por qué es imposible tener un tipo de comparación mejor que el tiempo O (nlogn)?
- ¿A los programadores les gustan las funciones recursivas? ¿Por qué o por qué no?
- ¿Por qué es Forth el lenguaje de programación para practicar la escritura de algoritmos?
La estructura de datos elegida para un tipo de datos debe cumplir con las limitaciones de recursos del problema.
Ejemplo : en un sistema contable,
- La creación y eliminación de una nueva cuenta puede ser lenta
- La búsqueda y actualización del saldo de una cuenta determinada debe ser extremadamente rápida.
Estas son las preguntas extremadamente importantes que debe hacer para determinar compensaciones aceptables:
- ¿Se puede completar la estructura de datos al principio, o habrá inserciones entremezcladas con eliminaciones, búsquedas, actualizaciones y otras operaciones?
- ¿Se pueden eliminar elementos de la estructura?
- ¿Se procesarán siempre los artículos en un orden bien definido o se deberá admitir el acceso aleatorio ?
- Para que los sistemas sean económicos, los datos deben estar organizados (en estructuras de datos ) de tal manera que permitan una manipulación eficiente (mediante algoritmos ).
- Elegir los algoritmos y las estructuras de datos incorrectos hace que un programa sea lento en el mejor de los casos e insostenible e inseguro en el peor.
Importancia de los algoritmos en el aprendizaje automático:
Diseñamos algoritmos para llevar a cabo el comportamiento deseado de un sistema de software. Los buenos programadores tienden a utilizar el refinamiento gradual al desarrollar algoritmos, y entienden las compensaciones entre diferentes algoritmos para el mismo problema.
Algoritmos de clasificación
Existen varios esquemas de clasificación para algoritmos:
- Por dominio del problema : numérico, procesamiento de texto (coincidencia, compresión, secuenciación), criptología, división equitativa, clasificación, búsqueda, geometría computacional, redes (enrutamiento, conectividad, flujo, extensión), visión por computadora, aprendizaje automático.
- Por estrategia de diseño : divide y vencerás, codicioso, transformación algebraica, programación dinámica, programación lineal, fuerza bruta (búsqueda exhaustiva), retroceso, bifurcación, búsqueda heurística, algoritmos genéticos, recocido simulado, enjambre de partículas, Las Vegas, Monte Carlo, algoritmos cuánticos.
- Por complejidad : constante, logarítmica, lineal, linealítica, cuadrática, cúbica, polinómica, exponencial.
- Alrededor de las estructuras de datos centrales y su comportamiento: si (1) organizacional: conjunto, lineal, jerárquico o de red; o (2) implementacional: tablas hash, listas de omisión, árboles rojo-negros, árboles ab, árboles cartesianos, redes neuronales, redes bayesianas, enjambres.
- Por una de las muchas dimensiones de implementación : secuencial versus paralelo, recursivo versus iterativo, determinista versus no determinista, exacto versus aproximado,….
Elegir el algoritmo correcto
Elegir el algoritmo correcto es a la vez
- un arte , porque a menudo se requieren inteligencia, perspicacia, ingenio y suerte para encontrar algoritmos eficientes para ciertos problemas
- una ciencia , porque los principios del análisis de algoritmos y los patrones algorítmicos ampliamente aplicables se han desarrollado con el tiempo para su uso.
Los clásicos
La historia es importante. Con el tiempo, muchos algoritmos se han vuelto conocidos (por diversas razones). Algunos de estos son:
- MCD de Euclides
- La transformación rápida de Fourier
- Prueba de primalidad de Miller-Rabin
Recursos:
Tipos de estructuras de datos: estructuras de datos relacionadas con algoritmos de aprendizaje automático