Full text
Proyecto Fin de Carrera Ingeniería de Telecomunicación Formato de Publicación de la Escuela Técnica Superior de Ingeniería Autor: F. Javier Payán Somet Tutor: Juan José Murillo Fuentes Dep. Teoría de la Señal y Comunicaciones Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2013 Trabajo Fin de Grado Grado en Ingeniería Aeroespacial Estimación de riesgo de colisión de objetos orbitantes utilizando técnicas de Inteligencia Artificial Autor: Begoña Lozano Arrue Tutor: Federico Cuesta Rojo Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2023
Trabajo Fin de Grado Grado en Ingeniería Aeroespacial Estimación de riesgo de colisión de objetos orbitantes utilizando técnicas de Inteligencia Artificial Autor: Begoña Lozano Arrue Tutor: Federico Cuesta Rojo Profesor Titular Dpto. Ingeniería de Sistemas y Automática Escuela Técnica Superior de Ingeniería Universidad de Sevilla Sevilla, 2023
Trabajo Fin de Grado: Estimación de riesgo de colisión de objetos orbitantes utilizando técnicas de Inteligencia Artificial Autor: Begoña Lozano Arrue Tutor: Federico Cuesta Rojo El tribunal nombrado para juzgar el trabajo arriba indicado, compuesto por los siguientes profesores: Presidente: Vocal/es: Secretario: acuerdan otorgarle la calificación de: El Secretario del Tribunal Fecha:
Agradecimientos E n primer lugar, agradecer a mi tutor Federico por ayudarme durante la realización de este trabajo. Dar las gracias a mi familia por saber sobrellevarme todo lo que ha durado el grado y a mis amigos que han hecho los días en la universidad amenos. I
Resumen E vitar basura espacial es el día a día para las misiones espaciales orbitando alrededor de la Tierra. Para ello, la Agencia Espacial Europea lleva a cabo la monitorización de todos los objetos orbitantes alrededor de la Tierra a partir de los CDMs (Conjuction Data Message), estimando la colisión de riesgo entre la basura y los satélites a través de métodos basados en Inteligencia Artificial. A partir de esto, la ESA propone la siguiente competición: estimar la colisión de riesgo en las órbitas basándose en los CDMs. La Inteligencia Artificial hoy en día está en alza. Una técnica utilizada es el Machine Learning donde no es necesario una programación explicita de algoritmos. Para completar el desafío propuesto se hace uso de dos métodos de Machine Learning supervisados (árboles de decisión y redes neuronales) implementados en Python. III
XÍndice 4.1 Árboles de Decisión 17 4.1.1 Clasificación 18 Características del artículo 18 Características de la tabla del artículo 22 Todas las características 26 Comparación de los Árboles de Decisión clasificadores 30 4.1.2 Regresión 30 Características del artículo 30 Características de la tabla del artículo 35 Todas las características 39 Comparación de los Árboles de Decisión de regresión 43 4.2 Redes Neuronales 43 4.2.1 Clasificación 43 Características del artículo 44 Características de la tabla del artículo 48 Todas las características 52 Comparación de las Redes Neuronales clasificadoras 56 4.2.2 Regresión 56 Características del artículo 56 Características de la tabla del artículo 61 Todas las características 65 Comparación de las Redes Neuronales de regresión 69 5 Análisis de resultados 71 5.1 Árboles de decisión 71 5.2 Redes Neuronales 77 5.3 Comparación de los métodos de aprendizaje supervisado 82 6 Conclusión y líneas futuras 83 Apéndice A Mecánica Orbital 85 A.1 Época 85 A.2 Órbitas 85 A.3 Azimut y elevación 86 A.4 Apogeo y perigeo 87 A.5 Emisiones de radio F10,7 cm 87 A.6 Índice geomagnético 87 A.7 Número de Wolf 87 Apéndice B Estadísticas 89 B.1 Varianza 89 B.2 Desviación estándar 89 B.3 Covarianza 89 B.4 Parámetros de regresión R289 B.5 Error absoluto medio 90 B.6 Error cuadrático medio 90 B.7 Distancia de Mahalanobis 90
Índice XI B.8 Estadística descriptiva univariante 90 Apéndice C Anexo de Machine Learning 91 C.1 Términos 91 Validación cruzada 91 Tiempo de ajuste 91 Tiempo de puntuación 91 C.2 Función de calidad del árbol de decisión clasificador 91 Índice de Figuras 93 Índice de Tablas 97 Índice de Códigos 99 Bibliografía 101 Glosario 103
Glosario CDM Conjuction Data Message CV Cross-validation / Validación cruzada ESA European Space Agency / Agencia Europea del Espacio IA Inteligencia Artificial ML Machine Learning XIII
1 Desafío: Evitar colisiones en el espacio E vitar la basura espacial y realizar maniobras para evitarla está a la orden del día para los satélites que orbitan alrededor de la Tierra. La mayoría de ésta se encuentra monitorizada y categorizada por la Space Surveillance Network. La oficina de Spce Debris de la Agencia Espacial Europea (ESA) se encarga de apoyar distintas misiones europeas así como distintas empresas comerciales en la supervisión de la basura espacial. La monitorización se lleva a cabo a través de lo denominado "Conjuction Data Message" (CDM), mensajes con información sobre distintos atributos de un posible evento de colisión como los son el tiempo hasta la posible colisión, el tipo de objeto o un riesgo auto-computado. Las posibles colisiones se detectan con la propagación de la orbita de cada objeto. Normalmente se publican 3 CDM por día, por lo que se puede crear una línea temporal de un posible evento. En la mayoría de los casos la oficina de Space Debris avisa con un día o dos de antelación a los equipos de control para que comienzan a planear la maniobra necesaria para evitar la colisión. A partir de esto, la ESA propone el siguiente desafío [ 2 ]: crear un modelo que sea capaz de estimar el riesgo de colisión entre dos objetos orbitantes. 1.1 Estrategia actual de la ESA Hoy en día la estrategia para evitar colisiones [ 19 ] [ 18 ] está basada en el análisis de los CDMs, proporcionados por el decimoctavo escuadrón espacial de los Estados Unidos, y el análisis de maniobras orbitales de las misiones a monitorizar. El procedimiento seguido por la ESA es el siguiente: una vez se tienen los CDMs descargados, se propaga el estado de los perseguidores, consiguiendo un catálogo "temporal" de todos los objetos cercanos a las naves o satélites que se estén monitorizando. Tras esto, se comienzan a analizar las distintas opciones de maniobras. Para ello, utiliza dos herramientas: CORCOS (COllision Risk COmputation Software) y CAMOS (Collision Avoidance Optimization Software). El primero se encarga de calcular el riesgo de colisión entre dos objetos y el último de evaluar las distintas estrategias posibles para maniobrar. La ESA considera que para órbitas LEO 1 , el riesgo de colisión se reduce en un noventa por ciento si se considera un umbral de riesgo de 10−4. 1LEO (Low Earth Orbit) (órbitas terrestres bajas): son órbitas de altitud menor que 2000 km. 1
2Capítulo 1. Desafío: Evitar colisiones en el espacio 1.2 Desafío propuesto El modelo a diseñar utiliza CDMs de hasta dos días antes del acercamiento más cercano para predecir el riesgo de un posible evento de colisión. Para poder clasificar si el evento es de riesgo o no riesgo se adopta el siguiente criterio: cuando el riesgo 2 es mayor que -5 se toma como un evento de alto riesgo y cuando es menor se toma de bajo riesgo, o lo que es lo mismo, en este caso no hay riesgo de colisión [5]. 1.2.1 Conjunto de Datos La ESA pone a disposición dos conjuntos de datos: train_data.zip , para entrenar el modelo, y test_data.csv , al cual se le aplicará el modelo para poder realizar las predicciones. Éstos provienen de la misma base de datos, cuya información está recogida de la misma forma, pero cada uno de ellos ha sido seleccionado para poder sobrerepresentar los casos donde existe riesgo de colisión. Cada conjunto cuenta con varios eventos únicos de encuentros cercanos, contando el set de entrenamiento con significativamente más eventos. La principal diferencia entre los datos de entrenamiento y los de validación es la columna time_to_tca , que se explicará más adelante. Los datos de entrenamiento cuentan con eventos donde esta característica es menor de dos días. En el set de validación solo hay eventos cuyo time_to_tca es mayor que dos, debido a que en la práctica cuando quedan dos días para la posible colisión se comienza a preparar la estrategia para la maniobra a seguir. Los conjuntos de datos son tablas donde las filas representan un solo CDM y las columnas informan sobre las características de cada CDM. Cada posible colisión está formada por varios CDM, ya que es una serie temporal de ellos, de los cuales el riego que interesa para determinar si existe o no encuentro es el último de la serie. Descripción de las características Cada CDM cuenta con 103 columnas o características. Existen dos tipos de atributos: con nombre propio o correspondientes al objeto objetivo o al perseguidor (mismas propiedades pero para cada objeto respectivo). Las columnas con nombre propio son las siguientes 34: •event_id: identificador único por cada evento de colisión. •riesgo: valor en base de 10 del riesgo autocalculado. •time_to_tca : intervalo de tiempo (días) entre la creación del CDM y el momento de aproximación más cercano. •mission_id: identificador de la misión que se verá afectada. •max_risk_estimate : probabilidad máxima de colisión, obtenida escalando la covarianza combinada. •max_risk_scaling: factor utilizado para calcular la probabilidad máxima de colisión. •miss_distance: posición relativa (m) entre el objetivo y el perseguidor. •relative_speed: velocidad relativa (m/s) entre el objetivo y el perseguidor. •relative_position_n : posición relativa normal (m) entre el objetivo y el perseguidor en línea recta. 2El riesgo viene dado en base 10. 3Los términos relativos a la mecánica orbital se explican en el apéndice A 4Los términos relativos a la estadística se explican en el apéndice B
1.2 Desafío propuesto 3 •relative_position_r: posición relativa radial (m) entre el objetivo y el perseguidor. •relative_position_t : posición relativa (m) entre el objetivo y el perseguidor siguiendo la cónica de la órbita. •relative_velocity_n : velocidad relativa normal (m/s) entre el objetivo y el perseguidor en línea recta. •relative_velocity_r: velocidad relativa radial (m/s) entre el objetivo y el perseguidor. •relative_velocity_t : velocidad relativa(m/s) entre el objetivo y el perseguidor siguiendo la cónica de la órbita. •c_ob ject_type: tipo de objeto que está en riesgo de colisión con el satélite. •geocentric_latitude: latitud (grados) del punto del encuentro. •azimuth : componente del vector velocidad relativa, en concreto el ángulo de azimuth (grados) •elevation : componente del vector velocidad relativa, en concreto el ángulo de elevación. (grados). •mahalanobis_distance: distancia de Mahalanobis. •F10: índice de flujo de radio 10.7 cm (10221022 W/(m2m2 Hz)). •AP: índice geomagnético. •F3M: media móvil de 81 días de F10.7 (más de 3 rotaciones solares). •SSN: número de Wolf. Las columnas compartidas entre el perseguidor y el objetivo se distinguen por la letra que les precede: c para el perseguidos (chaser) y t para el objetivo (target). Éstas son las que se exponen a continuación, la "x" sustituye a la c y/o la t: •x_sigma_rdot: covarianza, desviación estándar de la velocidad radial (m/s). •x_sigma_n: covarianza, desviación estándar de la posición estándar (m). •x_cn_r: covarianza, correlación entre la posición normal y posición radial. •x_cn_t: covarianza, correlación entre la posición normal y posición transversal. •x_cndot_n: covarianza, correlación entre la velocidad normal y posición normal. •x_sigma_ndot: covarianza, desviación estándar de la velocidad normal (m/s). •x_cndot_r: covarianza, correlación entre la velocidad normal y posición radial. •x_cndot_rdot: covarianza, correlación entre la velocidad normal y velocidad radial. •x_cndot_t: covarianza, correlación entre la velocidad normal y posición transversal. •x_cndot_tdot : covarianza, correlación entre la velocidad normal y velocidad transversal. •x_sigma_r: covarianza, desviación estándar de la posición radial (m). •x_ct_r: covarianza, correlación entre la velocidad transversal y posición radial. •x_sigma_t: covarianza, desviación estándar de la posición transversal (m). •x_ctdot_n: covarianza, correlación entre la velocidad transversal y posición normal. •x_crdot_n: covarianza, correlación entre la velocidad radial y posición normal.
4Capítulo 1. Desafío: Evitar colisiones en el espacio •x_crdot_t: covarianza, correlación entre la velocidad radial y posición transversal. •x_crdot_r: covarianza, correlación entre la velocidad radial y posición radial. •x_ctdot_r: covarianza, correlación entre la velocidad transversal y posición radial. •x_ctdot_rdot: covarianza, correlación entre la velocidad transversal y velocidad radial. •x_ctdot_t : covarianza, correlación entre la velocidad transversal y la posición transversal. •x_sigma_tdot: covarianza, desviación estándar de la velocidad transversal (m/s). •x_position_covariance_det: determinante de la covarianza. •x_cd_area_over_mass: coeficiente balístico (kg/mm2). •x_cr_area_over_mass : coeficiente de radiación solar (A/m), equivalente al coeficiente balístico. •x_h_apo: apogeo (km). •x_h_per: perigeo (km). •x_ecc: excentricidad. •x_j2k_inc: inclinación (grados). •x_j2k_sma: semieje mayor (km). •x_sedr: tasa de disipación de energía (W/kg). •x_span : tamaño (m) utilizado por el algoritmo de cálculo del riesgo de colisión (se supone un diámetro mínimo de 2 m para el perseguidor). •x_rcs_estimate: área (m2)de la sección transversal del radar •x_actual_od_span : duración real del intervalo (días) de actualización para la determinación de la órbita. •x_obs_available : número de observaciones disponibles para la determinación de la órbita, por cada CDM. •x_obs_used : número de observaciones utilizadas para la determinación de la órbita, por cada CDM. •x_recommended_od_span : duración recomendada del intervalo (días) de actualización para la determinación de la órbita. •x_residuals_accepted: residuos de la determinación de órbita. •x_time_lastob_end : final del intervalo de tiempo (con respecto a la época de creación del CMD) desde la última observación aceptada utilizada en la determinación de la órbita. •x_time_lastob_start : inicio del tiempo en días (con respecto a la época de creación del CMD) desde la última observación aceptada utilizada en la determinación de la órbita. •x_weighted_rms : media cuadrática de los mínimos cuadrados utilizados en la determinación de órbitas.
2 Inteligencia Artificial A lan Turing, considerado por muchos el padre de la IA, se preguntaba en un artículo publicado en 1950 si las máquinas podían pensar [ 28 ]. En él, entre otras cuestiones, expone un juego de imitación con una máquina así como diferentes opiniones contrarias a la suya. Llega a la conclusión de que la cuestión de si las máquinas piensan es un problema de programación principalmente y que una de las características principales será que el programador, o profesor de la máquina, podrá predecir el comportamiento del problema a analizar pero sin saber muy bien que pasa pro dentro. John McCarthy, famoso ingeniero informático, definía la Inteligencia Artificial como "la ciencia e ingeniería capaz de hacer máquinas inteligentes, en concreto, programas informáticos"[16]. Para poder resolver un problema en un ordenador se necesita un algoritmo, capaz de llevar a cabo instrucciones a partir de ciertas entradas. Para ello, se debe programar el algoritmo y proporcionarselo al ordenador. Pero, hay ocasiones en las que no es necesario programarlo, el propio ordenador puede extraer un posible algoritmo basándose en los patrones del conjunto de datos a examinar. En esto se basa la Inteligencia Artificial (IA). De forma simple, se puede definir la IA como el campo que combina la programación con conjuntos robustos de datos. Se pueden diferenciar dos tipos de IA principalmente: débil y fuerte. La Inteligencia Artificial débil es aquella que se entrena en resolver unas tareas en específico, como Siri de Apple o los vehículos autonomos. Dentro de la IA fuerte se distinguen dos tipos: Inteligencia Artificial General (Artificial general intelligence, AGI), la máquina tendría la misma inteligencia que un humano, es decir, sería autoconsciente; y Super Inteligencia Artificial (Artificial Super Intelligence, ASI), aquella capaz de superar la inteligencia humana. El Machine Learning (ML) es una técnica de IA donde no es necesario una programación explicita. Mediante distintos tipos de algoritmos la máquina es capaz de reconocer patrones de datos y sacar conclusiones de forma autónoma. Los algoritmos de ML se pueden clasificar en cuatro subcategorías [27]: • Aprendizaje Supervisado (Supervised ML): a partir de un set de entrenamiento, basado en datos anteriores y etiquetas, se realiza un aprendizaje previo. El algoritmo compara los resultados obtenidos, mediante su función interna, con los esperados, modificando el modelo de algoritmo si es necesario. • Aprendizaje Sin Supervisión (Unsupervised ML): en este caso el conjunto de datos de entrenamiento no esta ni clasificado ni etiquetado. El sistema identifica observaciones en los patrones de los datos • Aprendizaje Semi-Supervisado(Semi-supervised ML): utilizada tanto datos etiquetados como no etiquetados en el proceso de aprendizaje. 5
12 Capítulo 3. Programación •criterion : mide la calidad de la división de las particiones del árbol. Puede ser de tres tipos: "gini", "entropy", "log_loss". •splitter : estrategia utilizada para elegir la división de cada nodo. Hay dos tipos "best", estrategia que elige la mejor divisón, y "random", lo hace de forma aleatoria. •max_f eatures : número de características consideradas cuando se busca la mejor división. Puede ser un número, entero o decimal, o seguir tres estrategias: "auto","sqrt" o "log2". Código 3.6 Parámetros del DecisionTreeClassifier. tree.DecisionTreeClassifier(*, criterion=’gini’, splitter=’best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state= None, max_leaf_nodes=None, min_impurity_decrease=0.0, class_weight=None, ccp_alpha=0.0) Decision Tree Regressor Esta función utiliza la regresión y espera como entradas valores numéricos decimales. Sigue el mismo procedimiento que con el clasificador, es decir, primero se entrena y después se puede usar para predecir. Código 3.7 DecisionTreeRegressor. >>> from sklearn import tree >>> X = [m_samples, n_features] >>> Y = [m_class,] >>> clasificador_regresor = tree.DecisionTreeRegressor() >>> clf_reg = clasificador_regresor.fit(X, Y) >>> Z = [m_samples, n_features] >>> clf_reg.predict(Z) Sus parámetros internos relevantes para este estudio es: •criterion : mide la calidad de la división de las particiones del árbol. Puede ser: " square_error ", "f riedman_mse"o"absolute_error". •splitter : estrategia utilizada para elegir la división de cada nodo. Hay dos tipos "best", estrategia que elige la mejor división, y "random", lo hace de forma aleatoria. •max_f eatures : número de características consideradas cuando se busca la mejor división. Puede ser un número, entero o decimal, o seguir tres estrategias: "auto","sqrt" o "log2". Código 3.8 Parámetros del DecisionTreeRegressor. tree.DecisionTreeRegressor(*, criterion=’squared_error’, splitter=’ best’, max_depth=None, min_samples_split=2, min_samples_leaf=1, min_weight_fraction_leaf=0.0, max_features=None, random_state= None, max_leaf_nodes=None, min_impurity_decrease=0.0, ccp_alpha =0.0)
3.5 Scikit-learn 13 3.5.2 Redes Neuronales Las Redes Neuronales que ofrece esta librería son redes perceptrón multicapa (MLP). Éstas son un algoritmo de machine learning de aprendizaje supervisado que aprende una función a partir de un conjunto de datos de entrenamiento dados y un objetivo. Entre la capa de entrada y salida existen múltiples capas intermedias. Figura 3.1 Ejemplo de una capa intermedia en una Red MLP. MLPClassifier Este clasificador implementa un algoritmo MLP, el cual entrena utilizando utilizando backpropagation, es decir, ajusta los parámetros de la red para reducir la tasa de error. Entrena a partir de dos sets de datos: una matriz de n muestras y m características, que contiene las muestras, y una matriz de n muestras, con las clases que se requieran. Tras el entrenamiento, se puede llevar a cabo las predicciones del nuevo conjunto de datos. Código 3.9 MLPClassifier. >>> from sklearn import MLPClassifier >>> X = [m_samples, n_features] >>> Y = [m_class,] >>> clasificador = MLPClassifier() >>> clf = clasificador.fit(X, Y) >>> Z = [m_samples, n_features] >>> clf.predict(Z) Algunos parámetros internos de este clasificador son: •hidden_layer_sizes: numero de neuronas en las capas intermedias. •activation : función de activación de las capas intermedias. Existen cuatro tipos: "identity", útil para casos lineales ( f(x) = x ); "logistic", función sigmoide ( f(x) = 1/(1+ exp(−x)) ); "tanh", función tangente hiperbólica ( f(x) = tanh(x) ); "relu", función rectificadora (f(x) = max(0,x)).
14 Capítulo 3. Programación •solver : método utilizado para optimización de los pesos. Son: "lbfgs", método quasi- Newtoniano; "sgd", descenso de gradiente estocástico; y "adam", descenso de gradiente estocástico propuesto por Kingma, Diederik, y Jimmy Ba. •learning_rate : tasa de actualización de los pesos, solo es utilizado para el solver "sgd". Hay tres tipos: "constant", tasa constante; "invscaling", decrecimiento de la tasa para cada paso del tiempo; "adaptive", mantienen la tasa constante siempre y cuando no existan pérdidas en el entrenamiento. Código 3.10 Parámetros del MLPClassifier. >>> neural_network.MLPClassifier(hidden_layer_sizes=(100,), activation=’relu’, *, solver=’adam’, alpha=0.0001, batch_size=’ auto’, learning_rate=’constant’, learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol =0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10, max_fun=15000) MLPRegressor Este método de regresión implementa una Red perceptón multicapa que entrena utilizando backpropagation sin una función de activación en la capa de salida. Por ello, usa el error cuadrático como la función de pérdida. Código 3.11 MLPRegressor. >>> from sklearn import MLPRegressor >>> X = [m_samples, n_features] >>> Y = [m_class,] >>> clasificador_regresor = MLPRegressor() >>> clf_reg = clasificador_regresor.fit(X, Y) >>> Z = [m_samples, n_features] >>> clf.predict(Z) Los parámetros internos son los mismo que para la Red clasificadora. Código 3.12 Parámetros del MLPRegressor. >>> neural_network.MLPRegressor(hidden_layer_sizes=(100,), activation=’relu’, *, solver=’adam’, alpha=0.0001, batch_size=’ auto’, learning_rate=’constant’, learning_rate_init=0.001, power_t=0.5, max_iter=200, shuffle=True, random_state=None, tol =0.0001, verbose=False, warm_start=False, momentum=0.9, nesterovs_momentum=True, early_stopping=False, validation_fraction=0.1, beta_1=0.9, beta_2=0.999, epsilon=1e-08, n_iter_no_change=10, max_fun=15000)
3.5 Scikit-learn 15 3.5.3 Preprocesadores Estimadores Scikit incluye un paquete sklearn.preprocessing con funciones para poder transformar los datos, como estandarizar, normalizar o escalar en un rango. Standard Scaler La estandarización es el proceso por el cual se hace que los datos tengan una distribución normal, es decir, los datos deben tener media cero y varianza unidad. La expresión matemática que consigue esto es la mostrada en (3.1) , donde z es elvalor transformado, x es el valor a transformar, ues la media de los datos y ses la desviación estándar. z=x−u s(3.1) Código 3.13 Standard Scaler. >>> from sklearn import preprocessing >>> from sklearn.preprocessing import MaxAbsScaler >>> X_train = [m, n] >>> scaler = StandardScaler() >>> X_scaled = scaler.fit_transform(X_train) MinMax Scaler Este estimador transforma los datos dentro de un rango dado, según Ecuación 3.2 donde z=xdesviac ·(xmax −xmin)+xmin =x−xmin xmax −xmin ·(xmax −xmin)+xmin (3.2) Código 3.14 MinMax Scaler. >>> from sklearn import preprocessing >>> from sklearn.preprocessing import MinMaxScaler >>> X_train = [m, n] >>> scaler = MinMaxScaler(feature_range=(min, max)) >>> X_scaled = scaler.fit_transform(X_train) MaxAbs Scaler El MaxAbsScaler transforma cada característica (columna) según su valor máximo. No centra los datos y tampoco tiene en cuenta si la matriz es dispersa. Código 3.15 MaxAbs Scaler. >>> from sklearn import preprocessing >>> from sklearn.preprocessing import MaxAbsScaler >>> X_train = [m, n] >>> scaler = MaxAbsScaler() >>> X_scaled = scaler.fit_transform(X_train)
4 Resolución del desafío S e va a completar al desafío utilizando los métodos de aprendizaje supervisado explicados en el Capítulo 3. En rasgos generales, se comenzará leyendo los datos y extrayendo lo que serán las matrices para el entrenamiento, una de características y otra de la estimación del riesgo, y para la predicción. Se aplicarán distintos preprocesadores y métodos de análisis previos para ver como afectan a los resultados. Tras esto, se entrenará, medirá y puntuará el modelo elegido. Además, se dibujarán curvas de aprendizaje y de análisis para los modelos con las mejores predicciones. La ESA publicó un artículo [ 5 ] con varias observaciones respecto al desafío. En él, se establece, en un principio, que existen varias características de los conjuntos de datos son más importantes en el análisis, las cuales son: event_id , time_to_tca , mission_id , miss_distance , c_ob ject_type,t_span,max_risk_estimate,max_risk_scaling,mahalanobis_distance, c_obs_used y c_position_covariance_det . Más adelante, se exponen en una tabla que hay una serie de atributos que reducen el error a la hora de predecir el riesgo, los cuales son: max_risk_estimate , mahalanobis_distance , c_sigma_t , c_position_covariance_det , c_sedr , max_risk_scaling , c_sigma_rdot , miss_distance , , c_sigma_n , time_to_tca , c_sigma_r , SSN , c_obs_used , c_sigma_ndot , relative_position_n , relative_position_r , relative_speed , c_crdot_t y c_recommended_od_span . Se comprobarán como afectan estos comentarios a los modelos que se implementen, el primer set de columnas se denominará "Características del artículo" y el segundo "Características de la tabla". En los datos para validar los modelos también aparece una columna riesgo, de esta forma se puede comparar lo estimado con lo verdadero. Así, se puede obtener cómo de exacto es cada procedimiento utilizado. Por tanto, los resultados obtenidos son la comparación de las predicciones de los métodos frente a el riesgo estimado verdadero dado por el test data. 4.1 Árboles de Decisión Los Árboles de Decisión solo pueden trabajar con valores del tipo float32. Para ello, se transforman los datos de entrenamiento y estimación, los valores que son mayores de el máximo de float32 se cambian a ese valor máximo (3.4028235e38). 17
18 Capítulo 4. Resolución del desafío 4.1.1 Clasificación Los árboles clasificadores pueden trabajar con categorías como caracteres o números enteros. En este documento, se van a considerar las categorías como los números enteros del riesgo. Por ello, se truncan dejando la parte entera del valor, los valores de la columna de riesgo de los dos conjuntos de datos (entrenamiento y predicción) (Tabla 4.1). Tabla 4.1 Clasificación en números enteros de la columna de riesgo. Columna original →Columna Transformada riesgo →riesgo -7,561299467 →-7 -9,248105312 →-9 -10,85047299 →-10 -30 →-30 ... ... Características del artículo Se aplica los escaladores explicados en 3.5.3 obteniendo los resultados mostrados en la Tabla 4.2. Se observa como el mayor porcentaje de aciertos se tiene para los datos sin escalar y después para MaxAbs Scaler. Esto se debe a que los CDMs tienen valores muy dispares, unos muy grandes y otros muy pequeños, y MaxAbs Scaler escala cada columna de forma independiente, por lo que transformará cada atributo conforme a los valores de éste, sin tener cuentas otros datos. Tabla 4.2 Aciertos y fallos de los escaladores para las características del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Sin Escalar 94,11 5,89 23043 1441 StandardScaler 33,73 66,27 8259 16225 MaxAbs Scaler 63,75 36,25 15608 8876 MinMax Scaler (-10,10) 32,29 67,70 7907 16577 Además, se prueba como afectan los distintos parámetro internos del DecisionTreeClassifier (3.5.1).Para poder deducir conclusiones de los distintos parámetros se obtienen los resultados de Tabla 4.3. Se puede observar como para criterion la versión log_loss es la que produce mejor resultados. En éste la medida de cualidad de la división del árbol tiene la expresión mostrada en Ecuación 4.1, lo cual va incluido en la expresión de calidad de la división de los árboles para scikit(Ecuación C.1 en el apéndice C). En cuanto a la estrategia para decidir la rama en cada nodo (splitter)random consigue menor número de acierto, ya que la decisión se hace de forma aleatoria. max_f eatures =log2 ( max_f eatures =log2(n_f eatures) ) tiene el porcentaje verdadero más elevado.
4.1 Árboles de Decisión 19 Tabla 4.3 Resultados del cambio de los parámetros del clasificador del Árbol de Decisión para las características del artículo. Porcentaje Contador Iteracion Acierto Fallo Acierto Fallo Criterion gini 94,10 5,90 23039 1445 entropy 94,80 5,20 23210 1274 log_loss 94,85 5,15 23224 1260 Splitter best 94,07 5,93 23031 1453 random 75,59 24,41 18507 5977 Max Features auto 68,89 31,11 16868 7616 sqrt 67,91 32,09 16627 7857 log2 69,24 30,76 16952 7532 H(Qm) = −∑pmklog(pmk)(4.1) A partir de ahora, cuando se mencionen "mejores parámetros" será la combinación de los mejores parámetros anteriores, Código 4.1 "Mejores parámetros" del Árbol de Decisión para las columnas del artículo. >>> clasificador_opt = DecisionTreeClassifier( criterion = "log_loss", splitter = "best", max_features = "sqrt") Una vez hecho este análisis previo, se entrena, puntúa y compara el clasificador para los casos: predeterminado, escalando con el mejor estimador (estudiado anteriormente), mejores parámetros y datos escalados con los mejores parámetros. Tabla 4.4 Aciertos y fallos de las distintas iteraciones para las características del artículo del Árbol clasificador. Porcentaje Contador Acierto Fallo Acierto Fallo Predeterminado 94,17 5,83 23056 1428 MaxAbs Scaler 63,87 36,13 15638 8846 Mejores Param Sin Escalar 77,50 22,50 18974 5510 Mejores Param Escalado 67,19 32,81 16451 8033 Los peores resultados se obtienen cuando se escalan los datos con la combinación de los mejores parámetros internos. El árbol predeterminado tiene los mejores porcentajes, ya que éste viene optimizado desde la librería. Se debe tener en cuenta que estos valores de aciertos y fallos se dan cuando se categoriza el riesgo en valores de número entero (desde -1 hasta -30). Si se categoriza en "riesgo de colisión" o "no riesgo de colisión" los porcentajes varían, ya que cuando el valor de riesgo es menor que cinco se considera "no riesgo" y los resultados obtenidos con los árboles, al compararlos con los valores verdaderos, no son tan diferentes como para cambiar la categoría de riesgo verdadero. Por ejemplo, clasificando en las dos categorías anteriores, los árboles obtienen un 100% de aciertos.
20 Capítulo 4. Resolución del desafío Como se ha mencionado antes, también es posible dibujar las curvas de aprendizaje y de análisis del modelo. Se van a mostrar las gráficas para el modelo con mejores resultados. La función learning_curve genera un nuevo número de muestras a partir del conjunto de entrada de muestras de entrenamiento dadas al método de aprendizaje. Los puntos que aparecen son los subconjuntos de validación dentro del entrenamiento. En la Figura 4.1 se puede ver una representación de la puntuación (sobre uno) que recibe el árbol de clasificación frente al número de muestras de entrenamiento empleadas. Conforme aumenta el número de muestras, el método va aumentando su puntuación a la hora de entrenar. Figura 4.1 Curva de aprendizaje de las características del artículo para el Árbol clasificador. El análisis de complejidad (Figura 4.2), muestra como el tiempo de ajuste aumenta conforme lo hace el número de muestras, lo que tiene sentido pues existen más filas para entrenar el modelo . En cuanto al tiempo de puntuación, varía muy poco frente al número de muestras.
4.1 Árboles de Decisión 21 (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.2 Análisis de complejidad del Árbol clasificador para las columnas del artículo.
28 Capítulo 4. Resolución del desafío de mejores parámetros y datos escalados consigue un número de aciertos aceptable. El Árbol clasificador predeterminado por scikit es el que más predicciones verdaderas hace. La puntuación del modelo es mayor cuanto más muestras hay para entrenarlo (Figura 4.7). En cuanto a la escalabilidad (Figura 4.8), el tiempo de ajuste llega a alcanzar los minutos, pues se está trabajando con muchas filas y columnas, y el tiempo de puntuación es similar para todos los subconjuntos pero tiene un valor superior al de los clasificadores anteriores. Además, como debe ocurrir, la exactitud aumenta cuando se deja más tiempo de ajuste y el valor de porcentajes de aciertos al realizar la validación es similar a la exactitud que se consigue en el entrenamiento (Figura 4.9). Figura 4.7 Curva de aprendizaje de todas las características para el Árbol clasificador.
4.1 Árboles de Decisión 29 (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.8 Análisis de complejidad del Árbol clasificador para todas las características.
30 Capítulo 4. Resolución del desafío Figura 4.9 Actuación del Árbol clasificador para todas las características. Comparación de los Árboles de Decisión clasificadores Todos los árboles clasificadores realizan buenas predicciones. En general, al escalar los datos se obtienen peores estimaciones. La combinación de los parámetros obtiene más fallos que los árboles predeterminados por la librería, ya que estos vienen optimizados. Los mejores resultados se obtienen cuando se entre el Árbol clasificador simplemente con las características del artículo. Las buenas estimaciones van empeorando conforme se añaden columnas (características) en el entrenamiento. Aún así, el porcentaje de aciertos es superior al 90% en todos los casos. Gracias a las gráficas, se ve como todos los procesos de entrenamiento tienen el mismo comportamiento. La puntuación aumenta con el número de muestras, al igual que ocurre con el tiempo de ajuste. Este último es más extenso cuanto más características se tiene en consideración. El tiempo de puntuación se puede considerar constante para todos los subconjuntos de entrenamiento. La exactitud aumenta con el tiempo de ajuste. Obviamente, los tiempos aumentan cuando el modelo es entrenado con más características. 4.1.2 Regresión Para el método de regresión no es necesario modificar los datos de entrada para el entrenamiento. Características del artículo El estudio de árbol regresor se comienza aplicando los estimadores vistos. En la Tabla 4.11 se ve como el modelo sin escalar es el que mejor resultados produce. El MaxAbs Scaler es el escalador con mayor número de aciertos, lo cual se debe a que éste transforma cada columna de característica de forma independiente, de esta manera la diferencia tan grande entre los valores
4.1 Árboles de Decisión 31 de los distintos atributos no afecta al proceso de entrenamiento de forma tan notoria como para los otros escaladores. Tabla 4.11 Aciertos y fallos de los escaladores para las características del artículo del Árbol de regresión. Porcentaje Contador Verdadero Falso Verdadero Falso Sin Escalar 94,16 5,84 23053 1431 Standard Scaler 23,25 76,75 5693 18791 MaxAbs Scaler 44,24 55,76 10832 13652 MinMax Scaler (-10,10) 21,72 78,28 5318 19166 Acto seguido, se estudia como el cambio de un parámetro interno (3.5.1) del modelo de regresión afecta. En la Tabla 4.12, se tiene que todos los criterion obtienen muy buenos resultados. La estrategia aleatoria utilizada para elegir la división (splitter) tiene mayor porcentaje de fallos. Para max_f eatures , se obtiene más aciertos cuando se consideran todas las características para el entrenamiento. Tabla 4.12 Resultados del cambio de los parámetros de la regresión del Árbol de Decisión para las características del artículo. Porcentaje Contador Iteracion Acierto Fallo Acierto Fallo Criterion squared error 98,14 1,86 24029 455 friedman MSE 98,08 1,92 24014 470 absolute error 97,93 2,07 23976 508 Splitter best 98,08 1,92 24015 469 random 83,56 1,86 20458 456 Max Features auto 98,16 1,86 24034 456 sqrt 76,98 1,86 18848 456 log2 80,65 1,86 19747 456 Código 4.4 "Mejores parámetros" del Árbol de Decisión de regresión para las características del artículo. >>> regresor_opt = DecisionTreeRegressor( criterion = "squared_error", splitter = "best", max_features = "sqrt") Ahora se entrena el modelo para las siguientes iteraciones: el Árbol de regresión predeterminado por la librería, el árbol predeterminado habiendo escaldo los datos previamente y aplicar los "mejores parámetros" para los casos anteriores (Tabla 4.13). Los resultados en porcentaje del árbol predeterminado y el de los "mejores parámetros" son básicamente iguales, la diferencia se debe a que el último acierta en 10 ocasiones más. En las iteraciones donde los datos están escalados, ambos tienen prácticamente el mismo numero de fallos y el porcentaje de resultados predecidos iguales a los verdaderos es aceptable.
32 Capítulo 4. Resolución del desafío Tabla 4.13 Aciertos y fallos de las distintas iteraciones para las características del artículo del Árbol de regresión. Porcentaje Contador Verdadero Falso Verdadero Falso Predeterminado 98,02 1,98 24000 484 MaxAbs Scaler 44,24 55,76 10832 13652 Mejores Param Sin Escalar 98,06 1,94 24010 474 Mejores Param Escalado 44,31 55,69 10848 13636 Se puede ver la calidad de cada iteración a través de los parámetros característicos de la regresión lineal (Tabla 4.14). Los valores más altos de R2 se corresponden con los casos con mayor número de aciertos. Tabla 4.14 Parámetros de la regresión de las distintas iteraciones del Árbol de regresión para las características del artículo. R2Error absoluto medio Error cuadrático medio Predeterminado 0,99968 0,0550 0,0313 MaxAbs Scaler -0,36834 0,2616 0,1474 Mejores Param Sin Escalar 0,99968 0,0548 0,0315 Mejores Param Escalado -0,36735 0,2615 0,1473 En la curva de aprendizaje (Figura 4.10) se puede considerar que la puntuación se comienza a establecerse a partir de las 40000 muestras. En realidad, la diferencia entre los valores de puntuación está en la cuarta cifra significativa por lo que se puede concluir que el árbol regresor obtiene buenos resultados sin hacerle falta más muestras de las dadas en el conjunto inicial de entrenamiento.
4.1 Árboles de Decisión 33 Figura 4.10 Curva de aprendizaje de las características del artículo para el Árbol de regresión. Al realizar el análisis de complejidad (Figura 4.11), se identifica que el tiempo de ajuste es menor de medio minuto y el de puntuación menor de 1 segundo. Además, se ve como el tiempo de ajuste aumenta de forma considerable conforme se tienen más muestras. En cambio, el tiempo de puntuación aumenta pero de forma menos significativa, tanto que se puede considerar estable durante todo el entrenamiento.
34 Capítulo 4. Resolución del desafío (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.11 Análisis de complejidad del Árbol de regresión para las columnas del artículo.
4.1 Árboles de Decisión 35 El árbol mejora su actuación cuando el tiempo de ajuste es mayor,yaa que tiene más tiempo para adaptarse y realizar las decisiones acertadas. Pese a esto, el cambio es para la cuarta cifra significativa por lo que se puede considerar que la exactitud del regresor es constante. Figura 4.12 Actuación del Árbol de regresión para las características del artículo. Características de la tabla del artículo Se comienza aplicando los escaladores. El proceso de estandarización y de escalar entre un rango de números dan las peores estimaciones. El MaxAbs Scaler es el preprocesador que mayor numero de aciertos tiene, pero tampoco es un valor de porcentaje de aciertos muy altos. Al no escalar los datos, se alcanzan menos fallos. Tabla 4.15 Aciertos y fallos de los escaladores del Árbol de regresión para todas las características de la tabla del artículo. Porcentaje Contador Verdadero Falso Verdadero Falso Sin Escalar 93,96 6,04 23006 1478 Standard Scaler 23,86 76,14 5843 18641 MaxAbs Scaler 43,90 56,10 10749 13735 MinMax Scaler (-10,10) 21,54 78,46 3613 20871 Para los parámetros internos del árbol (Tabla 4.16), los criterion squared_error y f riedman_MSE tienen porcentajes aproximadamente iguales, la diferencia está en que el primero falla 8 veces más. splitter =random produce peores resultados, por la estrategia aleatoria que sigue para elegir la división. En cuanto a la elección de los atributos, las opciones log2 y sqrt dan porcentajes parecidos no muy buenos. En cambio, max_f eatures =auto produce un valor
36 Capítulo 4. Resolución del desafío alto de aciertos. Tabla 4.16 Resultados del cambio de los parámetros de la regresión del Árbol de Decisión para las características de la tabla del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Criterion squared error 98,26 1,74 24057 427 friedman MSE 98,29 1,71 24065 419 Splitter best 98,19 1,81 24065 442 random 80,15 19,85 19624 4860 Max Features auto 98,28 1,72 24063 421 sqrt 65,77 34,23 16103 8381 log2 62,76 37,24 15365 9119 Con esto, se pude decir que los "mejores parámetros" para las características de la tabla del artículo son: Código 4.5 "Mejores parámetros" del Árbol de Decisión de regresión para las características de la tabla del artículo. >>> regresor_opt = DecisionTreeRegressor( criterion = "friedmas_mse", splitter = "best", max_features = "auto") Una vez realizado el estudio de los parámetros internos, se estudian distintos casos para el Árbol de regresión al trabajar con las características de la tabla del artículo (Tabla 4.17). El modelo predeterminado y el modelo entrenado al aplicar los "mejores parámetros" obtienen resultados muy parecidos, siendo él último el que obtiene un mayor número de aciertos. Para las iteraciones en los que se ha escalado los datos previamente, el árbol predeterminado consigue menos fallos. Entre todos los casos, el de los mejores parámetros sin escalar es el que tiene el porcentaje verdadero superior. Tabla 4.17 Aciertos y fallos de las distintas iteraciones para las características de la tabla del artículo del Árbol de regresión. Porcentaje Contador Verdadero Falso Verdadero Falso Predeterminado 98,20 1,80 24043 441 MaxAbs Scaler 43,90 56,10 10749 13735 Mejores Param Sin Escalar 98,21 1,79 24046 438 Mejores Param Escalado 43,88 56,12 10743 13741 En la Tabla 4.18 se exponen algunas de las características de la regresión. Se ve como el mayor error absoluto se corresponde con el peor de los resultados.
4.1 Árboles de Decisión 37 Tabla 4.18 Parámetros de la regresión de las distintas iteraciones del Árbol de regresión para todas las características de la tabla del artículo. R2Error absoluto medio Error cuadrático medio Predeterminado 0,9996 0,0565 0,0351 MaxAbs Scaler -0,3690 0,2625 0,1475 Mejores Param Sin Escalar 0,9996 0,0561 0,0351 Mejores Param Escalado -0,3709 0,2627 0,1477 En la curva de aprendizaje de la mejor de las opciones anterior (Figura 4.13), se ve como la puntuación del árbol va aumentando con las muestras de entrenamiento pero este cambio se produce en la cuarta cifra significativa del numero decimal, por lo que es un cambio muy pequeño. El análisis de complejidad (Figura 4.32) muestra como el tiempo de ajuste va aumentando de forma notable. Sin embargo, el tiempo de puntuación aumenta de forma casi imperceptible. Además, en la Figura 4.15 se observa como la exactitud aumenta cuando más tiempo de ajuste tiene el modelo. Figura 4.13 Curva de aprendizaje de las características de la tabla del artículo para el Árbol de regresión.
44 Capítulo 4. Resolución del desafío Características del artículo Se comienza con el estudio de los escaladores, tal y como en los árboles clasificadores. Los resultados del Standard Scaler y del MaxAbs Scaler son parecidos, siendo el último ligeramente superior. El MinMax Scaler produce pocos aciertos, pero la red entrenada con los datos sin escalar tiene el mayor número de fallos. Tabla 4.23 Aciertos y fallos de los escaladores de la Red clasificadora para las características del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Sin Escalar 7,72 92,28 1890 22594 Standard Scaler 70,13 29,87 17171 7313 MaxAbs Scaler 78,46 21,54 19211 5273 MinMax Scaler (-10,10) 37,03 62,97 9067 15417 A continuación, se pasa al análisis de los cambios en los resultados que produce modificar algunos de los parámetros internos de la Red clasificadora. En general, cambiar un parámetro interno de la red y dejar los demás de forma predeterminada, no produce buenos resultados. Para los solver, el mejor de los casos es el lbfgs y su porcentaje de aciertos no es alto. Respecto a la función de activación, la función tangente hiperbólica y la logística obtienen el mismo numero de aciertos y fallos. Para la tasa de actualización de los pesos ( learning_rate ), la de decrecimiento de la tasa (invscaling) acierta en más ocasiones. Tabla 4.24 Resultados del cambio de los parámetros de la Red clasificadora para las características del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Solver adam 0 100 0 24484 sgd 0 100 0 24484 lbfgs 0,76 99,24 185 24299 Activation identity 0 100 0 24484 logistic 28,12 71,88 6886 17598 tanh 28,12 71,88 6886 17598 relu 0 100 0 24484 Learning Rate constant 0 100 0 24484 adaptive 0 100 0 24484 invscaling 28,12 71,88 6884 17600 Hidden Layers 500 0 100 0 24484 900 0 100 0 24484 En la combinación de los parámetros al no establecer el solver como "sgd", la tasa de actualización (learning_rate) se descarta.
4.2 Redes Neuronales 45 Código 4.7 "Mejores parámetros" de la Red Neuronal clasificadora para las columnas del artículo. >>> clasificador_opt = MLPClasssifier( solver = "lbfgs", activation = "logistic") Una vez hecho este análisis previo, se entrena, puntúa y compara el clasificador para diversos casos, mostrados en la Tabla 4.24. En ella, se ve como los casos en los que los datos son escalados es cunado se producen los mejores resultados. Además, cuando se entrena el clasificador con la combinación de los mejores parámetros, se obtienen el mayor número de aciertos. La aplicación del análisis de componente principales no obtiene buenas estimaciones, lo que tiene sentido, pues se han reducido el número de característica a las consideradas más relevantes por la ESA. Tabla 4.25 Aciertos y fallos de las distintas iteraciones para las características del artículo de la Red clasificadora. Porcentaje Contador Acierto Fallo Acierto Fallo Predeterminado 20,93 79,07 5124 19360 MaxAbs Scaler 77,22 22,78 18907 5577 Mejores Param Sin Escalar 28,12 71,88 6884 17600 Mejores Param Escalado 79,16 20,84 19381 5103 PCA 3,72 96,28 912 23572 Mejores Param PCA 28,97 71,03 7094 17390 A continuación, se dibujan la curva de aprendizaje y los análisis de complejidad y de actuación de la mejor Red clasificadora anterior. En la Figura 4.19, se ve como la puntuación del clasificador se estabiliza cuando se está en un rango entre 0.8 y 0.82, lo que tiene sentido pues el porcentaje de aciertos es más o menos de esos valores. En el análisis de complejidad (Figura 4.20), se observa como el tiempo de ajuste del clasificador aumenta con el numero de muestras. Además, este tiempo sobrepasa la marca de los dos minutos. El tiempo de puntuación varía dependiendo del número de muestras, de forma más notable que en otras ocasiones. Respecto a la actuación del clasificador (Figura 4.21), la exactitud frente al tiempo de ajuste no varía demasiado. Pese al aumentar el tiempo de ajuste del entrenamiento, la exactitud varía en en un rango de +/- 0,001.
46 Capítulo 4. Resolución del desafío Figura 4.19 Curva de aprendizaje de las características del artículo para la Red clasificadora.
4.2 Redes Neuronales 47 (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.20 Análisis de complejidad de la Red clasificadora para las columnas del artículo.
48 Capítulo 4. Resolución del desafío Figura 4.21 Actuación de la Red clasificadora para las características del artículo. Características de la tabla del artículo Al aplicar los distintos escaladores se obtienen los aciertos y fallos mostrados en Tabla 4.26. El mayor número de fallos viene dado por los datos sin escalar. Entre el proceso estandarización y el de escalar en un rango no existe una diferencia muy grande en el número de aciertos. El MaxAbs Scaler obtiene el mayor porcentaje de resultados verdaderos, debido a la forma de escalar cada característica (columna) de forma independiente. Tabla 4.26 Aciertos y fallos de los escaladores de la Red clasificadora para las características de la del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Sin Escalar 18,04 81,96 4417 20067 StandardScaler 36,30 63,70 8888 15596 MaxAbs Scaler 84,25 15,75 20627 3857 MinMax Scaler (-10,10) 30,22 69,78 7399 17085 Los cambios en los parámetros de la Red clasificadora al entrenarla con las características de la tabla del artículo no obtienen buenas estimaciones a la hora de validar. Los solver adam y sgd tienen 0 aciertos. Tanto la función hiperbólica como la sigmoide aciertan casi el mismo número de veces. La tasa de actualización invscaling es la que mejores resultados produce.
4.2 Redes Neuronales 49 Tabla 4.27 Resultados del cambio de los parámetros de la Red clasificadora para las características de la tabla del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Solver adam 0 100 0 24484 sgd 0 100 0 24484 lbfgs 3,09 96,91 756 23728 Activation identity 0 100 0 24484 logistic 28,10 71,90 6881 17603 tanh 28,12 71,88 6886 17598 relu 0 100 0 24484 Learning Rate constant 0 100 0 24484 adaptive 0 100 0 24484 invscaling 28,12 71,88 6884 17600 Hidden Layers 500 0 100 0 24484 900 0 100 0 24484 Así, la combinación de los mejores parámetros de la Red clasificadora para entrenarla con las características de la tabla del artículo, donde se ha descartado la tasa de actualización por la misma razón que en el caso anterior, es: Código 4.8 "Mejores parámetros" de la Red Neuronal clasificadora para las columnas de la tabla del artículo. >>> clasificador_opt = MLPClasssifier( solver = "lbfgs", activation = "tanh") Una vez realizado estos análisis previos, se pasa al estudio de distintos casos, cambiando algún parámetro de la red y escalando (Tabla 4.28). Las mejores predicciones se obtienen al escalar los datos y entrenar la red con los parámetros predeterminados. Cuando se trabaja con los datos originales, no se tiene un alto número de aciertos, lo que se debe a que las Redes Neuronales de scikit no están preparadas para ello. El análisis de componentes principales con los datos sin escalar, consigue más fallos que la Red clasificadora predeterminada. En cambio, si se entrena la red con la combinación de los mejores parámetros, los aciertos aumentan de forma significativa. Tabla 4.28 Aciertos y fallos de las distintas iteraciones de la Red clasificadora para las características de la tabla del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Predeterminado 7,34 92,66 1797 22687 MaxAbs Scaler 83,92 16,08 20548 3936 Mejores Param Sin Escalar 28,08 71,92 6875 17609 Mejores Param Escalado 78,31 21,69 19173 5311 PCA 1,87 98,13 457 24027 Mejores Param PCA 28,97 71,03 7094 17390
50 Capítulo 4. Resolución del desafío Observando la curva de aprendizaje (Figura 4.22), la puntuación del clasificador va aumentando conforme aumenta el número de muestras y seguiría creciendo si se entrenará con más muestras. El análisis de complejidad (Figura 4.23) muestra el tiempo de ajuste frente al número de muestras de entrenamiento. Este tiempo va aumentando de forma muy considerable, alcanzando los ochos minutos para el mayor número de muestras. En cambio el tiempo de puntuación se estabiliza alcanzado el segundo subconjunto de validación en el entrenamiento. La curva de actuación del clasificador (Figura 4.24) muestra como la exactitud de éste va aumentando con el tiempo de ajuste. Figura 4.22 Curva de aprendizaje de las características de la tabla del artículo para la Red clasificadora.
4.2 Redes Neuronales 51 (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.23 Análisis de complejidad de la Red clasificadora para las características de la tabla del artículo.
52 Capítulo 4. Resolución del desafío Figura 4.24 Actuación de la Red clasificadora para las características de la tabla del artículo. Todas las características Como para todos los casos estudiados, se empieza analizando las estimaciones de los preprocesadores escaladores. Se ve como afectan el hecho de escalar los datos a las redes (Tabla 4.29). Tabla 4.29 Aciertos y fallos de los escaladores de la Red clasificadora para todas las características. Porcentaje Contador Acierto Fallo Acierto Fallo Sin Escalar 7,43 92,57 1820 22664 StandardScaler 73,07 26,93 17890 6594 MaxAbs Scaler 72,06 27,94 17644 6840 MinMax Scaler (-10,10) 31,41 68,59 7690 16794 A continuación, se completa el estudio de los parámetros internos de la red (Tabla 4.30). En este caso, el solver adam tiene el mayor número de aciertos, tal y como explica la librería scikit-learn, al tratarse de un conjunto de datos muy amplio. Para las funciones de activación, existe una mayor diferencia en resultados que para los casos anteriores. La tasa de actualización constantes y "adaptive" solo fallan y el añadir capas intermedias a la red no influye.
4.2 Redes Neuronales 53 Tabla 4.30 Resultados del cambio de los parámetros de la Red clasificadora para todas las características. Porcentaje Contador Acierto Fallo Acierto Fallo Solver adam 10,44 89,56 2556 21928 sgd 33,59 66,41 8224 16260 lbfgs 1,02 98,98 250 24234 Activation identity 0 100 0 24484 logistic 28,82 71,18 7057 17427 tanh 29,28 70,72 7168 17316 relu 0,02 99,98 6 24478 Learning Rate constant 0 100 0 24484 adaptive 0 100 0 24484 invscaling 28,64 71,36 7011 17473 Hidden Layers 500 0 100 0 24484 900 0 100 0 24484 Por tanto, la combinación de los mejores parámetros cuando se entrena con todas las columnas es: Código 4.9 "Mejores parámetros" de la Red Neuronal clasificadora para todas las columnas. >>> clasificador_opt = MLPClasssifier( solver = "adam", activation = "tanh") Como se está analizando la red cuando se le da de entrada todas las características, se van a considerar dos iteraciones más que en los apartados anteriores: el análisis de las componentes principales y la selección de las características con mayor peso (Tabla 4.31). Los casos en los que se ha escalado los datos son los que dan el mayor número de aciertos. La red predeterminada y la red habiendo aplicado el análisis de componentes principales dan las peores estimaciones a la hora de validar el modelo. La aplicación de la red con la combinación de los mejores parámetros mejoran los aciertos frente a las redes predeterminadas. El porcentaje más alto de aciertos se dan para la red entrenada habiendo escalado los datos con el Standard Scaler. Tabla 4.31 Aciertos y fallos de las distintas iteraciones de la Red clasificadora para todas las características. Porcentaje Contador Acierto Fallo Acierto Fallo Predeterminado 7,33 92,67 1795 22689 Standard Scaler 73,72 26,28 18049 6435 Mejores Param Sin Escalar 27,46 72,54 6724 17760 Mejores Param Escalado 70,34 29,66 17221 7263 PCA 3,33 96,67 815 23669 Mejores Param PCA 30,13 69,87 7378 17106 Best K feature (k=15) 4,84 4,84 1185 23299
60 Capítulo 4. Resolución del desafío (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.29 Análisis de complejidad de la Red de regresión para las columnas del artículo.
4.2 Redes Neuronales 61 Figura 4.30 Actuación de la Red de regresión para las características del artículo. Características de la tabla del artículo Como para los casos anteriores, se comienza aplicando escaladores para ver como afectan en el número de aciertos y fallos. El MinMax Scaler consigue muy pocos aciertos y cuando no se escala, la red falla siempre. El MaxAbs Scalrt obtiene un buen porcentaje verdadero de lo estimado respecto a lo real. Tabla 4.36 Aciertos y fallos de los escaladores de la Red de regresión para las características de la tabla del artículo. Porcentaje Contador Aciertos Fallos Acierto Fallo Sin Escalar 0 100 0 24484 Standard Scaler 6,33 93,67 15450 22934 MaxAbs Scaler 20,32 79,68 4974 19510 MinMax Scaler(-10,10) 0,93 99,07 229 24255 Hecho esto, se pasa al análisis de los distintos parámetros internos del MLPRegressor (Tabla 4.33). El método de resolución que mejor porcentaje verdadero tiene es adam . La función de activación con peores resultados es la logística, mientras que la función tangente hiperbólica da el menor número de fallos. Para la tasa de actualización de los pesos, la actualización constante es la que más aciertos obtiene. Para el número de capas intermedias, un cambio de valor al que no es el predeterminado no proporciona buenos resultados.
62 Capítulo 4. Resolución del desafío Tabla 4.37 Resultados del cambio de los parámetros de la regresión de la Red Neuronal para las características de la tabla del artículo. Porcentaje Contador Acierto Fallo Acierto Fallo Solver adam 7,041333116 92,95866688 1724 22760 sgd 1,008822088 98,99117791 247 24237 lbfgs 0,0245058 99,9754942 6 24478 Activation identity 0,065348799 99,9346512 0 24468 logistic 0 100 0 24484 tanh 1,127266786 98,87273321 276 24208 relu 0,906714589 99,09328541 222 24262 Learning Rate constant 5,905897729 94,09410227 1446 23038 Adaptive 4,876654141 95,12334586 1194 23290 invscaling 0 100 0 24484 Hidden Layers 500 0 100 0 24484 900 0,004 99,996 1 24483 Código 4.11 "Mejores parámetros" de la red regresión para las características del articulo. >>> regresor_opt = MLPRegressor( solver = "adam", activation = "tanh") Ya definidos la combinación de los parámetros internos, se pasa al estudio de distintas iteraciones (Tabla 4.38). Cuando se entrena la red con los datos originales sin escalar, al validar el modelo se obtienen muchos fallos, es indiferente si se utilizan la combinación de los parámetros o si se aplica algún tipo de pre-descomposición matricial. Al escalar los datos, se obtienen buenos resultados. La red predeterminada escalada consigue un porcentaje verdadero bastante alto. Pero, el porcentaje verdadero más cercano a 100% es el de la Red de regresión cuando se entrena con los datos escaldos y con la combinación de los mejores parámetros. Tabla 4.38 Aciertos y fallos de las distintas iteraciones para las características de la tabla del artículo de la Red de regresión. Porcentaje Contador Acierto Fallo Acierto Fallo Predeterminado 0,00 100,00 0 24484 MaxAbs Scaler 20,32 79,68 4974 19510 Mejores Param Sin Escalar 1,12 98,88 275 24209 Mejores Param Escalado 16,20 83,80 3966 10518 PCA 0 100 0 24484 Mejores Param PCA 2,26 97,74 554 23930 Los atributos de la regresión (Tabla 4.39) muestran como las redes que obtienen malos resultados son las que mayor valor de error tienen y tiene valores de R2 que no entran en el rango válido de éste. En el caso del Mejores Param Escalado, pese a tener un valor de R2 no muy cercano a 1, tiene un error pequeño.
4.2 Redes Neuronales 63 Tabla 4.39 Parámetros de la regresión de las distintas iteraciones de la Red Neuronal regresión para las características de la tabla del artículo. R2Error absoluto medio Error cuadrático medio Predeterminado -6E+78 2,62E+39 5,77E+80 MaxAbs Scaler 0,4832 0,1797 0,0557 Mejores Param Sin Escalar -0,0695 9,5298 103,6988 Mejores Param Escalado 0,2764 0,2215 0,0780 PCA -4,6E+65 7,28E+32 4,46E+67 Mejores Param PCA -0,0821 9,5506 104,9173 Ahora, se analizan las gráficas. La puntuación recibida por la red en el mejor de los casos anteriores, no es demasiado alta, lo cual corresponde al bajo valor del R2 (Figura 4.31). Observando el análisis de complejidad (Figura 4.32), el tiempo de ajuste crece bastante con el número de muestras, llega a superar los tres minutos, mientras que el tiempo de puntuación crece lentamente. La actuación del regresor mostrada en la Figura 4.33 aumenta según lo hace el tiempo de ajuste, como debe ser pues la red tiene más tiempo para aprender. Figura 4.31 Curva de aprendizaje de las características de la tabla del artículo para la Red de regresión.
64 Capítulo 4. Resolución del desafío (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.32 Análisis de complejidad de la Red de regresión para las columnas de la tabla del artículo.
4.2 Redes Neuronales 65 Figura 4.33 Actuación de la Red de regresión para las características de la tabla del artículo. Todas las características Se aplican los escaladores obteniendo los resultados mostrados en la Tabla 4.40. El mayor porcentaje de aciertos se tiene para el Standard Scaler, por lo que la estandarización para la red regresora cuando se trabaja con todas las características funciona bien. Los otros dos escaladores dan muchos fallos. Tabla 4.40 Aciertos y fallos de los escaladores de la Red de regresión para todas las características del artículo. Porcentaje Contador Aciertos Fallos Acierto Fallo Sin Escalar 0 100 0 24484 Standard Scaler 6,83 93,17 1672 22812 MaxAbs Scaler 0,64 99,36 158 24326 MinMax Scaler(-10,10) 3,10 96,90 72 24412 A continuación, se analizan los efectos de los cambios en los parámetros internos de la Red de regresión (Tabla 4.41). En general, ninguno de los cambios individuales dejando los demás parámetros como vienen predeterminados por la librería no genera buenos resultados. Los porcentajes más altos de verdadero solo aciertan unas cientas de veces, lo que es muy poco como se ve al ser menor del 10% en todas las iteraciones. La combinación de las mejores parámetros internos son los mostrados en Código 4.12.
66 Capítulo 4. Resolución del desafío Tabla 4.41 Resultados del cambio de los parámetros de la regresión de la Red Neuronal para todas las características. Porcentaje Contador Acierto Fallo Acierto Fallo Solver adam 0,42 99,58 103 24381 sgd 0,89 99,11 218 24266 lbfgs 0 100 0 24484 Activation identity 1,193 98,807 292 24192 logistic 0 100 0 24484 tanh 1,12 98,88 273 24211 relu 3,47 96,53 850 23634 Learning Rate constant 0 100 0 24484 adaptive 1,75 98,25 428 24056 invscaling 0 100 0 24484 Hidden Layers 500 0 100 0 24484 900 0 100 0 24484 Código 4.12 "Mejores parámetros" de la red regresión para todas las características. >>> regresor_opt = MLPRegressor( solver = "sgd", activation = "relu", learning_rate = "adaptive") Una vez realizado el análisis previo, se estudia los resultados de entrenamiento de la Red de regresión para distintos casos. Cuando no se escalan los datos, la Red de regresión al trabajar con todas las características solo falla. Cuando los datos se escalan, se obtienen algunas predicciones iguales a las verdaderas, pero no se supera el 10% de aciertos. Ni el análisis de componentes principales ni la selección de características por el comando SelectK- Best, las cuales son: relative_velocity_n , mahalanobis_distance , t_position_covariance_det , c_position_covariance_det,t_sigma_r,c_sigma_r,t_sigma_t,c_sigma_t,t_sigma_n, c_sigma_n,t_sigma_rdot,c_sigma_rdot,t_sigma_tdot,c_sigma_tdot yt_sigma_ndot. Tabla 4.42 Resultados del cambio de los parámetros de la Red de regresión para todas las características. Porcentaje Contador Aciertos Fallos Acierto Fallo Predeterminado 0 100 0 24484 Standard Scaler 6,83 93,17 1672 22812 Mejores Param Escalado 4,96 95,04 1215 23269 PCA 0 100 0 24484 Mejores Param PCA 0 100 0 24484 Best K feature 0 100 0 24484 En la tabla a continuación, se ve como las iteraciones sin ningún acierto tienen un valor de R2 que se salen del rango normal de éste. Además, los errores de esto son muy grandes. En
4.2 Redes Neuronales 67 cambio, los valores de estos parámetros para Standard Sclaer y los mejores parámetros con los datos escalados son aceptables. Tabla 4.43 Parámetros de la regresión de las distintas iteraciones de la Red Neuronal regresión para todas las características. R2Error absoluto medio Error cuadrático medio Predeterminado -2,42E+95 2,35E+98 2,49E+56 MaxAbs Scaler 0,6089 0,4700 0,3911 Mejores Param Escalado 0,4966 0,5780 0,5034 PCA -8,66E+100 8,39E+87 3,65E+58 Mejores Param PCA -0,3013 0.9248923319133057 1,3013 Best K feature -6,66E+98 6,45E+99 9,31E+55 En la curva de aprendizaje (Figura 4.34) se ve la baja puntuación que tiene la Red de regresión cuando los parámetros están escalados. Se ve una tendencia creciente pero con menor pendiente cuando mayores son el número de muestras de entrenamiento. El tiempo de ajuste ((a) Figura 4.35) es bastante grande, ya que al trabajar con muchas características, la red necesita más tiempo para adaptarse. El tiempo de puntuación ((b) Figura 4.35)es estable frente al aumento de muestras y tiene un valor bajo. La actuación del regresor (Figura 4.36) va mejorando con el tiempo de ajuste. Figura 4.34 Curva de aprendizaje de todas las características para la Red de regresión.
68 Capítulo 4. Resolución del desafío (a) Tiempo de ajuste frente al número de muestras (b) Tiempo de puntuación frente a al número de muestras Figura 4.35 Análisis de complejidad de la Red Neuronal de regresión para todas las características.
4.2 Redes Neuronales 69 Figura 4.36 Actuación de la Red Neuronal de regresión para todas las características. Comparación de las Redes Neuronales de regresión En general, las redes de regresión obtienen un número aceptable de aciertos si se entrenan habiendo escalado de forma previa los datos. Ejecutando la red de la forma predeterminada no se ven aciertos. La combinación de los mejores parámetros al combinarla con los datos escalados, consiguen un porcentaje de aciertos bastante alto. El análisis de componentes principales no da buenos resultados. En cuanto al tiempo de ajuste, éste crece de forma considerable cuantas mayor sea el número de muestras (filas) y características (columnas) con las que se entrena. Sin embargo, el tiempo de puntuación se mantiene estable con el número de muestras y aumenta poco si se añaden más características.
76 Capítulo 5. Análisis de resultados (a) Árbol clasificador (b) Árbol de regresión Figura 5.10 Comparación de la actitud de los Árboles de Decisión para las características del artículo. (a) Árbol clasificador (b) Árbol de regresión Figura 5.11 Comparación de la actitud de los Árboles de Decisión para las características de la tabla del artículo. (a) Árbol clasificador (b) Árbol de regresión Figura 5.12 Comparación de la actitud de los Árboles de Decisión para todas las características.
5.2 Redes Neuronales 77 5.2 Redes Neuronales Las Redes Neuronales son algoritmos de aprendizaje supervisado que pretenden imitar el cerebro humano. A grandes rasgos, las Redes Neuronales predeterminadas no consiguen buenos resultados. Esto se debe a que las redes aprendizaje supervisado de scikit-learn no están preparadas para trabajar con un conjunto de datos tan amplio. De hecho, analizando las predicciones que realiza cada modelo, se ve que la red aprende una clases (para el clasificador) o números muy grandes (para el regresor) por el hecho de que las redes no están preparadas para trabajar con tantos datos.Por ello, al escalar los datos se mejoran considerablemente los resultados. Las Redes Neuronales clasificadoras al ser escaladas pueden llegar a tener porcentajes de aciertos aceptables. Las mejores opciones son la estandarización y el MaxAbs Scaler. El primero centra los resultados y hace que la red se ajuste mejor a los datos. El segundo escala las columnas de forma independiente. El mayor número de estimaciones verdaderas se dan cuando los datos están escalados y, en ocasiones, cuando los parámetros internos de la Red clasificadora son la combinación definida anteriormente. El entrenamiento con los las columnas de la tabla obtiene las mejores predicciones. Las Redes Neuronales de regresión no llegan a tener un número alto de aciertos. Pese a que observando las gráficas se podría deducir que se van a obtener unas estimaciones aceptables, a la hora de validar el modelo esa exactitud que presentan los regresores no es así. Al escalar se consigue mejorar estas predicciones, pero los fallos siempre superan el 60% de fallos. A ambos tipos de Redes se les aplica un preprocesamiento de análisis de componentes principales. Al emplearlo aumenta el número de aciertos frente a las Redes predefinidas, sobretodo si se modifican los parámetros a la combinación definidas en cada caso. En el caso del entrenamiento con todas las características de los datos, se aplica, también, el preprocesador SelectKBest. Los resultados para la Red clasificadora se ven empeoradas frente a la Red predeterminada, pese a que muchas de las características seleccionadas coinciden con las del artículo, y con los de la Red de regresión pasa lo mismo. La puntuación de las Redes clasificadoras (Figura 5.13, Figura 5.14 y Figura 5.15), en general, es mejor que las de las de regresión, ya que el tiempo de ajuste es mayor para las primeras. En los análisis de complejidad (Figura 5.16, Figura 5.17, Figura 5.18, Figura 5.19,Figura 5.20 y Figura 5.21), se ve la diferencia entre esos tiempos de ajuste y como los tiempos de puntuación son prácticamente los mismos. Comparando las actuaciones de las Redes (Figura 5.22, Figura 5.23 y Figura 5.24), se ve que las clasificadores tienen mayor exactitud en los entrenamientos que las regresoras, lo que se ve reflejado en las predicciones.
78 Capítulo 5. Análisis de resultados (a) Red clasificadora (b) Red de regresión Figura 5.13 Curva de aprendizaje de las Redes Neuronales para las características del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.14 Curva de aprendizaje de las Redes Neuronales para las características de la tabla del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.15 Curva de aprendizaje de las Redes Neuronales para todas las características.
5.2 Redes Neuronales 79 (a) Red clasificadora (b) Red de regresión Figura 5.16 Comparación de los tiempos de ajuste frente al número de las muestras de las Redes Neuronales para las características del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.17 Comparación de los tiempos de ajuste frente al número de las muestras de las Redes Neuronales para las características de la tabla del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.18 Comparación de los tiempos de ajuste frente al número de las muestras de las Redes Neuronales para todas las características.
80 Capítulo 5. Análisis de resultados (a) Red clasificadora (b) Red de regresión Figura 5.19 Comparación de los tiempos de puntuación frente al número de las muestras de las Redes Neuronales para las características del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.20 Comparación de los tiempos de puntuación frente al número de las muestras de las Redes Neuronales para las características de la tabla del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.21 Comparación de los tiempos de puntuación frente al número de las muestras de las Redes Neuronales para todas las características.
5.2 Redes Neuronales 81 (a) Red clasificadora (b) Red de regresión Figura 5.22 Comparación de la actitud de las Redes Neuronales para las características del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.23 Comparación de la actitud de las Redes Neuronales para las características de la tabla del artículo. (a) Red clasificadora (b) Red de regresión Figura 5.24 Comparación de la actitud de las Redes Neuronales para todas las características.
82 Capítulo 5. Análisis de resultados 5.3 Comparación de los métodos de aprendizaje supervisado Los Árboles de Decisión obtienen mejores resultados que las Redes Neuronales, porque éstas en la librería scikit no están preparadas para trabajar con un amplio conjunto de datos. Como se ha explicado antes, la descomposición de los datos usando el análisis de componentes principales aplicados en la red no obtiene porcentajes verdaderos mayores del 50%. Los resultados del empleo de esto en los Árboles no se muestran pues el porcentaje de fallo era aún mayor que en el caso de las redes. Para los dos métodos, cuando se trabaja con todas las características de los datos, se ha empleado un método de selección (SelectKBest), el cual guarda las k características con los mayores pesos. Pese a que la mayoría de las columnas elegidas por el comando coinciden con las del artículo y las de la tabla, pero cuando se aplican no se consiguen buenas predicciones. Con los clasificadores de ambos métodos de aprendizaje, se obtienen resultados muy buenos con el entrenamiento con las características del artículo o de la tabla. Hay que recordar que el tiempo hasta la aproximación más cercana ( time_to_tca ) del conjunto de datos de validación del modelo ( tets_data.csv ) no son menores de dos días, que es cuando se empiezan a barajar las posibles maniobras para evitar la colisión, por lo que algunos CDMs categorizados como "no riesgo" podían cambiar a "riesgo". Pero como primera estimación, considerar solo algunas características de los CDMs es una buena solución. El Árbol de regresión estima muy bien el riesgo. Sin embargo, las Redes de regresión no sirven para realizar predicciones de riesgo.
6 Conclusión y líneas futuras E vitar la basura espacial es el día a día para las misiones espaciales orbitando alrededor de la Tierra. La Agencia Europea Espacial monitoriza todos estos objetos a través de los CDMs (Conjuction Data Message), mensajes sobre la información de un posible evento de colisión. Entre la información aportada por estos mensajes, está el tiempo hasta la posible colisión. Cuando éste es igual a dos días o menor, se comienzan a barajar estrategias para evitar las colisiones. A partir de esto, la ESA propone el desafío de crear un modelo capaz de estimar el riesgo de colisión a partir de los CDMs. Para ello, la Agencia proporciona dos conjuntos de datos: uno de entrenamiento y otro de validación, el cual contiene la columna de riesgo para poder comprobar la validez del modelo. Además, en un artículo [ 5 ] la ESA analiza los CDMs y determina las características más importantes en la estimación. Para poder completar el desafío se utiliza técnicas de Machine Learning, un tipo de Inteligencia Artificial. En concreto, se hace uso de métodos de aprendizaje supervisado, a partir de un set de entrenamiento la máquina es capaz de aprender y adaptarse a la solución. Dos tipos de ML supervisado son Árboles de decisión y las Redes Neuronales. Los Árboles de decisión son un modelo con estructura jerárquica compuesta por nodos y ramas. Las Redes Neuronales intentan emular el cerebro humano. Están compuestas de neuronas, las cuales cuando van aprendiendo van haciendo más fuertes o más débiles las conexiones entre las características. Los modelos se realizan en lenguaje de programación Python y se utilizan librerías externas, como Pandas, Numpy o scikit-learn, librería para la IA. Tanto los Árboles de decisión como las Redes Neuronales pueden ser de clasificación o de regresión. Además, de estos dos métodos, existen preprocesadores como escaladores, descomposiciones de matrices o seleccionadores de características. En concreto, uno de los preprocesadores de descomposición de matrices es el Análisis de Componentes Principales (PCA) (proyección de los datos según la cual los datos queden mejor representados en términos de mínimos cuadrados). La aplicación del PCA en los Árboles no tiene ningún efecto positivo, simplemente hace que los Árboles solo fallen. En cambio, aumentan el número de aciertos para las redes. En general, las predicciones de riesgo de los Árboles de Decisión se parecen más a las estimaciones de riesgo verdaderas cuando los datos son los originales. Sin embargo, para las redes ocurre lo contrario. Se debe de preprocesar de alguna manera para obtener unas estimaciones aceptables. Las estimaciones de riesgo de la Red clasificadora son mejores que las de la red de regresión, siendo éstas no aceptables en ningún caso. En los Árboles de decisión ocurre lo contrario, aunque las predicciones del clasificador y regresor son muy buenas. Además, si se categorizan las predicciones entre "Riesgo" o "No Riesgo" el número de aciertos aumenta considerablemente, pero no se haría una validación correcta de los modelos de aprensizaje. 83
84 Capítulo 6. Conclusión y líneas futuras En el caso de entrenamiento con todas las características de los CDMS, se preprocesa los datos con SelectKBest, el cual se queda con las k columnas con mayores pesos. Las características que determina para todos los métodos son buenas, en muchas ocasiones coinciden con las mencionadas por la ESA. Ya que con el comando SelectKBest no se consiguen buenos resultados, se podría probar con otros métodos de selección de características como SelectPercentile, donde se selecciona aquellas con percentil más alto, o VarianceThreshold, el cual elimina funciones de baja variación. Más adelante, como las Redes Neuronales de scikit no están preparadas para trabajr con datos tan amplíos, se puede probar otra librería de Python más centrada en Redes Neuronales como por ejemplo Keras. Además, dado que con los Árboles de decisión funcionan, se puede llegar a optimizar e intentar visualizar los Árboles utilizando export_graphviz.
Apéndice A Mecánica Orbital Apéndice para explicar términos relacionados con la Mecánica Órbital o con el espacio A.1 Época La época es el instante de tiempo que se usa como referencia para todos los datos tomados. A.2 Órbitas Una órbita de un cuerpo está determinada por un conjunto mínimo de datos, denominados los elementos orbitales, en una época. Los elementos orbitales se pueden ver en la Figura A.1 y son los que siguen: •Semieje Mayor (a): semieje mayor de la cónica que define la órbita. • Excentricidad (e): Mide el grado de desviación con respecto a una circunferencia de la cónica de la órbita. • Ascensión Recta del Nodo Ascendente (RAAN, Ω ): ángulo entre el punto de Aries (punto de la eclíptica a partir del cual el Sol pasa del hemisferio sur celeste al hemisferio norte) y la línea de nodos (intersección entre el plano orbital y el de referencia), en sentido del nodo ascendente. Se mide en sentido contrario a las agujas del reloj. • Argumento de periapsis ( w ): ángulo entre la linea de nodos y el vector excentricidad, medido en dirección del movimiento y en el plano de la órbita. • Inclinación (i): ángulo entre l plano de referencia y el plano orbital, con el sentido indicado la línea de nodos. •Ley horaria (θ): indica la posición de un cuerpo, en una época en concreto. 85
Índice de Figuras 2.1 Estructura jerárquica de un Árbol de Decisión 6 2.2 Estructura interna de las Redes Neuronales 7 3.1 Ejemplo de una capa intermedia en una Red MLP 13 4.1 Curva de aprendizaje de las características del artículo para el Árbol clasificador 20 4.2 Análisis de complejidad del Árbol clasificador para las columnas del artículo 21 4.3 Actuación del Árbol clasificador para las características del artículo 22 4.4 Curva de aprendizaje de las características de la tabla del artículo para el Árbol clasificador 24 4.5 Análisis de complejidad del Árbol clasificador para las características de la tabla del artículo 25 4.6 Actuación del Árbol clasificador para las características de la tabla del artículo 26 4.7 Curva de aprendizaje de todas las características para el Árbol clasificador 28 4.8 Análisis de complejidad del Árbol clasificador para todas las características 29 4.9 Actuación del Árbol clasificador para todas las características 30 4.10 Curva de aprendizaje de las características del artículo para el Árbol de regresión 33 4.11 Análisis de complejidad del Árbol de regresión para las columnas del artículo 34 4.12 Actuación del Árbol de regresión para las características del artículo 35 4.13 Curva de aprendizaje de las características de la tabla del artículo para el Árbol de regresión 37 4.14 Análisis de complejidad del Árbol de regresión para las columnas de la tabla del artículo 38 4.15 Actuación del Árbol de regresión para las características de la tabla del artículo 39 4.16 Curva de aprendizaje de todas las características para el Árbol de regresión 41 4.17 Análisis de complejidad del Árbol de regresión para todas las características 42 4.18 Actuación del Árbol de regresión para todas las características 43 4.19 Curva de aprendizaje de las características del artículo para la Red clasificadora 46 4.20 Análisis de complejidad de la Red clasificadora para las columnas del artículo 47 4.21 Actuación de la Red clasificadora para las características del artículo 48 4.22 Curva de aprendizaje de las características de la tabla del artículo para la Red clasificadora 50 4.23 Análisis de complejidad de la Red clasificadora para las características de la tabla del artículo 51 4.24 Actuación de la Red clasificadora para las características de la tabla del artículo 52 4.25 Curva de aprendizaje de todas las características para la Red clasificadora 54 4.26 Análisis de complejidad de la Red clasificadora para todas las características 55 4.27 Actuación de la Red clasificadora para todas las características 56 4.28 Curva de aprendizaje de las características del artículo para la Red de regresión 59 4.29 Análisis de complejidad de la Red de regresión para las columnas del artículo 60 93
94 Índice de Figuras 4.30 Actuación de la Red de regresión para las características del artículo 61 4.31 Curva de aprendizaje de las características de la tabla del artículo para la Red de regresión 63 4.32 Análisis de complejidad de la Red de regresión para las columnas de la tabla del artículo 64 4.33 Actuación de la Red de regresión para las características de la tabla del artículo 65 4.34 Curva de aprendizaje de todas las características para la Red de regresión 67 4.35 Análisis de complejidad de la Red Neuronal de regresión para todas las características 68 4.36 Actuación de la Red Neuronal de regresión para todas las características 69 5.1 Curva de aprendizaje de los Árboles de Decisión para las características del artículo 72 5.2 Curva de aprendizaje de los Árboles de Decisión para las características de la tabla del artículo 72 5.3 Curva de aprendizaje de los Árboles de Decisión para todas las características 72 5.4 Comparación de los tiempos de ajuste frente al número de las muestras de los Árboles de Decisión para las características del artículo 74 5.5 Comparación de los tiempos de ajuste frente al número de las muestras de los Árboles de Decisión para las características de la tabla del artículo 74 5.6 Comparación de los tiempos de ajuste frente al número de las muestras de los Árboles de Decisión para todas las características 74 5.7 Comparación de los tiempos de puntuación frente al número de las muestras de los Árboles de Decisión para las características del artículo 75 5.8 Comparación de los tiempos de puntuación frente al número de las muestras de los Árboles de Decisión para las características de la tabla del artículo 75 5.9 Comparación de los tiempos de puntuación frente al número de las muestras de los Árboles de Decisión para todas las características 75 5.10 Comparación de la actitud de los Árboles de Decisión para las características del artículo 76 5.11 Comparación de la actitud de los Árboles de Decisión para las características de la tabla del artículo 76 5.12 Comparación de la actitud de los Árboles de Decisión para todas las características 76 5.13 Curva de aprendizaje de las Redes Neuronales para las características del artículo 78 5.14 Curva de aprendizaje de las Redes Neuronales para las características de la tabla del artículo 78 5.15 Curva de aprendizaje de las Redes Neuronales para todas las características 78 5.16 Comparación de los tiempos de ajuste frente al número de las muestras de las Redes Neuronales para las características del artículo 79 5.17 Comparación de los tiempos de ajuste frente al número de las muestras de las Redes Neuronales para las características de la tabla del artículo 79 5.18 Comparación de los tiempos de ajuste frente al número de las muestras de las Redes Neuronales para todas las características 79 5.19 Comparación de los tiempos de puntuación frente al número de las muestras de las Redes Neuronales para las características del artículo 80 5.20 Comparación de los tiempos de puntuación frente al número de las muestras de las Redes Neuronales para las características de la tabla del artículo 80 5.21 Comparación de los tiempos de puntuación frente al número de las muestras de las Redes Neuronales para todas las características 80 5.22 Comparación de la actitud de las Redes Neuronales para las características del artículo 81 5.23 Comparación de la actitud de las Redes Neuronales para las características de la tabla del artículo 81 5.24 Comparación de la actitud de las Redes Neuronales para todas las características 81 A.1 Elementos orbitales 86
Índice de Figuras 95 A.2 Sistema topocéntrico 86
Índice de Tablas 4.1 Clasificación en números enteros de la columna de riesgo 18 4.2 Aciertos y fallos de los escaladores para las características del artículo 18 4.3 Resultados del cambio de los parámetros del clasificador del Árbol de Decisión para las características del artículo 19 4.4 Aciertos y fallos de las distintas iteraciones para las características del artículo del Árbol clasificador 19 4.5 Aciertos y fallos de los escaladores para las características de la tabla del artículo 22 4.6 Resultados del cambio de los parámetros del clasificador del Árbol de Decisión para las características de la tabla del artículo 23 4.7 Aciertos y fallos de las distintas iteraciones del Árbol clasificador para las características de la tabla del artículo 23 4.8 Aciertos y fallos de los escaladores para las todas las características 26 4.9 Resultados del cambio de los parámetros del clasificador del Árbol de Decisión para todas las características 27 4.10 Aciertos y fallos de las distintas iteraciones del Árbol clasificador para todas las características 27 4.11 Aciertos y fallos de los escaladores para las características del artículo del Árbol de regresión 31 4.12 Resultados del cambio de los parámetros de la regresión del Árbol de Decisión para las características del artículo 31 4.13 Aciertos y fallos de las distintas iteraciones para las características del artículo del Árbol de regresión 32 4.14 Parámetros de la regresión de las distintas iteraciones del Árbol de regresión para las características del artículo 32 4.15 Aciertos y fallos de los escaladores del Árbol de regresión para todas las características de la tabla del artículo 35 4.16 Resultados del cambio de los parámetros de la regresión del Árbol de Decisión para las características de la tabla del artículo 36 4.17 Aciertos y fallos de las distintas iteraciones para las características de la tabla del artículo del Árbol de regresión 36 4.18 Parámetros de la regresión de las distintas iteraciones del Árbol de regresión para todas las características de la tabla del artículo 37 4.19 Aciertos y fallos de los escaladores para todas las características del Árbol de regresión 39 4.20 Resultados del cambio de los parámetros de la regresión del Árbol de Decisión para todas las características 40 97
98 Índice de Tablas 4.21 Aciertos y fallos de las distintas iteraciones del Árbol de regresión para todas las características 40 4.22 Parámetros de la regresión de las distintas iteraciones del Árbol de regresión para todas las características 41 4.23 Aciertos y fallos de los escaladores de la Red clasificadora para las características del artículo 44 4.24 Resultados del cambio de los parámetros de la Red clasificadora para las características del artículo 44 4.25 Aciertos y fallos de las distintas iteraciones para las características del artículo de la Red clasificadora 45 4.26 Aciertos y fallos de los escaladores de la Red clasificadora para las características de la del artículo 48 4.27 Resultados del cambio de los parámetros de la Red clasificadora para las características de la tabla del artículo 49 4.28 Aciertos y fallos de las distintas iteraciones de la Red clasificadora para las características de la tabla del artículo 49 4.29 Aciertos y fallos de los escaladores de la Red clasificadora para todas las características 52 4.30 Resultados del cambio de los parámetros de la Red clasificadora para todas las características 53 4.31 Aciertos y fallos de las distintas iteraciones de la Red clasificadora para todas las características 53 4.32 Aciertos y fallos de los escaladores de la Red de regresión para las características del artículo 57 4.33 Resultados del cambio de los parámetros de la regresión de la Red Neuronal para las características del artículo 57 4.34 Aciertos y fallos de los escaladores de la Red de regresión para las características del artículo 58 4.35 Parámetros de la regresión de las distintas iteraciones de la Red Neuronal regresión para las características del artículo 58 4.36 Aciertos y fallos de los escaladores de la Red de regresión para las características de la tabla del artículo 61 4.37 Resultados del cambio de los parámetros de la regresión de la Red Neuronal para las características de la tabla del artículo 62 4.38 Aciertos y fallos de las distintas iteraciones para las características de la tabla del artículo de la Red de regresión 62 4.39 Parámetros de la regresión de las distintas iteraciones de la Red Neuronal regresión para las características de la tabla del artículo 63 4.40 Aciertos y fallos de los escaladores de la Red de regresión para todas las características del artículo 65 4.41 Resultados del cambio de los parámetros de la regresión de la Red Neuronal para todas las características 66 4.42 Resultados del cambio de los parámetros de la Red de regresión para todas las características 66 4.43 Parámetros de la regresión de las distintas iteraciones de la Red Neuronal regresión para todas las características 67
Índice de Códigos 3.1 Numpy 9 3.2 Lectura y escritura de datos 10 3.3 Trabajar con DataFrames 10 3.4 Matplotlib 11 3.5 DecisionTreeClassifier 11 3.6 Parámetros del DecisionTreeClassifier 12 3.7 DecisionTreeRegressor 12 3.8 Parámetros del DecisionTreeRegressor 12 3.9 MLPClassifier 13 3.10 Parámetros del MLPClassifier 14 3.11 MLPRegressor 14 3.12 Parámetros del MLPRegressor 14 3.13 Standard Scaler 15 3.14 MinMax Scaler 15 3.15 MaxAbs Scaler 15 4.1 "Mejores parámetros" del Árbol de Decisión para las columnas del artículo 19 4.2 "Mejores parámetros" del Árbol de Decisión para las características de la tabla 23 4.3 "Mejores parámetros" del Árbol de Decisión para todas las características 27 4.4 "Mejores parámetros" del Árbol de Decisión de regresión para las características del artículo 31 4.5 "Mejores parámetros" del Árbol de Decisión de regresión para las características de la tabla del artículo 36 4.6 "Mejores parámetros" del Árbol de regresión para todas las características 40 4.7 "Mejores parámetros" de la Red Neuronal clasificadora para las columnas del artículo 45 4.8 "Mejores parámetros" de la Red Neuronal clasificadora para las columnas de la tabla del artículo 49 4.9 "Mejores parámetros" de la Red Neuronal clasificadora para todas las columnas 53 4.10 "Mejores parámetros" de la Red Neuronal regresión para las características del artículo 57 4.11 "Mejores parámetros" de la red regresión para las características del articulo 62 4.12 "Mejores parámetros" de la red regresión para todas las características 66 99
Bibliografía [1] Hervé Abdi and Lynne J. Williams, Principal component analysis, 7 2010, pp. 433–459. [2] European Space Agency, Collision avoidance challenge, 2021. [3] Ethem Alpaydin, Introduction to machine learning, third edition. ed., MIT Press, 2014. [4] Howard D. Curtis, Orbital mechanics for engineering students, fourth edition ed., Elsevier, BH, Butterworth-Heinemann is an imprint of Elsevier, 2019. [5] Rasit Abay Nils Einecke Sven Rebhan Jose Martinez-Heras Francesca Letizia Jan Siminski Klaus Merz Thomas Uriot Dario Izzo, Luís F. Sim{õ}es, Spacecraft collision avoidance challenge: design and results of a machine learning competition. [6] ESA, About space debris. [7] Fabian Pedregosa FABIANPEDREGOSA, Vincent Michel, Olivier Grisel OLIVIERGRISEL, Mathieu Blondel, Peter Prettenhofer, Ron Weiss, Jake Vanderplas, David Cournapeau, Fabian Pedregosa, Gaël Varoquaux, Alexandre Gramfort, Bertrand Thirion, Olivier Grisel, Vincent Dubourg, Alexandre Passos, Matthieu Brucher, Matthieu Perrot andÉdouardand, andÉdouard Duchesnay, and FRÉdouard Duchesnay EDOUARDDUCHESNAY, Scikit-learn: Machine learning in python gaël varoquaux bertrand thirion vincent dubourg alexandre passos pedregosa, varoquaux, gramfort et al. matthieu perrot, 2011, pp. 2825–2830. [8] National Centers for Environmental Information, Wolf sunspo number. [9] Charles R. Harris, K. Jarrod Millman, Stéfan J. van der Walt, Ralf Gommers, Pauli Virtanen, David Cournapeau, Eric Wieser, Julian Taylor, Sebastian Berg, Nathaniel J. Smith, Robert Kern, Matti Picus, Stephan Hoyer, Marten H. van Kerkwijk, Matthew Brett, Allan Haldane, Jaime Fernández del Río, Mark Wiebe, Pearu Peterson, Pierre Gérard-Marchant, Kevin Sheppard, Tyler Reddy, Warren Weckesser, Hameer Abbasi, Christoph Gohlke, and Travis E. Oliphant, Array programming with numpy, Nature 585 (2020), 357–362. [10] Simon Haykin, Neural networks : a comprehensive foundation, Macmillan College [etc.], 1994. [11] J D Hunter, Matplotlib: A 2d graphics environment, Computing in Science Engineering 9(2007), 90–95. 101