Skip to content

Commit ef2fdef

Browse files
Updated documentation based on Alvar's latests comments #244
1 parent a55fd29 commit ef2fdef

File tree

6 files changed

+54
-40
lines changed

6 files changed

+54
-40
lines changed

docs/anexos.pdf

-344 Bytes
Binary file not shown.

docs/memoria.pdf

672 Bytes
Binary file not shown.

docs/tex/3_Conceptos_teoricos.tex

Lines changed: 16 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,15 @@ \subsection{Aprendizaje no supervisado}\label{subsec:Aprendizaje-No-Supervisado}
5959
\end{enumerate}
6060

6161
\subsection{Aprendizaje semi-supervisado}\label{subsec:Aprendizaje-Semi-Supervisado}
62-
Según~\cite{zhou2014semi} \textit{Semi-Supervised Learning} se define como una forma de entrenamiento de modelos el cual usa tanto datos etiquetados como no etiquetados, \textit{i.e.} si no sería un aprendizaje supervisado, o no supervisado.
62+
Según~\cite{zhou2014semi} \textit{Semi-Supervised Learning} se define como una forma de entrenamiento de modelos el cual usa tanto datos etiquetados como no etiquetados, \textit{i.e.} si no sería un aprendizaje supervisado, o no supervisado. El conjunto de datos no etiquetado posee un número de instancias mucho más elevado que el etiquetado.
6363

64-
El uso de aprendizaje semi-supervisado se caracteriza por ser menos costoso que el supervisado, ya que este último necesita que todo el conjunto de datos que va a utilizar para aprender esté etiquetado, y ese proceso es normalmente costoso (en tiempo y en recursos). Luego, obtiene mejores resultados en menor tiempo que el aprendizaje no supervisado.
64+
El uso de aprendizaje semi-supervisado se caracteriza por ser menos costoso que el supervisado, ya que este último necesita que todo el conjunto de datos que va a utilizar para aprender esté etiquetado, y ese proceso es normalmente costoso (en tiempo y en recursos). Luego, obtiene mejores resultados en menor tiempo que el aprendizaje no supervisado~\cite{van2020survey}.
6565
Conseguir datos sin etiquetar es una tarea muy sencilla, mientras que conseguir conjuntos de datos etiquetados es un proceso complejo y actualmente no hay <<de todo>>.
6666

67+
Dependiendo el objetivo final de los métodos, SSL puede ser aplicado en problemas de clasificación semi-supervisada~\cite{chapelle2009semi} o \textit{clustering} semi-supervisado~\cite{pedrycz1985algorithms}. La primera puede dividirse en dos aproximaciones ligeramente diferentes~\cite{chen2010semi}, el aprendizaje transductivo y el inductivo.
68+
69+
En el aprendizaje transductivo, el problema es abordado desde la predicción de las etiquetas de las instancias no etiquetadas, dadas de antemano, teniendo en cuenta tanto los datos no etiquetados como los que sí lo están para entrenar un clasificador. Mientras que en el aprendizaje inductivo se consideran los datos etiquetados y no etiquetados como datos de entrenamiento, siendo su objetivo el predecir los ejemplos no vistos.
70+
6771
Para que el aprendizaje sea fructuoso requiere que las instancias se encuentren inter-relacionadas entre sí por alguna de sus características~\cite{javatpoint_semisupervised} indica las siguientes suposiciones que se dan en el aprendizaje semi-supervisado.
6872
\begin{enumerate}
6973
\item \textbf{Continuity} o continuidad. Se asume que los objetos cercanos entre sí se encontrarán en el mismo \textit{cluster} o grupo de etiquetas.
@@ -111,6 +115,12 @@ \subsection{\textit{Tri-Training}}
111115

112116
El \textit{Tri-Training} se define como una nueva aproximación de \textit{Co-Training}. \textit{Tri-Training} no necesita varias <<vistas significativas>> de los datos, tampoco requiere el empleo de múltiples algoritmos de aprendizaje supervisado cuyas hipótesis dividen el espacio de instancias en un conjunto de clases de equivalencia. El \textit{Tri-Training} por tanto emplea tres clasificadores, a diferencia de los dos utilizados anteriormente, esta opción resuelve la dificultad de determinar cómo etiquetar las instancias no etiquetadas y generar la hipótesis final, lo que mejora enormemente la eficiencia del algoritmo. Junto con la capacidad de generalización resultante de la combinación de los tres clasificadores.
113117

118+
Los tres clasificadores, $h_1\text{, } h_2 \text{ y } h_3$, son entrenados inicialmente con todo el conjunto de datos etiquetado. Seguidamente, a cualquier instancia no etiquetada, se la podrá asignar una etiqueta siempre y cuando hay al menos dos clasificadores de acuerdo con la asignación, \textit{i.e.} $label(x) = h_i(x) = h_j(x)$, ver~ algoritmo~\ref{alg:Tri-Training}. Puede darse el caso de que dos clasificadores acierten en la predicción y la etiqueta sea considerada correcta, pero para el tercer clasificador sea ruido, incluso en el peor caso, el aumento del ruido en el proceso de clasificación puede mitigarse si el número de instancias recién etiquetadas es significativo (bajo condiciones específicas)~\cite{zhou2005tri}.
119+
120+
Debido a que \textit{Tri-Training} no asume la existencia de clases <<redundantes>>, se necesita un cierto grado de diversidad en los clasificadores. Esta diversidad es alcanzada mediante la manipulación del conjunto de datos etiquetado. Los clasificadores iniciales son entrenados con los datos generados mediante \textit{bootstrap}\footnote{En el campo de la estadística, se define como un método el cual consiste en la extracción de datos de muestra repetidamente con reemplazo de un conjunto de datos, con el fin de estimar un parámetro de la población.} del conjunto de datos etiquetados original. Estos clasificadores son depurados en el proceso iterativo del algoritmo, produciendo la hipótesis final mediante mayoría simple.
121+
122+
Dado que \textit{Tri-Training} no impone ninguna restricción al algoritmo de aprendizaje supervisado ni emplea un proceso de validación cruzada que requiera mucho tiempo de cómputo, tanto su aplicabilidad como su eficiencia demuestran ser mejores que otras versiones de \textit{Co-Training}.
123+
114124
\begin{algorithm}[H]
115125
\KwIn{Conjunto de entrenamiento $L$ y $U$ de datos etiquetados y no etiquetados, respectivamente}
116126
\KwIn{\textit{Learn}\tcc*[f]{algoritmo de aprendizaje}}
@@ -156,12 +166,6 @@ \subsection{\textit{Tri-Training}}
156166
\caption{\textit{Tri-Training}}\label{alg:Tri-Training}
157167
\end{algorithm}
158168

159-
Los tres clasificadores, $h_1\text{, } h_2 \text{ y } h_3$, son entrenados inicialmente con todo el conjunto de datos etiquetado. Seguidamente, a cualquier instancia no etiquetada, se la podrá asignar una etiqueta siempre y cuando hay al menos dos clasificadores de acuerdo con la asignación, \textit{i.e.} $label(x) = h_i(x) = h_j(x)$, ver~ algoritmo~\ref{alg:Tri-Training}. Puede darse el caso de que dos clasificadores acierten en la predicción y la etiqueta sea considerada correcta, pero para el tercer clasificador sea ruido, incluso en el peor caso, el aumento del ruido en el proceso de clasificación puede mitigarse si el número de instancias recién etiquetadas es significativo (bajo condiciones específicas)~\cite{zhou2005tri}.
160-
161-
Debido a que \textit{Tri-Training} no asume la existencia de clases <<redundantes>>, se necesita un cierto grado de diversidad en los clasificadores. Esta diversidad es alcanzada mediante la manipulación del conjunto de datos etiquetado. Los clasificadores iniciales son entrenados con los datos generados mediante \textit{bootstrap}\footnote{En el campo de la estadística, se define como un método el cual consiste en la extracción de datos de muestra repetidamente con reemplazo de un conjunto de datos, con el fin de estimar un parámetro de la población.} del conjunto de datos etiquetados original. Estos clasificadores son depurados en el proceso iterativo del algoritmo, produciendo la hipótesis final mediante mayoría simple.
162-
163-
Dado que \textit{Tri-Training} no impone ninguna restricción al algoritmo de aprendizaje supervisado ni emplea un proceso de validación cruzada que requiera mucho tiempo de cómputo, tanto su aplicabilidad como su eficiencia demuestran ser mejores que otras versiones de \textit{Co-Training}.
164-
165169
\subsection{\textit{Democratic Co-Training}}
166170
Zhou~\cite{zhou2004democratic} en 2004 presentó el algoritmo \textit{Democratic Co-Learning}. El algoritmo a diferencia de sus <<homónimos>>, trabaja con múltiples algoritmos de aprendizaje supervisado, en lugar de múltiples clases significativas, permitiendo que se etiqueten nuevas instancias entre ellos. Debido a que diferentes algoritmos de aprendizaje poseen diferentes sesgos, seleccionar la clase más votada por la mayoría produce mejores predicciones.
167171

@@ -401,7 +405,7 @@ \section{Técnicas de selección de instancias}\label{sec:tecnicas-seleccion-ins
401405
\begin{center}
402406
\begin{tabular}{lcc}
403407
\toprule
404-
\textbf{Método} & \textbf{\begin{tabular}[]{@{}c@{}}Complejidad\\Computacional\end{tabular}} & \textbf{Referencia} \\
408+
\textbf{Método} & \textbf{\begin{tabular}[]{@{}c@{}}Complejidad\\computacional\end{tabular}} & \textbf{Referencia} \\
405409
\toprule
406410
\rowcolor[HTML]{EFEFEF}
407411
Edición de Wilson (ENN) & $O(n^2)$ &~\cite{wilson1972asymptotic}\\
@@ -414,7 +418,7 @@ \section{Técnicas de selección de instancias}\label{sec:tecnicas-seleccion-ins
414418
\textit{Drecremental Reduction Optimization Procedure} (DROP) & $O(n^2)$ &~\cite{wilson2000reduction} \\ \bottomrule
415419
\end{tabular}
416420
\end{center}
417-
\caption{Algunos métodos de selección de instancias.}
421+
\caption{Resumen de la complejidad computacional de algunos métodos clásicos de selección de instancias.}
418422
\label{tab:instance-selection-methods}
419423
\end{table}
420424

@@ -583,7 +587,7 @@ \subsubsection{Algoritmos de selección de instancias}\label{subsubsec:Instance-
583587

584588
El objetivo principal de esta modificación es reforzar la condición que debe cumplir el subconjunto reducido para maximizar la aproximación a la frontera de decisión. Quedando definido el algoritmo, ver algoritmo~\ref{alg:Barandela-MSS}, como una alternativa eficiente al algoritmo propuesto por Ritter \textit{et al.}, siendo capaz de seleccionar mejores instancias (más cercanas a la frontera de decisión).
585589

586-
El criterio que sigue \textit{MSS} para determinar la frontera de decisión es la distancia al enemigo más cercano. Con esta medida se puede definir el mejor subconjunto selectivo como aquel que contiene el mejor vecino relacionado para cada instancia en el $TS$. (Mejor $\iff$ Menor distancia a su enemigo más cercano).
590+
El criterio que sigue \textit{MSS} para determinar la frontera de decisión es la distancia al enemigo más cercano. Con esta medida se puede definir el mejor subconjunto selectivo como aquel que contiene el mejor vecino relacionado para cada instancia en el $TS$. (Será mejor cuanto menor distancia a su enemigo más cercano posea).
587591

588592
\begin{algorithm}[H]
589593
\KwIn{Conjunto de entrenamiento $X$}
@@ -623,7 +627,7 @@ \subsubsection{Algoritmos de selección de instancias}\label{subsubsec:Instance-
623627
\begin{itemize}
624628
\item \textit{DROP1}. Eliminará un objeto $P$ de $S$ si sus socios en $S$ se clasifican correctamente sin $P$, \textit{i.e.} la ausencia de $P$ no impide la correcta clasificación del resto de prototipos.
625629
\item \textit{DROP2}. Eliminará un objeto $P$ de $S$ si los socios que tiene $P$ en $TS$ se clasifican correctamente sin $P$, \textit{i.e.}, verificará el efecto que causa esta eliminación sobre la muestra original. Previo al proceso de eliminación de objetos $P$, ordena los prototipos a tratar en orden a su enemigo más cercano, permitiendo que los primeros prototipos que se van a tratar serán aquellos más alejados de las fronteras de decisión, ergo las más prescindibles.
626-
\item \textit{DROP3}. Lo primero de todo realiza un filtrado de ruido, para ello aplica la edición de Wilson, ver algoritmo~\ref{alg:Wilson-ENN}. Seguidamente aplica el algoritmo \textit{DROP2}, ver algoritmo~\ref{alg:DROP3}
630+
\item \textit{DROP3}. Lo primero de todo realiza un filtrado de ruido, para ello aplica la edición de Wilson, ver algoritmo~\ref{alg:Wilson-ENN}. Seguidamente aplica el algoritmo \textit{DROP2}, ver algoritmo~\ref{alg:DROP3}.
627631
\item \textit{DROP4}. Aplica un filtro de ruido diferente, en este casos consistirá en eliminar un prototipo solo si su eliminación no provoca que alguna otra instancia sea mal clasificada.
628632
\item \textit{DROP5}. Modificación sobre \textit{DROP2}, en este algoritmo el proceso de eliminación de objetos comienza por aquellos más cercanos a sus enemigos.
629633
\end{itemize}

docs/tex/4_Tecnicas_y_herramientas.tex

Lines changed: 16 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -43,7 +43,7 @@ \subsubsection{Artifacts}
4343
\subsubsection{Actores, roles y responsabilidades}
4444
Dentro de un equipo que sigue la metodología \textit{scrum} encontramos diferentes actores, como ya se ha comentado el equipo de desarrollo suele estar compuesto por entre cinco y diez personas, además del \textit{Scrum Master} y el \textit{Product Owner}~\cite{julioroche_2020}.
4545
\begin{itemize}
46-
\item \textbf{\textit{Product Owner.}} Encargado de optimizar y maximizar el valor del producto, es la persona encargada de gestionar las prioridades del \textit{product backlog}. Una de sus principales tareas es la de intermediario con los \textit{stakeholders}, partes interesadas, del proyecto; junto con recoger los requerimientos de los clientes. Es habitual que esta figura sea representante del negocio, con lo que aumenta su valor.
46+
\item \textbf{\textit{Product Owner.}} Encargado de optimizar y maximizar el valor del producto, es la persona encargada de gestionar las prioridades del \textit{product backlog}. Una de sus principales tareas es la de ser intermediario con los \textit{stakeholders}, partes interesadas, del proyecto; junto con recoger los requerimientos de los clientes. Es habitual que esta figura sea representante del negocio, con lo que aumenta su valor.
4747

4848
Para cada \textit{sprint} debe de marcar el objetivo de éste de manera clara y acordada con el equipo de desarrollo, lo cual hará que el producto vaya incrementando constantemente su valor. Para que todo fluya como debe, esta figura tiene que tener el ``poder'' de tomar decisiones que afecten al producto.
4949

@@ -82,10 +82,10 @@ \subsection{Investigación}
8282
\subsubsection{\textit{Ranking} medio}
8383
En el campo de la estadística, los \textit{rankings} permiten la transformación de datos en función de su posición cuando el conjunto de datos es ordenado.
8484

85-
El \textit{ranking} medio se calcula de la siguiente manera: para una serie de conjuntos de datos los cuales han sido utilizado por diferentes clasificadores, cada uno de estos habrá reportado unos resultados para cada uno de los conjuntos de datos y sobre éstos últimos se puede obtener un \textit{ranking}, el \textit{ranking} medio consiste en calcular la media de los \textit{rankings} reportados para cada conjunto de datos por cada clasificador.
85+
Para cada conjunto de datos se ordenan los resultados de cada clasificador de tal modo que al mejor clasificador se le da 1, al segundo mejor 2 y así sucesivamente. El \textit{ranking} medio, por lo tanto, es calculado mediante el promedio de los \textit{rankings} de cada clasificador para los distintos conjuntos de datos
8686

8787
\subsubsection{\textit{Test} estadístico}
88-
Mecanismo para tomar decisiones cuantitativas sobre un proceso o una serie de estos. El objetivo es determinar si hay suficientes pruebas para <<rechazar>> una hipótesis sobre el proceso. La conjetura se denomina hipótesis nula. No rechazarla puede ser un resultado si se quiere seguir actuando como si se <<creyera>> que la hipótesis nula es cierta. O puede ser un resultado decepcionante, que posiblemente indique que aún no se poseen suficientes datos para <<demostrar>> algo rechazando la hipótesis nula~\cite{lucon2018new}~\cite{nist}.
88+
Mecanismo para tomar decisiones cuantitativas sobre un proceso o una serie de estos. El objetivo es determinar si hay suficientes pruebas para <<rechazar>> una hipótesis sobre el proceso. La conjetura se denomina hipótesis nula. Una hipótesis puede no ser rechazada en tanto en cuanto se desee seguir investigando bajo la suposición de que la hipótesis nula es cierta. O puede ser un resultado decepcionante, que posiblemente indique que aún no se poseen suficientes datos para <<demostrar>> algo rechazando la hipótesis nula~\cite{lucon2018new}~\cite{nist}.
8989

9090
\section{Herramientas}\label{sec:herramientas}
9191
\subsection{UBUMLaaS}\label{UBUMLaaS}
@@ -116,21 +116,31 @@ \subsection{Weka}\label{subsec:Weka}
116116

117117
Página web de la herramienta: \url{https://waikato.github.io/weka-wiki/}
118118

119+
\subsection{Orange3}
120+
\texttt{Orange} es un \textit{software} de minería de datos basado en componentes. Ofrece un entorno para la creación, de manera rápida y sencilla, prototipos de los algoritmos más comunes de ML y casos de prueba. Un gran número de los componentes que lo conforma están escritos en Python.
121+
122+
Entre los objetivos de \texttt{Orange} figura que sea una plataforma para la experimentación basada en selección, modelado predictivo y sistemas de aprobación. Permitiendo ser utilizada en campos como la bioinformática, el análisis del genoma, biomedicina y la enseñanza. Desde el punto de vista de la educación ofrece un apoyo en la enseñanza de la minería de datos y el aprendizaje automático.
123+
124+
Página web de la herramienta: \url~{https://orangedatamining.com/}
125+
126+
119127
\subsection{PyCharm}
120128

121129
PyCharm es uno de los IDEs\footnote{Entorno de desarrollo integrado, sistema de software para el diseño de aplicaciones que combina herramientas comunes para desarrolladores en una sola interfaz gráfica.} con soporte para Python más completos y exhaustivos, convirtiéndolo en uno de los más populares IDEs. Este éxito proviene en gran medida de que la empresa desarrolladora de este \textit{software} es JetBrains, el desarrollador detrás del popular IDE Intellij IDEA, uno de los 3 IDEs más grandes de Java.
122130

123131
Disponible como una aplicación multiplataforma, PyCharm es compatible con los siguientes sistemas operativos: Windows, Linux y MacOS. Proporciona soporte para las versiones de Python 2.x (descontinuada desde 2021) y 3.x. Provee de un elevado número de módulos, paquetes y herramientas diseñadas para optimizar el desarrollo del código, al mismo tiempo que reduce el esfuerzo necesario para ello. Siendo totalmente personalizable en función de los requisitos de desarrollo y las preferencias personales. Cuenta con:
124132
\begin{itemize}
133+
\tightlist
125134
\item \textit{Debugger} gráfico.
126135
\item Validación de pruebas unitarias.
127136
\item Soporte integrado para sistemas de control de versiones, VCS.
128137
\item Soporte para análisis de datos con Anaconda.
129138
\end{itemize}
130-
PyCharm permite trabajar con múltiples bases de datos directamente sin necesidad de utilizar terceras aplicaciones en forma de intermediarias. A pesar de que está diseñado para Python, tiene soporte para HTML, CSS, Javascript,\dots
139+
PyCharm permite trabajar con múltiples bases de datos directamente sin necesidad de utilizar terceras aplicaciones en forma de intermediarias. A pesar de que está diseñado para Python, tiene soporte para HTML, CSS, Javascript, entre otros.
131140

132141
Características y ventajas de PyCharm:
133142
\begin{itemize}
143+
\tightlist
134144
\item Editor de código inteligente.
135145
\item Permite integrar nuevas herramientas.
136146
\item Soporte integrado para \textit{Machine Learning} y \textit{Data Science}.
@@ -152,6 +162,7 @@ \subsection{PyCharm}
152162

153163
Entre las principales desventajas se encuentran:
154164
\begin{itemize}
165+
\tightlist
155166
\item Requisitos mínimos elevados.
156167
\item Precio de la licencia de uso elevado.
157168
\item Curva de aprendizaje.
@@ -177,6 +188,7 @@ \subsection{FileZilla}
177188
\subsection{GitKraken}
178189
GitKraken es un potente \textit{software} diseñado para realizar de forma gráfica todas aquellas tareas que serían realizadas mediante Git en la consola de comandos tradicional. Es una herramienta multiplataforma, con soporte para Windows, Linux y MacOS; permite de forma sencilla mantenerse al tanto de repositorios, \textit{braches}, etiquetas, históricos, realizar \textit{commits}, etcétera. Entre sus características más relevantes destacamos:
179190
\begin{itemize}
191+
\tightlist
180192
\item Soporte para múltiples perfiles.
181193
\item Integración nativa con GitHub Enterprise, GitLab, Bitbucket y VCTS.
182194
\item Edición y visualización de ramas, \textit{merging}, histórico de \textit{commits}.

0 commit comments

Comments
 (0)