You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
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.
63
63
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}.
65
65
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>>.
66
66
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
+
67
71
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.
68
72
\begin{enumerate}
69
73
\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.
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.
113
117
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
+
114
124
\begin{algorithm}[H]
115
125
\KwIn{Conjunto de entrenamiento $L$ y $U$ de datos etiquetados y no etiquetados, respectivamente}
116
126
\KwIn{\textit{Learn}\tcc*[f]{algoritmo de aprendizaje}}
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
-
165
169
\subsection{\textit{Democratic Co-Training}}
166
170
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.
167
171
@@ -401,7 +405,7 @@ \section{Técnicas de selección de instancias}\label{sec:tecnicas-seleccion-ins
\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.}
418
422
\label{tab:instance-selection-methods}
419
423
\end{table}
420
424
@@ -583,7 +587,7 @@ \subsubsection{Algoritmos de selección de instancias}\label{subsubsec:Instance-
583
587
584
588
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).
585
589
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).
587
591
588
592
\begin{algorithm}[H]
589
593
\KwIn{Conjunto de entrenamiento $X$}
@@ -623,7 +627,7 @@ \subsubsection{Algoritmos de selección de instancias}\label{subsubsec:Instance-
623
627
\begin{itemize}
624
628
\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.
625
629
\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}.
627
631
\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.
628
632
\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.
Copy file name to clipboardExpand all lines: docs/tex/4_Tecnicas_y_herramientas.tex
+16-4Lines changed: 16 additions & 4 deletions
Original file line number
Diff line number
Diff line change
@@ -43,7 +43,7 @@ \subsubsection{Artifacts}
43
43
\subsubsection{Actores, roles y responsabilidades}
44
44
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}.
45
45
\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.
47
47
48
48
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.
49
49
@@ -82,10 +82,10 @@ \subsection{Investigación}
82
82
\subsubsection{\textit{Ranking} medio}
83
83
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.
84
84
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
86
86
87
87
\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}.
Página web de la herramienta: \url{https://waikato.github.io/weka-wiki/}
118
118
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
+
119
127
\subsection{PyCharm}
120
128
121
129
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.
122
130
123
131
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:
124
132
\begin{itemize}
133
+
\tightlist
125
134
\item\textit{Debugger} gráfico.
126
135
\item Validación de pruebas unitarias.
127
136
\item Soporte integrado para sistemas de control de versiones, VCS.
128
137
\item Soporte para análisis de datos con Anaconda.
129
138
\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.
131
140
132
141
Características y ventajas de PyCharm:
133
142
\begin{itemize}
143
+
\tightlist
134
144
\item Editor de código inteligente.
135
145
\item Permite integrar nuevas herramientas.
136
146
\item Soporte integrado para \textit{Machine Learning} y \textit{Data Science}.
@@ -152,6 +162,7 @@ \subsection{PyCharm}
152
162
153
163
Entre las principales desventajas se encuentran:
154
164
\begin{itemize}
165
+
\tightlist
155
166
\item Requisitos mínimos elevados.
156
167
\item Precio de la licencia de uso elevado.
157
168
\item Curva de aprendizaje.
@@ -177,6 +188,7 @@ \subsection{FileZilla}
177
188
\subsection{GitKraken}
178
189
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:
179
190
\begin{itemize}
191
+
\tightlist
180
192
\item Soporte para múltiples perfiles.
181
193
\item Integración nativa con GitHub Enterprise, GitLab, Bitbucket y VCTS.
182
194
\item Edición y visualización de ramas, \textit{merging}, histórico de \textit{commits}.
0 commit comments