Foto de Markus Spiske en UnsplashLa maldición de la dimensionalidad se refiere a los desafíos y dificultades que surgen cuando se trata de conjuntos de datos de alta dimensión en el aprendizaje automático. A medida que aumenta la cantidad de dimensiones (o funciones) en un conjunto de datos, la cantidad de datos necesarios para aprender con precisión las relaciones entre las funciones y la variable de destino crece exponencialmente. Esto puede dificultar el entrenamiento de un modelo de aprendizaje automático de alto rendimiento en un conjunto de datos de alta dimensión. Otra razón por la cual la maldición de la dimensionalidad es un problema en el aprendizaje automático es que puede conducir a un sobreajuste. Cuando se trata de conjuntos de datos de alta dimensión, es fácil incluir características irrelevantes o redundantes que no contribuyen al poder predictivo del modelo. Esto puede hacer que el modelo se ajuste demasiado a los datos de entrenamiento, lo que genera una mala generalización a los datos no vistos.Análisis de datos funcionales (FDA) es un tipo de análisis estadístico que se utiliza para analizar datos en forma de curvas o funciones continuas, en lugar de los datos tabulares tradicionales que se utilizan a menudo en el análisis estadístico. En el análisis funcional de datos, el objetivo es modelar y comprender la estructura subyacente de los datos mediante el examen de las relaciones entre las propias funciones, en lugar de solo los puntos de datos individuales. Este tipo de análisis puede ser particularmente útil para conjuntos de datos que son complejos o dependientes del tiempo y puede proporcionar información que puede no ser evidente con las técnicas estadísticas tradicionales.El análisis funcional de datos puede ser útil en varias situaciones diferentes. Por ejemplo, se puede usar para modelar conjuntos de datos complejos que pueden tener muchas estructuras subyacentes, como datos de series temporales o datos que se miden en una escala continua. También se puede utilizar para identificar patrones y tendencias en los datos que pueden no ser evidentes al observar puntos de datos individuales. [1] Además, el análisis funcional de datos puede proporcionar una comprensión más detallada y matizada de las relaciones entre diferentes variables en un conjunto de datos, lo que puede ser útil para hacer predicciones o desarrollar nuevas teorías. El uso del análisis funcional de datos puede ayudar a los investigadores a obtener una comprensión más profunda de los datos con los que están trabajando.y para descubrir ideas que podrían no ser evidentes a partir de técnicas estadísticas más tradicionales.
Es posible convertir datos de un conjunto discreto x₁, x₂… xₜ a una forma funcional. En otras palabras, podemos expresar nuestros datos como funciones, en lugar de puntos discretos. En el análisis de datos funcionales, una base es un conjunto de funciones que se utilizan para representar una curva o función continua. Este proceso también se denomina suavizado de base. El proceso de suavizado se muestra en la Ecuación 1. Implica expresar una unidad estadística xᵢ como una combinación lineal de los coeficientes cᵢₛ y las funciones base φₛ.Ecuación 1. Representación de datos funcionales. [2]Se pueden utilizar diferentes tipos de base según la naturaleza de los datos y los objetivos específicos del análisis. Algunos tipos comunes de bases incluyen la base de Fourier, la base polinómica, la base spline y la base de ondículas. Cada uno de estos tipos de base tiene sus propias propiedades únicas y puede ser útil para diferentes tipos de datos y análisis. Por ejemplo, la base de Fourier se usa a menudo para datos que tienen una estructura periódica, mientras que la base polinomial es útil para datos que están bien aproximados por una función polinomial. En general, el la elección de la base dependerá de las características específicas de los datos y de los objetivos del análisis.
En el análisis de datos funcionales, una base B-spline es un tipo de base que se construye usando funciones B-spline. Las funciones B-spline son funciones polinómicas por partes que se utilizan comúnmente en gráficos por computadora y análisis numérico. En una base B-spline, las funciones se organizan de una manera específica para que puedan usarse para representar cualquier función o curva continua. Las bases B-spline se utilizan a menudo en el análisis de datos funcionales porque tienen una serie de propiedades útiles. Las bases B-spline son las más utilizadas en investigación en FDA. [3]
La Figura 1 muestra un ejemplo de una base de B-splines cúbicos.Figura 1. Base B-spline cúbica, usando n = 15. Imagen del autor.
Veamos una implementación de FDA en Python para demostrar cómo esta poderosa técnica puede funcionar realmente bien en algunos conjuntos de datos para reducir la dimensionalidad y mejorar la precisión. Puede encontrar el código completo vinculado al final del artículo. El proceso es el siguiente:1. Elija un conjunto de datos
Para el siguiente ejemplo, estoy usando la base de datos de insuficiencia cardíaca congestiva de BIDMC [4][5] conjunto de datos Este análisis se basa en una versión preprocesada llamada ECG5000. Como se muestra en la Figura 2, el conjunto de datos es una serie temporal con 140 características (instantes de tiempo) y 5000 instancias (500 para el conjunto de trenes y 4500 para el conjunto de prueba). Hay cinco clases en la variable objetivo, con cuatro tipos diferentes de enfermedades del corazón. Para este análisis, solo consideraremos un objetivo binario, con 0 si el latido del corazón es normal y 1 si está afectado por una enfermedad cardíaca. Con un tamaño de 500×140, el conjunto de trenes es un conjunto de datos de alta dimensión.Figura 2. El conjunto de datos ECG5000. El objetivo del conjunto de datos es predecir enfermedades del corazón. Imagen del autor.2. Elija una base.
Elegí la base que se muestra en la Figura 1.3. Representar los datos en forma funcional.
La Figura 3 muestra el resultado después de convertir los datos a una forma funcional, utilizando una base B-spline con 15 funciones. Lo he hecho con la biblioteca de python scikit-fda usando el siguiente código. Importar pandas como pd
importar numpy como np
importar matplotlib.pyplot como plt
importar pandas como pd
desde skfda.representation.basis importar BSpline
de skfda.representation import FDataGrid, FDataBasistrain = pd.read_csv(f’ECG5000_TRAIN.arff’, header=Ninguno)
prueba = pd.read_csv(f’ECG5000_TEST.arff’, encabezado=Ninguno)
y_tren = tren.iloc[:, -1]
y_tren = [1 if i == 1 else 0 for i in y_train]
X_tren = tren.iloc[:, :-1]
y_prueba = prueba.iloc[:, -1]
y_prueba = [1 if i == 1 else 0 for i in y_test]
X_prueba = prueba.iloc[:, :-1]base = BSpline(n_base=15, orden = 3)
X_train_FDA = FDataBasis.from_data(X_train, grid_points= np.linspace(0, 1, 140), base=base)
X_test_FDA = FDataBasis.from_data(X_test, grid_points= np.linspace(0, 1, 140), base=base)X_train_FDA = X_train_FDA.coeficientes
X_test_FDA = X_test_FDA.coeficientesFigura 3. ECG5000 representado con funciones. Imagen del autor.4. Finalmente, extraiga los coeficientes. Este es su nuevo conjunto de datos.
Hay 15 funciones en el conjunto básico. Por lo tanto, hay 15 coeficientes a utilizar. El proceso ha reducido efectivamente la dimensionalidad de 140 a 15 características. Ahora entrenemos un modelo XGBoost para evaluar si la precisión se ve afectada.Figura 4. Antes y después de FDA en el conjunto de datos ECG5000. Imagen del autor. ¡Se puede observar que la precisión aumentó después de reducir el número de funciones en casi un factor de diez!
Una derivada es un concepto matemático que mide la tasa de cambio de una función con respecto a uno de sus argumentos. En el contexto del análisis de datos funcionales, los derivados se pueden usar para describir cuantitativamente la suavidad y la forma de un conjunto de datos funcionales. Por ejemplo, la primera derivada de una función se puede usar para identificar máximos y mínimos locales, mientras que la segunda derivada se puede usar para identificar puntos de inflexión. Las derivadas también se pueden usar para identificar cambios en la pendiente o la curvatura de una función. Esto puede ser útil para identificar tendencias o cambios en los datos a lo largo del tiempo. Además, las derivadas se pueden usar para aproximar la función original usando una expansión polinomial, que puede ser útil para hacer predicciones o realizar otros análisis de los datos.
La figura 5 muestra la mejora en la precisión después de agregar derivadas de primer y segundo orden. Los derivados se suman de la misma manera. Primero, tomamos la derivada de la forma funcional y agregamos los coeficientes básicos al conjunto de datos. Este proceso se repite para las derivadas de segundo orden. Dado que estamos agregando características adicionales, la dimensionalidad aumenta. Sin embargo, es menos de un tercio del conjunto de datos original. La matriz de confusión muestra que los derivados están agregando información importante al modelodisminuyendo notablemente el número de falsos negativos, y logrando una clasificación casi perfecta de individuos sanos.Figura 5. Resultados tras añadir derivadas a las características. Imagen del autor.
En general, FDA es una herramienta poderosa para analizar datos funcionales y tiene una amplia gama de aplicaciones en campos como la ingeniería, la economía y la biología. Su capacidad para modelar datos funcionales utilizando una forma funcional y para aplicar una amplia gama de métodos estadísticos lo convierte en una herramienta valiosa para reducir la dimensionalidad y mejorar la precisión en algunas situaciones.
Puede encontrar el conjunto de datos y el código completo para gráficos y modelos en GitHub.[1] Ramsay, J. y Silverman, BW Functional Data Analysis (2010) (Springer Series in Statistics) (reimpresión de tapa blanda de la segunda edición de tapa dura, 2005). Saltador.[2] Maturo, F., & Verde, R. Combinación de bosque aleatorio y análisis de datos funcionales para la clasificación supervisada de señales biomédicas: teoría y aplicación a datos de electrocardiograma. (2022). Estadísticas en Medicina, 41(12), 2247–2275. https://doi.org/10.1002/sim.9353[3] Ullah, S. y Finch, CF. Aplicaciones del análisis funcional de datos: una revisión sistemática. (2013) Metodología de investigación médica de BMC, 13(1). https://doi.org/10.1186/1471-2288-13-43[4] Baim DS, Colucci WS, Monrad ES, Smith HS, Wright RF, Lanoue A, Gauthier DF, Ransil BJ, Grossman W, Braunwald E. Supervivencia de pacientes con insuficiencia cardíaca congestiva grave tratados con milrinona oral. J Colegio Americano de Cardiología 1986 Mar; 7(3):661–670. http://www.ncbi.nlm.nih.gov/entrez/query.fcgi?cmd=Retrieve&db=PubMed&list_uids=3950244&dopt=Abstract[5] Goldberger, A., Amaral, L., Glass, L., Hausdorff, J., Ivanov, PC, Mark, R., … & Stanley, HE (2000). PhysioBank, PhysioToolkit y PhysioNet: componentes de un nuevo recurso de investigación para señales fisiológicas complejas. Circulación [Online]. 101 (23), págs. e215–e220.
Los días felices de la PDA y Blackberry han quedado definitivamente atrás, pero el factor…
Tutorial sobre cómo pronosticar usando un modelo autorregresivo en PythonFoto de Aron Visuals en UnsplashForecasting…
Si tienes un iPhone, los AirPods Pro son la opción obvia para escuchar música, ¡aunque…
Ilustración de Alex Castro / The Verge Plus nuevos rumores sobre el quinto Galaxy Fold.…
Se rumorea que los auriculares premium de próxima generación de Apple, los AirPods Max 2,…
El desarrollador Motive Studio y el editor EA han lanzado un nuevo tráiler de la…