Commit 093e0181 authored by Bruno López Trigo's avatar Bruno López Trigo

Memoria do proxecto definitiva :)

parent 6ab4fac5
\relax
\@writefile{toc}{\contentsline {chapter}{Agradecementos}{\gl@roman {3}}}
\@setckpt{capitulos/agradecementos}{
\setcounter{page}{4}
\setcounter{equation}{0}
......
This diff is collapsed.
\pagestyle{plain}
\chapter*{Agradecementos}
Se se quere pór algún agradecemento, este vai aquí.
\addcontentsline{toc}{chapter}{Agradecementos}
\begin{itemize}
\item Grazas a meus pais, por ser o meu soporte principal e por apoiarme sempre nas miñas decisións. Eternamente agradecido, porque sei o esforzo e sacrificios realizados para abrirme un camiño cheo de oportunidades.
\item Grazas a Iria, polo seu cariño e compañía, que fixo máis amena esta etapa da miña vida. E por comprender que, nin todas as páxinas deste documento serían suficientes para agradecerlle todo o que me demostrou neste último ano.
\item Grazas aos meus titores, Jose e Alberto, pola súa dedicación e pola oportunidade que me ofreceron de seguir aprendendo coa realización deste proxecto.
\item Grazas tamén ao soporte dos proxectos TIN2014-56633-C3-1-R e TIN2017-84796-C2-1-R (MINECO e Fondos FEDER).
\end{itemize}
\relax
\@writefile{toc}{\contentsline {chapter}{\numberline {3}An\IeC {\'a}lise}{39}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}An\IeC {\'a}lise}{41}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Especificaci\IeC {\'o}n de requisitos}{39}}
\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Plantilla de requisitos de informaci\IeC {\'o}n}}{39}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Requisitos de informaci\IeC {\'o}n}{40}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Requisitos funcionais}{44}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Requisitos non funcionais}{50}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.4}Requisitos de interface gr\IeC {\'a}fica}{52}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.5}Matriz de dependencia de requisitos}{54}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Matriz de dependencia de requisitos.}}{54}}
\newlabel{matrizreqreq}{{3.1}{54}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Casos de uso}{55}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Diagrama de caso de uso.}}{55}}
\newlabel{casouso}{{3.2}{55}}
\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Plantilla de casos de uso}}{56}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Matriz de requisitos / casos de uso}{70}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Matriz requisitos / casos de uso}}{70}}
\newlabel{matrizrequso}{{3.3}{70}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Especificaci\IeC {\'o}n de requisitos}{41}}
\@writefile{lot}{\contentsline {table}{\numberline {3.1}{\ignorespaces Modelo de requisitos de informaci\IeC {\'o}n}}{41}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.1}Requisitos de informaci\IeC {\'o}n}{42}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.2}Requisitos funcionais}{46}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.3}Requisitos non funcionais}{52}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.4}Requisitos de interface gr\IeC {\'a}fica}{54}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.1.5}Matriz de dependencia de requisitos}{56}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces Matriz de dependencia de requisitos.}}{57}}
\newlabel{matrizreqreq}{{3.1}{57}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Casos de uso}{57}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.2}{\ignorespaces Diagrama de caso de uso.}}{58}}
\newlabel{casouso}{{3.2}{58}}
\@writefile{lot}{\contentsline {table}{\numberline {3.2}{\ignorespaces Modelo de casos de uso}}{58}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Matriz de requisitos / casos de uso}{71}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.3}{\ignorespaces Matriz requisitos / casos de uso}}{71}}
\newlabel{matrizrequso}{{3.3}{71}}
\@setckpt{capitulos/analise}{
\setcounter{page}{71}
\setcounter{page}{72}
\setcounter{equation}{0}
\setcounter{enumi}{3}
\setcounter{enumii}{0}
......
This diff is collapsed.
\relax
\@writefile{toc}{\contentsline {chapter}{\numberline {A}Manuais t\IeC {\'e}cnicos}{153}}
\@writefile{toc}{\contentsline {chapter}{\numberline {A}Manuais t\IeC {\'e}cnicos}{157}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {A.1}Manual de despregue}{153}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.1}Despregue da API REST}{153}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.1}{\ignorespaces URL de documentaci\IeC {\'o}n de Swagger}}{153}}
\newlabel{url}{{A.1}{153}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.2}{\ignorespaces Administraci\IeC {\'o}n de Tomcat}}{154}}
\newlabel{tomcat}{{A.2}{154}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.3}{\ignorespaces Documentaci\IeC {\'o}n de Swagger da API}}{155}}
\newlabel{apidoc}{{A.3}{155}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.2}Despregue do Demostrador Web}{155}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.4}{\ignorespaces Configuraci\IeC {\'o}n do Demostrador Web}}{155}}
\newlabel{config}{{A.4}{155}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.5}{\ignorespaces Pantalla de inicio de ExpliClas}}{156}}
\newlabel{expliclas-home}{{A.5}{156}}
\@writefile{toc}{\contentsline {section}{\numberline {A.1}Manual de despregue}{157}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.1}Despregue da API REST}{157}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.1}{\ignorespaces URL de documentaci\IeC {\'o}n de Swagger}}{157}}
\newlabel{url}{{A.1}{157}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.2}{\ignorespaces Administraci\IeC {\'o}n de Tomcat}}{158}}
\newlabel{tomcat}{{A.2}{158}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.3}{\ignorespaces Documentaci\IeC {\'o}n de Swagger da API}}{159}}
\newlabel{apidoc}{{A.3}{159}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.2}Despregue do Demostrador Web}{159}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.4}{\ignorespaces Configuraci\IeC {\'o}n do Demostrador Web}}{159}}
\newlabel{config}{{A.4}{159}}
\@writefile{lof}{\contentsline {figure}{\numberline {A.5}{\ignorespaces Pantalla de inicio de ExpliClas}}{160}}
\newlabel{expliclas-inicio}{{A.5}{160}}
\@setckpt{capitulos/apendicea}{
\setcounter{page}{157}
\setcounter{page}{161}
\setcounter{equation}{0}
\setcounter{enumi}{5}
\setcounter{enumii}{1}
......
\chapter{Manuais técnicos}
\section{Manual de despregue}
Indícase a continuación o procedemento necesario para despregar o sistema ExpliClas nun entorno real.
Indícase a continuación o procedemento necesario para despregar o sistema ExpliClas nun entorno real. Hai que ter en conta que o despregue se fixo sobre unha máquina virtual co sistema operativo Ubuntu Server 16.04.3.
\subsection{Despregue da API REST}
......@@ -21,7 +21,7 @@ Empezarase indicando a secuencia de pasos necesarios para despregar a API REST:
\begin{table}[H]
\centering
https://BASE/api/swagger.json
\texttt{https://BASE/api/swagger.json}
\end{table}
Tendo en conta que \textit{BASE} fai referencia á URL base do servidor no que se desprega o sistema.
......@@ -72,12 +72,12 @@ Unha vez despregada a API poderá despregarse o demostrador web seguindo os segu
\item Finalmente, empregarase o propio servidor de node para poñer en produción o proxecto. Para realizar esta acción emprégase o comando: \texttt{serve -s /path/to/build}, sendo /path/to/build a ruta ata o directorio build creado durante a compilación.
\item Unha vez despregado o demostrador, deberíamos poder acceder ao servizo no porto 3000 e empregando a URL \textbf{HOME} indicada no arquivo de configuración, tal e como se aprecia na figura \ref{expliclas-home}.
\item Unha vez despregado o demostrador, deberíamos poder acceder ao servizo no porto 3000 e empregando a URL \textbf{HOME} indicada no arquivo de configuración, tal e como se aprecia na figura \ref{expliclas-inicio}.
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-home.png}}
\caption{Pantalla de inicio de ExpliClas}
\label{expliclas-home}
\label{expliclas-inicio}
\end{figure}
\end{enumerate}
\ No newline at end of file
\relax
\@writefile{toc}{\contentsline {chapter}{\numberline {B}Manuais de usuario}{157}}
\@writefile{toc}{\contentsline {chapter}{\numberline {B}Manuais de usuario}{161}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {B.1}Pantalla de inicio}{157}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.1}{\ignorespaces Pantalla de inicio}}{157}}
\newlabel{expliclas-home}{{B.1}{157}}
\@writefile{toc}{\contentsline {section}{\numberline {B.2}Listado de datasets}{157}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.2}{\ignorespaces Pantalla de datasets}}{158}}
\newlabel{expliclas-datasets}{{B.2}{158}}
\@writefile{toc}{\contentsline {section}{\numberline {B.3}Engadir un novo dataset}{158}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.3}{\ignorespaces Selecci\IeC {\'o}n do algoritmo}}{158}}
\newlabel{expliclas-algorithm}{{B.3}{158}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.4}{\ignorespaces Formulario de construci\IeC {\'o}n do clasificador}}{159}}
\newlabel{expliclas-build1}{{B.4}{159}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.5}{\ignorespaces Formulario de construci\IeC {\'o}n do clasificador}}{159}}
\newlabel{expliclas-build2}{{B.5}{159}}
\@writefile{toc}{\contentsline {section}{\numberline {B.4}Selecci\IeC {\'o}n do clasificador}{159}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.6}{\ignorespaces Selecci\IeC {\'o}n do clasificador}}{160}}
\newlabel{expliclas-logs}{{B.6}{160}}
\@writefile{toc}{\contentsline {section}{\numberline {B.5}Informaci\IeC {\'o}n do clasificador / Explicaci\IeC {\'o}n global}{160}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.7}{\ignorespaces Informaci\IeC {\'o}n do clasificador}}{160}}
\newlabel{expliclas-clasificador}{{B.7}{160}}
\@writefile{toc}{\contentsline {section}{\numberline {B.6}Clasificaci\IeC {\'o}ns / Explicaci\IeC {\'o}n local}{161}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.8}{\ignorespaces Informaci\IeC {\'o}n das clasificaci\IeC {\'o}ns}}{161}}
\newlabel{expliclas-clasificacion}{{B.8}{161}}
\@writefile{toc}{\contentsline {section}{\numberline {B.1}Pantalla de inicio}{161}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.1}{\ignorespaces Pantalla de inicio}}{161}}
\newlabel{expliclas-home}{{B.1}{161}}
\@writefile{toc}{\contentsline {section}{\numberline {B.2}Listado de datasets}{161}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.2}{\ignorespaces Pantalla de datasets}}{162}}
\newlabel{expliclas-datasets}{{B.2}{162}}
\@writefile{toc}{\contentsline {section}{\numberline {B.3}Engadir un novo dataset}{162}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.3}{\ignorespaces Selecci\IeC {\'o}n do algoritmo}}{162}}
\newlabel{expliclas-algorithm}{{B.3}{162}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.4}{\ignorespaces Formulario de construci\IeC {\'o}n do clasificador}}{163}}
\newlabel{expliclas-build1}{{B.4}{163}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.5}{\ignorespaces Formulario de construci\IeC {\'o}n do clasificador}}{163}}
\newlabel{expliclas-build2}{{B.5}{163}}
\@writefile{toc}{\contentsline {section}{\numberline {B.4}Selecci\IeC {\'o}n do clasificador}{163}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.6}{\ignorespaces Selecci\IeC {\'o}n do clasificador}}{164}}
\newlabel{expliclas-logs}{{B.6}{164}}
\@writefile{toc}{\contentsline {section}{\numberline {B.5}Informaci\IeC {\'o}n do clasificador / Explicaci\IeC {\'o}n global}{164}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.7}{\ignorespaces Informaci\IeC {\'o}n do clasificador}}{164}}
\newlabel{expliclas-clasificador}{{B.7}{164}}
\@writefile{toc}{\contentsline {section}{\numberline {B.6}Clasificaci\IeC {\'o}ns / Explicaci\IeC {\'o}n local}{165}}
\@writefile{lof}{\contentsline {figure}{\numberline {B.8}{\ignorespaces Informaci\IeC {\'o}n das clasificaci\IeC {\'o}ns}}{165}}
\newlabel{expliclas-clasificacion}{{B.8}{165}}
\@setckpt{capitulos/apendiceb}{
\setcounter{page}{162}
\setcounter{page}{166}
\setcounter{equation}{0}
\setcounter{enumi}{5}
\setcounter{enumii}{1}
......
......@@ -3,7 +3,7 @@
\section{Pantalla de inicio}
A primeira pantalla coa que se atopa o usuario é a da figura \ref{expliclas-home}, onde este debe pulsar no botón \say{Start} para comezar a empregar o servizo e iniciar unha sesión anónima.
A primeira pantalla coa que se atopa o usuario é a da figura \ref{expliclas-home}, onde este debe pulsar no botón \textit{Start} para comezar a empregar o servizo e iniciar unha sesión anónima.
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-home.png}}
......@@ -13,7 +13,7 @@ A primeira pantalla coa que se atopa o usuario é a da figura \ref{expliclas-hom
\section{Listado de datasets}
Diferencianse dous tipos de datasets, os datasets precargados no sistema (só admiten a súa selección pulsando en \say{Select}) e os datasets creados polo usuario, que admite tanto a selección como a eliminación (pulsando na cruz vermella da esquina superior dereita). Se seleccionamos un dataset, pasaremos á opción de seleccionado e visualización dos logs dos clasificadores. Existe tamén unha opción \say{add}, co mesmo formato que o resto dos datasets e se pulsamos no signo máis do centro pasaremos á opción de engadir un novo dataset para xerar un clasificador. Esta pantalla apréciase na figura \ref{expliclas-datasets}.
Diferéncianse dous tipos de datasets, os datasets precargados no sistema (só admiten a súa selección pulsando en \textit{Select}) e os datasets creados polo usuario, que admite tanto a selección como a eliminación (pulsando na cruz vermella da esquina superior dereita). Se seleccionamos un dataset, pasaremos á opción de seleccionado e visualización dos logs dos clasificadores. Existe tamén unha opción \textit{add}, co mesmo formato que o resto dos datasets e se pulsamos no signo máis do centro pasaremos á opción de engadir un novo dataset para xerar un clasificador. Esta pantalla apréciase na figura \ref{expliclas-datasets}.
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-datasets.png}}
......@@ -24,7 +24,7 @@ Diferencianse dous tipos de datasets, os datasets precargados no sistema (só ad
\section{Engadir un novo dataset}
Seleccionando a opción \say{add} na pantalla dos datasets, pasaremos á seguinte pantalla para construír un clasificador. Onde debemos seleccionar o algoritmo de clasificación desexado no menú despregable, tal e como se ve na figura \ref{expliclas-algorithm}
Seleccionando a opción \textit{add} na pantalla dos datasets, pasaremos á seguinte pantalla para construír un clasificador. Onde debemos seleccionar o algoritmo de clasificación desexado no menú despregable, tal e como se ve na figura \ref{expliclas-algorithm}
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-algorithm.png}}
......@@ -32,7 +32,7 @@ Seleccionando a opción \say{add} na pantalla dos datasets, pasaremos á seguint
\label{expliclas-algorithm}
\end{figure}
Unha vez seleccionado o algoritmo teremos un formulario para xerar o clasificador. Son estrictamente necesarios o nome do novo dataset (non debe coincidir con ningún predeterminado ou creado previamente polo usuario) e subir o arquivo do dataset. O resto de valores son os valores por defecto para o algoritmo seleccionado e non é necesario modificalos. Ademais, para cada parámetro podemos consultar unha descrición do mesmo se pasamos o cursor sobre o icono \say{i} de información. Na figura \ref{expliclas-build1} temos os dous campos obligatorios do formulario.
Unha vez seleccionado o algoritmo teremos un formulario para xerar o clasificador. Son estritamente necesarios o nome do novo dataset (non debe coincidir con ningún predeterminado ou creado previamente polo usuario) e subir o arquivo do dataset. O resto de valores son os valores por defecto para o algoritmo seleccionado e non é necesario modificalos. Ademais, para cada parámetro podemos consultar unha descrición do mesmo se pasamos o cursor sobre a icona \say{i} de información. Na figura \ref{expliclas-build1} temos os dous campos obrigatorios do formulario.
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-build1.png}}
......@@ -40,7 +40,7 @@ Unha vez seleccionado o algoritmo teremos un formulario para xerar o clasificado
\label{expliclas-build1}
\end{figure}
Unha vez cumprimentado todo o formulario, poderase proceder á construción do clasificador se pulsamos no botón \say{build}, tal e como se amosa na figura \ref{expliclas-build2}.
Unha vez cumprimentado todo o formulario, poderase proceder á construción do clasificador se pulsamos no botón \textit{Build}, tal e como se amosa na figura \ref{expliclas-build2}.
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-build2.png}}
......@@ -58,7 +58,7 @@ Unha vez seleccionado un dataset desde a pantalla dos datasets, entrarase na pan
\label{expliclas-logs}
\end{figure}
Se seleccionamos un clasificador co log existente e pulsamos en \say{Next}, a pantalla seguinte será a da sección B.5. En cambio, se seleccionamos un clasificador co log sen xerar, pasaremos á pantalla da sección B.3, onde o algoritmo de clasificación non se poderá modificar porque será o seleccionado previamente, e empregarase o dataset existente no sistema, polo que o usuario non necesita subir de novo o dataset.
Se seleccionamos un clasificador co log existente e pulsamos en \textit{Next}, a pantalla seguinte será a da sección B.5. En cambio, se seleccionamos un clasificador co log sen xerar, pasaremos á pantalla da sección B.3, onde o algoritmo de clasificación non se poderá modificar porque será o seleccionado previamente, e empregarase o dataset existente no sistema, polo que o usuario non necesita subir de novo o dataset.
\section{Información do clasificador / Explicación global}
......@@ -70,11 +70,11 @@ Esta pantalla correspóndese coa información do clasificador ou o que é equiva
\label{expliclas-clasificador}
\end{figure}
Ao premer no botón \say{Next} o usuario avanzaría ata a seguinte pantalla amosada na sección B.6.
Ao premer no botón \textit{Next} o usuario avanzaría ata a seguinte pantalla amosada na sección B.6.
\section{Clasificacións / Explicación local}
Nesta pantalla o usuario pode realizar clasificacións de instancias e obter a explicación asociada a dita clasificación, é dicir, a explicación local. Distínguese un formulario onde os valores poden mudarse manualmente por parte do usuario, así como unha lista de instancias do dataset que o usuario pode pregargar no formulario ao seleccionalas. Se o usuario pulsa na opción \say{Generate explanation} o sistema procederá coa clasificación e devolverá a explicación no recadro da dereita.
Nesta pantalla o usuario pode realizar clasificacións de instancias e obter a explicación asociada a dita clasificación, é dicir, a explicación local. Distínguese un formulario onde os valores poden mudarse manualmente por parte do usuario, así como unha lista de instancias do dataset que o usuario pode pregargar no formulario ao seleccionalas. Se o usuario pulsa na opción \textit{Generate explanation} o sistema procederá coa clasificación e devolverá a explicación no recadro da dereita.
\begin{figure}[H]
\centerline{\includegraphics[width=10cm, trim={1mm 1mm 1mm 1mm}, clip]{figuras/expliclas-clasificacion.png}}
......
\relax
\@writefile{toc}{\contentsline {chapter}{\numberline {C}Plan de Probas}{167}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {C.1}Probas de funcionalidade}{167}}
\@writefile{toc}{\contentsline {subsection}{\numberline {C.1.1}Incremento 1: Probas do M\IeC {\'o}dulo Int\IeC {\'e}rprete}{167}}
\@writefile{lof}{\contentsline {figure}{\numberline {C.1}{\ignorespaces Grafo de execuci\IeC {\'o}n da proba P-MI-02}}{169}}
\newlabel{treegrafo}{{C.1}{169}}
\@writefile{toc}{\contentsline {subsection}{\numberline {C.1.2}Incremento 2: Probas do M\IeC {\'o}dulo Explicador}{171}}
\@writefile{toc}{\contentsline {subsection}{\numberline {C.1.3}Incremento 3: Probas do M\IeC {\'o}dulo Xerador}{172}}
\@writefile{toc}{\contentsline {section}{\numberline {C.2}Probas de validaci\IeC {\'o}n do servizo}{180}}
\@writefile{toc}{\contentsline {section}{\numberline {C.3}Casos de proba}{190}}
\@writefile{lot}{\contentsline {table}{\numberline {C.1}{\ignorespaces Modelo de caso de proba}}{190}}
\@setckpt{capitulos/apendicec}{
\setcounter{page}{216}
\setcounter{equation}{0}
\setcounter{enumi}{5}
\setcounter{enumii}{1}
\setcounter{enumiii}{0}
\setcounter{enumiv}{0}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{3}
\setcounter{section}{3}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{1}
\setcounter{table}{1}
\setcounter{float@type}{8}
\setcounter{lstnumber}{95}
\setcounter{dirtytalk@qdepth}{0}
\setcounter{lstlisting}{0}
}
This diff is collapsed.
......@@ -2,45 +2,49 @@
\bibcite{xai}{1}
\bibcite{euregulation}{2}
\bibcite{xln}{3}
\bibcite{weka}{4}
\bibcite{netbeans}{5}
\bibcite{jersey}{6}
\bibcite{simplenlg}{7}
\bibcite{apiweka}{8}
\bibcite{react}{9}
\bibcite{ExpliClas}{10}
\bibcite{salariotic}{11}
\@writefile{toc}{\contentsline {chapter}{Bibliograf\IeC {\'\i }a}{165}}
\bibcite{calculadora}{12}
\bibcite{uscindirecto}{13}
\bibcite{jaxb}{14}
\bibcite{swagger}{15}
\bibcite{tomcat}{16}
\bibcite{nodejs}{17}
\bibcite{texmaker}{18}
\bibcite{wbstool}{19}
\bibcite{projectlibre}{20}
\bibcite{drawio}{21}
\bibcite{staruml}{22}
\bibcite{gitlab}{23}
\bibcite{ExpliClas}{4}
\bibcite{ExpliClasAPI}{5}
\bibcite{weka}{6}
\bibcite{netbeans}{7}
\bibcite{jersey}{8}
\bibcite{simplenlg}{9}
\bibcite{apiweka}{10}
\bibcite{react}{11}
\bibcite{salariotic}{12}
\@writefile{toc}{\contentsline {chapter}{Bibliograf\IeC {\'\i }a}{217}}
\bibcite{calculadora}{13}
\bibcite{uscindirecto}{14}
\bibcite{jaxb}{15}
\bibcite{UCI}{16}
\bibcite{johnson}{17}
\bibcite{swagger}{18}
\bibcite{tomcat}{19}
\bibcite{nodejs}{20}
\bibcite{texmaker}{21}
\bibcite{wbstool}{22}
\bibcite{projectlibre}{23}
\bibcite{drawio}{24}
\bibcite{staruml}{25}
\bibcite{gitlab}{26}
\bibcite{ESTYLF}{27}
\@setckpt{capitulos/bibliografia}{
\setcounter{page}{167}
\setcounter{page}{220}
\setcounter{equation}{0}
\setcounter{enumi}{5}
\setcounter{enumii}{1}
\setcounter{enumiii}{0}
\setcounter{enumiv}{23}
\setcounter{enumiv}{27}
\setcounter{footnote}{0}
\setcounter{mpfootnote}{0}
\setcounter{part}{0}
\setcounter{chapter}{3}
\setcounter{section}{0}
\setcounter{section}{3}
\setcounter{subsection}{0}
\setcounter{subsubsection}{0}
\setcounter{paragraph}{0}
\setcounter{subparagraph}{0}
\setcounter{figure}{0}
\setcounter{table}{0}
\setcounter{figure}{1}
\setcounter{table}{1}
\setcounter{float@type}{8}
\setcounter{lstnumber}{95}
\setcounter{dirtytalk@qdepth}{0}
......
......@@ -10,9 +10,13 @@
\bibitem{xln} E. Reiter, R. Dale, ``Building natural language generation systems'', {\it Cambridge University Press}, 2000.
\bibitem{ExpliClas} ExpliClas. Web Service for the Automatic Explanation in Natural Language of classification models in Data Mining. {\it https://demos.citius.usc.es/ExpliClas}
\bibitem{ExpliClasAPI} ExpliClas. REST API. {\it https://demos.citius.usc.es/ExpliClasAPI}
\bibitem{weka} Machine Learning Group at University of Waikato. Weka 3: Data Mining Software in Java. Consultada en {\it https://www.cs.waikato.ac.nz/ml/weka/} o 20 de xuño de 2018.
\bibitem{netbeans} Netbeans. Consultada en {\it https://netbeans.org/} o 27 de xuño de 2018.
\bibitem{netbeans} NetBeans. Consultada en {\it https://netbeans.org/} o 27 de xuño de 2018.
\bibitem{jersey} Jersey. Jersey 2.27 User Guide. Consultada en {\it https://jersey.github.io/documentation/latest/index.html} o 22 de xuño de 2018.
......@@ -22,8 +26,6 @@
\bibitem{react} React documentation. Consultada en {\it https://reactjs.org/docs/hello-world.html} o 22 de xuño de 2018.
\bibitem{ExpliClas} ExpliClas. Web Service for the Automatic Explanation in Natural Language of classification models in Data Mining. {\it https://demos.citius.usc.es/ExpliClas}
\bibitem{salariotic} Guia Salarial Sector TI Galicia 2015-2016. Consultada en {\it https://es.scribd.com/document/288511179/Guia-Salarial-Sector-TI-Galicia-2015-2016} o 22 de xuño de 2018.
\bibitem{calculadora} Oficina de Investigación e Tecnoloxía. Calculadora de Contratos. Consultada en {\it http://imaisd.usc.es/ferramentas/calculadora/calculadoracontratos.asp} o 22 de xuño de 2018.
......@@ -32,9 +34,13 @@
\bibitem{jaxb} Oracle. Java Architecture for XML Binding (JAXB). Consultada en {\it http://www.oracle.com/technetwork/articles/javase/index-140168.html} o 22 de xuño de 2018.
\bibitem{UCI} The University of California at Irvine. UCI machine learning repository. Consultada en {\it https://archive.ics.uci.edu/ml} o 30 de xuño de 2018.
\bibitem{johnson} Donald B. Johnson. {\it Finding all the elementary circuits of a directed graph}. Siam J. Comput. Vol.4, No.1, 1975.
\bibitem{swagger} Swagger. API Documentation. Consultada en {\it https://swagger.io/solutions/api-documentation/} o 22 de xuño de 2018.
\bibitem{tomcat} Apache Tomcat 8. Apache Tomcat 8 Documentation. Consultada en {\it http://tomcat.apache.org/tomcat-8.0-doc/index.html} o 22 de xuño de 2018.
\bibitem{tomcat} Apache Tomcat 8. Documentation. Consultada en {\it http://tomcat.apache.org/tomcat-8.0-doc/index.html} o 22 de xuño de 2018.
\bibitem{nodejs} NodeJS. Consultada en {\it https://nodejs.org/es/docs/} o 22 de xuño de 2018.
......@@ -50,5 +56,7 @@
\bibitem{gitlab} Gitlab. Consultada en {\it https://gitlab.citius.usc.es} o 22 de xuño de 2018.
\bibitem{ESTYLF} B. López-Trigo, J.M. Alonso, A. Bugarin, A. Actas del 19º Congreso Español sobre Lógicas y Tecnología Fuzzy (ESTYLF). {\it Generación Automática de Explicaciones en Lenguaje Natural para Clasificadores mediante Árboles de Decisión}, en revisión, 2018.
\end{thebibliography}
\relax
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Conclusi\IeC {\'o}ns e posibles ampliaci\IeC {\'o}ns}{151}}
\citation{ExpliClas}
\citation{ExpliClasAPI}
\@writefile{toc}{\contentsline {chapter}{\numberline {7}Conclusi\IeC {\'o}ns e posibles ampliaci\IeC {\'o}ns}{155}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\citation{ESTYLF}
\@setckpt{capitulos/conclusions}{
\setcounter{page}{152}
\setcounter{page}{157}
\setcounter{equation}{0}
\setcounter{enumi}{3}
\setcounter{enumii}{1}
......
......@@ -2,6 +2,25 @@
Neste proxecto acadouse o desenvolvemento dun servizo web, \textbf{ExpliClas}, que funciona sobre unha API REST, e é capaz de proporcionar explicacións (globais e locais) en linguaxe natural sobre clasificacións feitas con árbores de decisión.
Aínda que ExpliClas é un servizo web operativo e totalmente funcional, existen bastantes melloras que poden levarse a cabo. A mellora inmediata sobre o servizo está destinada ao refinamento das explicacións xeradas. Para este refinamento o ideal será crear un formulario onde os usuarios do sistema podan valorar as explicacións do sistema. A partir do \say{feedback} proporcionado polos usuarios, revisarase e mellorarase o modelo de explicacións actual.
ExpliClas é un servizo Web operativo e totalmente funcional, tal e como pode verse accedendo ás URL do propio servizo \cite{ExpliClas}
\begin{center}
\texttt{https://demos.citius.usc.es/ExpliClas/}
\end{center}
ou da API \cite{ExpliClasAPI}:
\begin{center}
\texttt{https://demos.citius.usc.es/ExpliClasAPI/}
\end{center}
Ainda así, xa se detectaron algunhas melloras, que se levarán adiante nos próximos meses.
Por unha parte, están as posibles ampliacións relativas ás limitacións actuais do sistema. En primeiro lugar, o sistema consta de 3 algoritmos de clasificación (J48, REPTree e RandomTree) que poderían ser estendidos a un maior número de algoritmos que seguen un modelo similar. En segundo lugar, ExpliClas só admite datasets de datos numéricos quedando como unha ampliación interesante a compatibilidade con datasets de datos categóricos. Por último, o sistema está deseñado para algoritmos de clasificación que empregan árbores de decisión, que son algoritmos de caixa branca. Pero sería interesante que, nun futuro, ExpliClas se adaptase a outros algoritmos de clasificación considerados de caixa gris (por exemplo, árbores de decisión borrosos).
Un último aspecto que se vai ampliar, unha vez abordadas as melloras anteriores, é realizar unha validación exhaustiva da calidade lingüística das explicacións xeradas, con usuarios externos. A validación vai seguir un dos estándares neste ámbito, que consiste en elaborar un cuestionario no que os usuarios avaliarán, para un conxunto suficiente de casos (datasets e instancias) as dúas dimensións mais relevantes das explicacións: a pertinencia do contido das mesmas (dimensión de fondo) e a corrección das explicacións (dimensión de forma).
Moitas destas melloras van ser abordadas xa de xeito inmediato tras o remate do TFG, xa que ExpliClas nace cunha vocación de converterse nun servizo ofrecido á comunidade da aprendizaxe automática. Proba disto é que ExpliClas foi descrito nun traballo enviado recientemente ao \say{19º Congreso Español sobre Tecnologías y Lógica Fuzzy} \cite{ESTYLF}, estando o dito traballo actualmente en avaliación.
Por outra parte, están as posibles ampliacións relativas ás limitacións actuais do sistema. En primeiro lugar, o sistema está reducido a 3 algoritmos de clasificación (J48, REPTree e RandomTree) que poderían ser extendidos a un maior número de algoritmos que seguen un modelo similar. En segundo lugar, ExpliClas só admite datasets de datos numéricos quedando como unha ampliación interesante a compatibilidade con datasets de datos categóricos. Por último, o sistema está deseñado para algoritmos de clasificación que empregan árbores de decisión, que son algoritmos de caixa branca. Pero sería interesante que, nun futuro, ExpliClas se adaptase a outros algoritmos de clasificación considerados de caixa gris (por exemplo, árbores de decisión borrosos).
\ No newline at end of file
\relax
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Dese\IeC {\~n}o}{75}}
\@writefile{toc}{\contentsline {chapter}{\numberline {5}Dese\IeC {\~n}o}{77}}
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Arquitectura do sistema}{75}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Arquitectura ExpliClas}}{76}}
\newlabel{arquitectura}{{5.1}{76}}
\@writefile{toc}{\contentsline {section}{\numberline {5.2}API REST}{76}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces Diagrama de clases da API}}{77}}
\newlabel{clasesAPI}{{5.2}{77}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}M\IeC {\'o}dulo Xerador de Logs}{78}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Diagrama de clases do Xerador de Logs}}{79}}
\newlabel{claseslogs}{{5.3}{79}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}M\IeC {\'o}dulo Int\IeC {\'e}rprete}{80}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Diagrama de clases do Construtor de Problemas}}{81}}
\newlabel{clasesProblema}{{5.4}{81}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Diagrama de clases do Construtor da Soluci\IeC {\'o}n}}{82}}
\newlabel{clasesSol}{{5.5}{82}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}M\IeC {\'o}dulo Xerador de Explicaci\IeC {\'o}ns}{83}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Diagrama de clases do Xerador de Explicaci\IeC {\'o}ns}}{84}}
\newlabel{clasesExp}{{5.6}{84}}
\@writefile{toc}{\contentsline {section}{\numberline {5.1}Arquitectura do sistema}{77}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.1}{\ignorespaces Arquitectura ExpliClas}}{78}}
\newlabel{arquitectura}{{5.1}{78}}
\@writefile{toc}{\contentsline {section}{\numberline {5.2}API REST}{78}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.2}{\ignorespaces Diagrama de clases da API}}{79}}
\newlabel{clasesAPI}{{5.2}{79}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.1}M\IeC {\'o}dulo Xerador de Logs}{80}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.3}{\ignorespaces Diagrama de clases do Xerador de Logs}}{81}}
\newlabel{claseslogs}{{5.3}{81}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.2}M\IeC {\'o}dulo Int\IeC {\'e}rprete}{82}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.4}{\ignorespaces Diagrama de clases do Construtor de Problemas}}{83}}
\newlabel{clasesProblema}{{5.4}{83}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.5}{\ignorespaces Diagrama de clases do Construtor da Soluci\IeC {\'o}n}}{84}}
\newlabel{clasesSol}{{5.5}{84}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.2.3}M\IeC {\'o}dulo Xerador de Explicaci\IeC {\'o}ns}{85}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.6}{\ignorespaces Diagrama de clases do Xerador de Explicaci\IeC {\'o}ns}}{86}}
\newlabel{clasesExp}{{5.6}{86}}
\citation{ExpliClasAPI}
\citation{weka}
\@writefile{toc}{\contentsline {section}{\numberline {5.3}Proceso de xeraci\IeC {\'o}n de explicaci\IeC {\'o}ns}{85}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}Os algoritmos en Weka}{85}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}O concepto de clasificador en ExpliClas}{86}}
\@writefile{toc}{\contentsline {subsubsection}{O dataset de aprendizaxe}{86}}
\@writefile{toc}{\contentsline {subsubsection}{O log do clasificador}{86}}
\@writefile{toc}{\contentsline {subsubsection}{O arquivo de configuraci\IeC {\'o}n do clasificador}{86}}
\@writefile{toc}{\contentsline {subsubsection}{A estrutura do clasificador}{87}}
\newlabel{estrutura}{{5.3.2}{87}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Estrutura do clasificador}}{88}}
\newlabel{clasificador}{{5.7}{88}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}A clasificaci\IeC {\'o}n con ExpliClas}{88}}
\@writefile{toc}{\contentsline {subsubsection}{A construci\IeC {\'o}n do problema}{88}}
\@writefile{toc}{\contentsline {section}{\numberline {5.3}Proceso de xeraci\IeC {\'o}n de explicaci\IeC {\'o}ns}{87}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.1}Os algoritmos en Weka}{87}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.2}O concepto de clasificador en ExpliClas}{88}}
\@writefile{toc}{\contentsline {subsubsection}{O dataset de aprendizaxe}{89}}
\@writefile{toc}{\contentsline {subsubsection}{O log do clasificador}{89}}
\@writefile{toc}{\contentsline {subsubsection}{O arquivo de configuraci\IeC {\'o}n do clasificador}{89}}
\@writefile{toc}{\contentsline {subsubsection}{A estrutura do clasificador}{90}}
\newlabel{estrutura}{{5.3.2}{90}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.7}{\ignorespaces Estrutura do clasificador}}{91}}
\newlabel{clasificador}{{5.7}{91}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.3}A clasificaci\IeC {\'o}n con ExpliClas}{91}}
\@writefile{toc}{\contentsline {subsubsection}{A construci\IeC {\'o}n do problema}{91}}
\citation{jaxb}
\@writefile{toc}{\contentsline {subsubsection}{Construci\IeC {\'o}n da estrutura b\IeC {\'a}sica do problema}{89}}
\@writefile{toc}{\contentsline {subsubsection}{Asociaci\IeC {\'o}n de atributos ao problema}{89}}
\@writefile{toc}{\contentsline {subsubsection}{Construci\IeC {\'o}n da matriz de confusi\IeC {\'o}n}{90}}
\@writefile{toc}{\contentsline {subsubsection}{Extracci\IeC {\'o}n da configuraci\IeC {\'o}n global}{90}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}A construci\IeC {\'o}n da \IeC {\'a}rbore de decisi\IeC {\'o}n}{91}}
\@writefile{toc}{\contentsline {subsubsection}{A estrutura da \IeC {\'a}rbore en ExpliClas}{91}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.8}{\ignorespaces Estrutura da \IeC {\'a}rbore}}{91}}
\newlabel{tree}{{5.8}{91}}
\@writefile{toc}{\contentsline {subsubsection}{A construci\IeC {\'o}n da \IeC {\'a}rbore}{92}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.9}{\ignorespaces \IeC {\'A}rbore do log}}{93}}
\newlabel{treeoriginal}{{5.9}{93}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.5}A construci\IeC {\'o}n da soluci\IeC {\'o}n}{94}}
\@writefile{toc}{\contentsline {subsubsection}{A estrutura da soluci\IeC {\'o}n}{94}}
\@writefile{lof}{\contentsline {figure}{\numberline {5.10}{\ignorespaces Estrutura da soluci\IeC {\'o}n en ExpliClas}}{94}}
\newlabel{solution}{{5.10}{94}}
\@writefile{toc}{\contentsline {subsubsection}{A interpretaci\IeC {\'o}n da \IeC {\'a}rbore}{95}}
\newlabel{alternativas}{{5.3.5}{95}}
\@writefile{toc}{\contentsline {subsubsection}{Construci\IeC {\'o}n da estrutura b\IeC {\'a}sica do problema}{92}}
\@writefile{toc}{\contentsline {subsubsection}{Asociaci\IeC {\'o}n de atributos ao problema}{92}}
\@writefile{toc}{\contentsline {subsubsection}{Construci\IeC {\'o}n da matriz de confusi\IeC {\'o}n}{92}}
\@writefile{toc}{\contentsline {subsubsection}{Extracci\IeC {\'o}n da configuraci\IeC {\'o}n global}{92}}
\@writefile{toc}{\contentsline {subsection}{\numberline {5.3.4}A construci\IeC {\'o}n da \IeC {\'a}rbore de decisi\IeC {\'o}n}{93}}
\@writefile{toc}{\contentsline {subsubsection}{A estrutura