Commit 17b80bee authored by Bruno López Trigo's avatar Bruno López Trigo

Actualizada documentación

parent fd97f1d6
......@@ -101,67 +101,101 @@
<operations public="false" package="false" protected="false" private="false" static="true"/>
</display>
</class>
<generalization id="11">
<bendpoint x="268" y="555"/>
<class id="11" language="java" name="brunolopez.expliclas.explainer.InfoExtractorFURIA" project="expliclas-api"
file="/expliclas-api/src/main/java/brunolopez/expliclas/explainer/InfoExtractorFURIA.java" binary="false"
corner="BOTTOM_RIGHT">
<position height="-1" width="-1" x="656" y="640"/>
<display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
<operations public="false" package="false" protected="false" private="false" static="true"/>
</display>
</class>
<generalization id="12">
<bendpoint x="627" y="356"/>
<end type="SOURCE" refId="7"/>
<end type="TARGET" refId="6"/>
</generalization>
<generalization id="13">
<bendpoint x="134" y="573"/>
<bendpoint x="266" y="573"/>
<end type="SOURCE" refId="4"/>
<end type="TARGET" refId="3"/>
</generalization>
<generalization id="12">
<bendpoint x="268" y="555"/>
<end type="SOURCE" refId="5"/>
<generalization id="14">
<bendpoint x="655" y="572"/>
<bendpoint x="266" y="572"/>
<end type="SOURCE" refId="11"/>
<end type="TARGET" refId="3"/>
</generalization>
<association id="13">
<association id="15">
<end type="SOURCE" refId="4" navigable="false">
<attribute id="14" name="analyzer"/>
<multiplicity id="15" minimum="0" maximum="1"/>
<attribute id="16" name="analyzer">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="17" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="10" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<realization id="16">
<end type="SOURCE" refId="2"/>
<end type="TARGET" refId="1"/>
</realization>
<association id="17">
<end type="SOURCE" refId="5" navigable="false">
<attribute id="18" name="analyzer"/>
<multiplicity id="19" minimum="0" maximum="1"/>
<association id="18">
<end type="SOURCE" refId="2" navigable="false">
<attribute id="19" name="generator">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="20" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="10" navigable="true"/>
<end type="TARGET" refId="6" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="20">
<bendpoint x="627" y="361"/>
<end type="SOURCE" refId="9"/>
<end type="TARGET" refId="6"/>
</generalization>
<association id="21">
<end type="SOURCE" refId="2" navigable="false">
<attribute id="22" name="generator"/>
<multiplicity id="23" minimum="0" maximum="1"/>
<end type="SOURCE" refId="5" navigable="false">
<attribute id="22" name="analyzer">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="23" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="6" navigable="true"/>
<end type="TARGET" refId="10" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="24">
<bendpoint x="627" y="356"/>
<end type="SOURCE" refId="7"/>
<end type="TARGET" refId="6"/>
</generalization>
<association id="25">
<association id="24">
<end type="SOURCE" refId="2" navigable="false">
<attribute id="26" name="extractor"/>
<multiplicity id="27" minimum="0" maximum="1"/>
<attribute id="25" name="extractor">
<position height="0" width="0" x="0" y="0"/>
</attribute>
<multiplicity id="26" minimum="0" maximum="1">
<position height="0" width="0" x="0" y="0"/>
</multiplicity>
</end>
<end type="TARGET" refId="3" navigable="true"/>
<display labels="true" multiplicity="true"/>
</association>
<generalization id="28">
<generalization id="27">
<bendpoint x="627" y="359"/>
<end type="SOURCE" refId="8"/>
<end type="TARGET" refId="6"/>
</generalization>
<realization id="28">
<end type="SOURCE" refId="2"/>
<end type="TARGET" refId="1"/>
</realization>
<generalization id="29">
<bendpoint x="627" y="361"/>
<end type="SOURCE" refId="9"/>
<end type="TARGET" refId="6"/>
</generalization>
<generalization id="30">
<bendpoint x="403" y="572"/>
<bendpoint x="266" y="572"/>
<end type="SOURCE" refId="5"/>
<end type="TARGET" refId="3"/>
</generalization>
<classifier-display autosize="true" stereotype="true" package="true" initial-value="false" signature="true"
sort-features="false" accessors="true" visibility="true">
<attributes public="true" package="true" protected="true" private="true" static="true"/>
......
This diff is collapsed.
......@@ -397,6 +397,8 @@ Este paquete corresponde con el módulo de explicaciones y contiene las clases q
\item \textbf{ExplainerManagerImpl}: Implementación del módulo de explicaciones.
\item \textbf{InfoExtractor}: Clase abstracta encargada de la extracción de información útil para la explicación.
\item \textbf{InfoExtractorMatrix}: Clase encargada de la extracción de información útil para la explicación de la matriz de confusión.
\item \textbf{InfoExtractorTree}: Clase encargada de la extracción de información útil para la explicación de árboles de decisión.
\item \textbf{InfoExtractorFURIA}: Clase encargada de la extracción de información útil para la explicación del modelo FURIA.
\item \textbf{ClauseGenerator}: Clase abstracta encargada de la construcción de frases usando SimpleNLG.
\item \textbf{ClauseGeneratorEn}: Clase encargada de la realización lingüística en inglés.
\item \textbf{ClauseGeneratorEs}: Clase encargada de la realización lingüística en español (usando simpleNLG-ES).
......@@ -1351,7 +1353,7 @@ Otro aspecto importante de las alternativas es explicar al usuario de dónde sur
\subsection{Explicación de las matrices de confusión}
Las matrices de confusión aportan información sobre la confusión entre las diferentes clases del dataset. La lectura de una matriz de confusión no es demasiado compleja si la dimensión de la misma es reducida, sin embargo, si tenemos un gran número de clases la interpretación se empieza a complicar. Por esta razón, ExpliClas reduce la explicación de las matrices a la generación de una frase por celda, que determinará la confusión entre dos consecuentes. Como ya sabemos, el sistema es capaz de generar la matriz de \textit{cross-validation}, que contiene la información genérica de confusión y, las matrices de entrenamiento y prueba, que contienen la información de confusión aplicada a instancias concretas. En primer lugar, debemos tener en cuenta que el cálculo de la confusión entre dos clases se realiza mediante la siguiente fórmula:
Las matrices de confusión aportan información sobre la confusión entre las diferentes clases del \textit{dataset}. Hay que tener en cuenta que la interpretación de la matriz de confusión es la siguiente: las filas son las clases observadas, es decir, las clases asociadas a la salida del \textit{dataset}; las columnas son las clases inferidas, es decir, el resultado de la clasificación con el modelo construido. La lectura de una matriz de confusión no es demasiado compleja si la dimensión de la misma es reducida, sin embargo, si tenemos un gran número de clases la interpretación se empieza a complicar. Por esta razón, ExpliClas reduce la explicación de las matrices a la generación de una frase por celda, que determinará la confusión entre dos consecuentes. Como ya sabemos, el sistema es capaz de generar la matriz de \textit{cross-validation}, que contiene la información genérica de confusión y, las matrices de entrenamiento y prueba, que contienen la información de confusión aplicada a instancias concretas. En primer lugar, debemos tener en cuenta que el cálculo de la confusión entre dos clases se realiza mediante la siguiente fórmula:
\begin{equation}
confusion_{i,j} = \frac{celda_{ij}}{\sum_{i=0}^{n}{celda_{ij}}} \times 100
......@@ -1421,7 +1423,7 @@ En esta sección identificamos el trabajo futuro del proyecto, donde haremos dis
\subsection{Tareas inmediatas}
\begin{itemize}
\item \textbf{Generar la explicación local para el algoritmo FURIA}: Las clasificaciones realizadas con FURIA carecen de explicación asociada, sería interesante añadir una explicación análoga a la generada para los árboles de decisión.
\item \textbf{Mejorar la explicación local para el algoritmo FURIA}: Las clasificaciones realizadas con FURIA presentan una explicación muy sencilla que indica exclusivamente el resultado de la clasificación. Es interesante construir una explicación más completa análoga a la explicación de los árboles de decisión.
\item \textbf{Revisar las explicaciones generadas hasta el momento}: Las explicaciones son un aspecto muy mejorable del sistema. Existen frases que es posible que puedan expresarse de una manera más clara y fallos de realización que puedan solventarse.
\item \textbf{Validar las explicaciones con usuarios externos}: La realización de algún tipo de cuestionario a los usuarios permitiría determinar si las explicaciones van por el camino correcto o deben mejorar en algún aspecto.
\item \textbf{Crear un plan de pruebas y ejecutarlo}: Hasta el momento el servicio se ha desarrollado sin realizar una batería de pruebas que comprueben el correcto funcionamiento del mismo. Es necesario realizar un plan de pruebas lo suficientemente exhaustivo para cubrir los métodos principales del servicio.
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment