Skip to content

Commit 02c3dac

Browse files
Merge pull request #204 from dpr1005/development
Finished Programmer Manual Annex
2 parents 961c25d + 85ac68d commit 02c3dac

File tree

11 files changed

+527
-254
lines changed

11 files changed

+527
-254
lines changed

docs/anexos.pdf

262 KB
Binary file not shown.
185 KB
Loading
192 KB
Loading
79.5 KB
Loading

docs/tex/D_Manual_programador.tex

Lines changed: 55 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -285,8 +285,17 @@ \subsubsection{Travis-CI}
285285
\imagenRuta{../img/anexos/manual-programador/Travis-CI-UBUMLaaS}{Travis-CI.}{Travis-CI-UBUMLaaS}
286286

287287
\subsection{Pruebas del sistema}
288-
Intro \\ (En desarrollo)
289-
Tal y como se ha descrito, \texttt{UBUMLaaS} es un \textit{software} que ha sufrido un cambio de diseño de grandes dimensiones, por lo que las pruebas de integración continua previas que existían han dejado de ser funcionales, debido a que únicamente comprobaban la interacción del usuario con la plataforma a través de un navegador.
288+
Las pruebas del sistema se encuentran dentro de los trabajos futuros que debe seguir la aplicación.
289+
290+
Tal y como se ha descrito, \texttt{UBUMLaaS} es un \textit{software} que ha sufrido un cambio de diseño de grandes dimensiones, por lo que las pruebas de integración continua previas que existían han dejado de ser funcionales. La problemática que surge con las existentes es que no eran pruebas sobre el \textit{backend} de la aplicación, sino la interacción del usuario (mediante el uso de \textit{Selenium}) con el \textit{frontend}.
291+
292+
Es por ello que, al haberse hecho <<de cero>> toda la interfaz de la aplicación web, literalmente, no existe ninguna referencia de las antiguas que las pruebas existentes puedan reutilizar.
293+
294+
Debido a esta problemática, y con el fin de obtener un sistema estable, se ha seleccionado a un grupo de personas de edades comprendidas entre 18 y 55 años, profesionales de mecánica y electrónica, medicina, informática y estudiantes del grado de otras universidades españolas; con el fin de que dado un \href{https://github.com/dpr1005/Semisupervised-learning-and-instance-selection-methods/blob/917d49bcc9d7f1a4825225414b246023bfa2ea7b/docs/misc/survey_steps.pdf}{documento} relativamente sencillo, puedan hacer uso de todo el sistema, y sean estos los que reporten en un \href{https://forms.gle/eZUWmT5GNahqYVVa6}{formulario de \texttt{Google}} sus impresiones y resultados. Está preparado para que se vaya leyendo el documento, probando la aplicación y posteriormente rellenando el formulario, de forma que todo sea un proceso auto-guiado.
295+
296+
Gracias a estas respuestas, se han podido encontrar \textit{bugs} existentes en la aplicación que no permitían trabajar correctamente con ella. El más importante de todo y el cual posee su propia \href{https://github.com/dpr1005/UBUMLaaS/issues/101}{\textit{issue}}, es el desfase existente entre los algoritmos de \texttt{Scikit-Learn} de la versión 0.21 (la utilizada previamente) y la actual, la 0.24. Numerosos algoritmos han sido modificados en su parametrización y por ende en \texttt{UBUMLaaS} no se podían utilizar.
297+
298+
Durante algunos meses de desarrollo del proyecto \texttt{Travis-CI} funcionó correctamente pero la propia herramienta sufrió una actualización a finales de marzo y dejó de ser funcional, resultando en numerosos \textit{commits} marcados como erróneos, pero tal y como se aprecia en los propios \textit{logs} de Travis, nunca se llegó a testar el código, sino que en la configuración de la máquina remota <<rompía>>.
290299

291300
\clearpage
292301
\section{IS-SSL}
@@ -481,3 +490,47 @@ \subsubsection{Sonar Cloud}
481490
\imagenRuta{../img/anexos/manual-programador/SonarCloud-IS-SSL}{SonarCloud.}{SonarCloud-IS-SSL}
482491

483492
\subsection{Pruebas del sistema}
493+
494+
En esta sección se van a describir las pruebas que poseen las bibliotecas.
495+
496+
Las pruebas son realmente sencillas, ya que los propios algoritmos no poseen muchas disyunciones. Es por ello que el conjunto de pruebas codificado está compuesto de pruebas unitarias para cada algoritmo programado, permitiendo comprobar tanto que las entradas son correctas, como sus salidas. En el caso de los algoritmos de selección de instancias se asegura que las instancias recuperadas pertenecen al conjunto de datos de entrada, y que no son más que las que se introdujeron en primera instancia. De tal manera que en caso de que los algoritmos se modifiquen, el filtrado lo sigan realizando. La prueba base se puede visualizar en la Figura~\ref{fig:base-test-is}.
497+
498+
Para la biblioteca de algoritmos de aprendizaje semi-supervisado se poseen también pruebas unitarias para todos y cada uno de ellos, la prueba base se puede visualizar en~\ref{fig:base-test-ssl}. En ellas se comprueban:
499+
\begin{itemize}
500+
\tightlist
501+
\item Tipo de objeto de entrada.
502+
\item Instanciación con mediante diferentes parámetros, tanto por defecto como mediante uso de diccionarios.
503+
\item Entrenamiento del propio algoritmo (\texttt{fit}).
504+
\item Predicción usando el modelo, \texttt{predict}.
505+
\item Las etiquetas devueltas como resultado de la predicción existen en el conjunto de entrenamiento, no se ha inventado ninguna.
506+
\end{itemize}
507+
508+
509+
\imagenFlotante{../img/anexos/manual-programador/base-tests-is}{Prueba base para algoritmos de selección de instancias.}{base-test-is}
510+
\imagenFlotante{../img/anexos/manual-programador/base-tests-ssl}{Prueba base para algoritmos de aprendizaje semi-supervisado.}{base-test-ssl}
511+
\begin{figure}
512+
\centering
513+
\includegraphics[width=0.5\textwidth]{../img/anexos/manual-programador/tests-superados-is-ssl}
514+
\caption{Prueba base para algoritmos de aprendizaje semi-supervisado.}\label{fig:tests-superados-is-ssl}
515+
516+
\end{figure}
517+
518+
Además, se ha codificado una prueba para asegurar que se siguen leyendo los ficheros \texttt{ARFF} correctamente.
519+
520+
El resultado de las ejecuciones se puede ver la Figura~\ref{fig:tests-superados-is-ssl}.
521+
522+
523+
524+
525+
526+
527+
528+
529+
530+
531+
532+
533+
534+
535+
536+

semisupervised/utils/_split.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,12 +23,15 @@ def split(samples, y):
2323

2424
labeled_indexes = y != (-1 or np.NaN or None)
2525

26+
labeled_indexes = np.ravel(labeled_indexes)
27+
2628
L = samples.iloc[labeled_indexes].to_numpy()
2729
U = samples.iloc[~labeled_indexes].to_numpy()
2830
y = y[labeled_indexes]
2931

3032
assert len(L) == len(y), f"L {len(L)} != {len(y)} y"
31-
assert len(L) + len(U) == samples.shape[
32-
0], f"L {len(L)} + U {len(U)} != X {samples.shape[0]}"
33+
assert (
34+
len(L) + len(U) == samples.shape[0]
35+
), f"L {len(L)} + U {len(U)} != X {samples.shape[0]}"
3336

3437
return L, U, y

tests/InstanceSelection.py

Lines changed: 0 additions & 128 deletions
This file was deleted.

tests/SemiSupervised.py

Lines changed: 0 additions & 120 deletions
This file was deleted.

0 commit comments

Comments
 (0)