Skip to content

Commit 885aa0f

Browse files
Merge pull request #220 from dpr1005/development
Cleaned repo
2 parents dad5fe1 + 16088a6 commit 885aa0f

19 files changed

+152
-98
lines changed

README.md

Lines changed: 32 additions & 35 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,7 @@ alt="ISMSSL by DNX"></a>
99
<br>
1010
</h1>
1111

12+
---
1213
<h4 align="center">Instance selection methods for semi-supervised learning.</h4>
1314
<div align="center">
1415
<img alt="Codacy coverage" src="https://img.shields.io/codacy/coverage/c336db4b8f9b4196bc802a544a18b83b?logo=codacy">
@@ -27,61 +28,57 @@ alt="ISMSSL by DNX"></a>
2728
<img alt="GitHub repo size" src="https://img.shields.io/github/repo-size/dpr1005/Semisupervised-learning-and-instance-selection-methods?color=purple&logo=github">
2829
</div>
2930

30-
31-
<br>
32-
33-
<br>
31+
---
3432
<p align="center">
35-
<a href="#key-features">Key Features</a> •
36-
<a href="#setup">Setup</a> •
37-
<a href="#usage-guide">Usage guide</a> •
38-
<a href="#download">Download</a> •
39-
<a href="#credits">Credits</a> •
40-
<a href="#related">Related</a> •
41-
<a href="#license">License</a>
33+
<a href="#description">Project Description</a> •
34+
<a href="#download-and-installation">Download and Installation</a> •
35+
<a href="#dependencies">Dependencies</a> •
36+
<a href="#support">Support</a>
4237
</p>
4338

4439

40+
---
41+
## Description
42+
This project has an implementation of common algorithms in the literature, both instance selection algorithms and semi-supervised learning algorithms.
4543

46-
## Key Features
47-
48-
* TBD
49-
50-
## Setup
51-
52-
TBD
44+
Among the objectives of the project is that the implemented algorithms are correct and complete with their respective original papers in which they were presented.
5345

54-
## Usage guide
46+
Likewise, there are multiple experiment configuration files for the aforementioned verification, and for the realization of a research process on the behavior of semi-supervised learning algorithms when noise filtering is performed.
5547

56-
TBD
48+
---
49+
## Download and installation
50+
IS-SSL is distributed under two libraries, both are available in their last
51+
versions in PIP.
52+
- Instance Selection Algorithms. [PIP](https://pypi.org/project/InstanceSelectionDNX/).
53+
54+
````bash
55+
pip install InstanceSelectionDNX
56+
````
5757

58+
- Semi-Supervised Algorithms. [PIP](https://pypi.org/project/SemiSupervisedLearningDNX/).
59+
````bash
60+
pip install SemiSupervisedLearningDNX
61+
````
5862

59-
## Download
63+
Being the nature a Python project, it is easily importable from within the
64+
repo and its [releases](https://github.com/dpr1005/Semisupervised-learning-and-instance-selection-methods/releases).
6065

61-
TBD
6266

63-
## Credits
67+
---
68+
## Dependencies
6469

6570
This software uses the following open source packages:
6671

67-
- [scikit-learn](https://sklearn.org)
6872
- [NumPy](https://numpy.org)
73+
- [Pandas](https://pandas.pydata.org/)
74+
- [Scikit-Learn](https://sklearn.org)
75+
- [Scipy](https://scipy.org)
6976

70-
71-
## Related
72-
73-
TBD
74-
77+
---
7578
## Support
76-
7779
<a href="https://buymeacoffee.com/danielpuente" target="_blank"><img src="https://www.buymeacoffee.com/assets/img/custom_images/purple_img.png" alt="Buy Me A Coffee" style="height: 41px !important;width: 174px !important;box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;-webkit-box-shadow: 0px 3px 2px 0px rgba(190, 190, 190, 0.5) !important;" ></a>
7880

7981

80-
81-
## License
82-
83-
MIT
84-
8582
---
8683

8784
> GitHub [@dpr1005](https://github.com/dpr1005) &nbsp;&middot;&nbsp;

docs/README.md

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

docs/anexos.pdf

135 Bytes
Binary file not shown.

docs/bibliografia.bib

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -517,4 +517,6 @@ @article{wu2018self
517517
publisher={Elsevier}
518518
}
519519

520-
@misc{SCRUMWIKI, title={Scrum (desarrollo de software)}, url={https://es.wikipedia.org/wiki/Scrum-(desarrollo-de-software)}, note={https://es.wikipedia.org/wiki/Scrum-(desarrollo-de-software)}, year={2022}}
520+
@misc{SCRUMWIKI, title={Scrum (desarrollo de software)}, url={https://es.wikipedia.org/wiki/Scrum-(desarrollo-de-software)}, note={https://es.wikipedia.org/wiki/Scrum-(desarrollo-de-software)}, year={2022}}
521+
522+
@misc{SKLEARNGUIDELINES, title={Scikit-Learn Coding guidelines}, url={https://scikit-learn.org/stable/developers/develop.html#coding-guidelines}, year={2022}, author={scikit-learn developers}}
506 KB
Loading

docs/img/readme.txt

Lines changed: 0 additions & 1 deletion
This file was deleted.

docs/memoria.pdf

377 KB
Binary file not shown.

docs/memoria.tex

Lines changed: 20 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -65,12 +65,30 @@
6565
\FloatBarrier
6666
}
6767

68-
\newcommand{\imagenflotante}[2]{
68+
\newcommand{\imagenRuta}[3]{
69+
\begin{figure}[!h]
70+
\centering
71+
\includegraphics[width=0.9\textwidth]{#1}
72+
\caption{#2}\label{fig:#3}
73+
\end{figure}
74+
\FloatBarrier
75+
}
76+
77+
\newcommand{\imagenFlotante}[3]{
6978
\begin{figure}%[!h]
7079
\centering
7180
\includegraphics[width=0.9\textwidth]{#1}
72-
\caption{#2}\label{fig:#1}
81+
\caption{#2}\label{fig:#3}
82+
\end{figure}
83+
}
84+
85+
\newcommand{\imagenAncho}[4]{
86+
\begin{figure}[H]
87+
\centering
88+
\includegraphics[width=#4\textwidth]{#1}
89+
\caption{#2}\label{fig:#3}
7390
\end{figure}
91+
\FloatBarrier
7492
}
7593

7694

Lines changed: 24 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,26 @@
11
\capitulo{2}{Objetivos del proyecto}
2+
Los principales objetivos del proyecto son cuatro:
23

3-
Este apartado explica de forma precisa y concisa cuales son los objetivos que se persiguen con la realización del proyecto. Se puede distinguir entre los objetivos marcados por los requisitos del software a construir y los objetivos de carácter técnico que plantea a la hora de llevar a la práctica el proyecto.
4+
\begin{enumerate}
5+
\item Diseño e implementación de una biblioteca con los algoritmos de selección de instancias más comunes en la literatura.
6+
\item Diseño e implementación de una biblioteca con una serie de algoritmos de aprendizaje semi-supervisado.
7+
\item Integración de las bibliotecas con la plataforma de \texttt{MLaaS} de la Universidad de Burgos (\texttt{UBUMLaaS}).
8+
\item Diseño y puesta en producción de la parte de administración de \texttt{UBUMLaaS}.
9+
\end{enumerate}
10+
11+
12+
El enfoque que se le debe dar a las bibliotecas, en adelante \texttt{IS-SSL}\footnote{\textit{Instance Selection - Semi-Supervised Learning.}}, tanto de selección de instancias como de aprendizaje semi-supervisado, deberá permitir de manera sencilla la inclusión o añadido de nuevos algoritmos en un futuro, no siendo necesaria realizar grandes refactorizaciones para ello. Mediante ello se obtendrá un producto escalable y con un mantenimiento relativamente sencillo.
13+
14+
\texttt{UBULMLaaS} fue un proyecto desarrollado por ADMIRABLE y se paralizó en 2019, por lo que necesitará una actualización de librerías, interfaz gráfica, seguridad y actualización de la base de datos; entre otras cosas. Independientemente de los cambios, debe primar la sencillez de uso que la aplicación, de forma que la curva de aprendizaje sea mínima.
15+
16+
\subsection{Objetivos técnicos}
17+
Además de lo anteriormente mencionado, el proyecto cuenta con una serie de objetivos técnicos que se pueden resumir en:
18+
\begin{itemize}
19+
\item Los algoritmos imeplementados en \texttt{IS-SSL} deberán seguir la guía de estilo de \textit{Scikit-Learn}~\cite{SKLEARNGUIDELINES}, permitiendo a la comunidad científica acostumbrada al uso de la mencionada biblioteca en \texttt{Python}, hacer uso de \texttt{IS-SSL} de igual manera.
20+
\item Los algoritmos deberán de ser validados de alguna manera, ya sea con la literatura o mediante pares, para asegurar un correcto funcionamiento.
21+
\item \texttt{UBUMLaaS} procederá a tener distintos tipos o categorías de usuarios, debiendo dejar <<la puerta abierta>> a nuevos tipos de usuarios en el futuro.
22+
\item \texttt{UBUMLaaS} podrá ser portado y desplegado sobre \textit{bare metal} o mediante contenedores de Docker en cualquier sistema compatible.
23+
\item \texttt{UBUMLaaS} debe mantener todas sus funcionalidades previas a este proyecto.
24+
\item \texttt{UBUMLaaS} mostrará estadísticas generadas en tiempo real, se deberá de sortear la problemática de la concurrencia de acceso a registros de la base de datos, así como ficheros temporales.
25+
\item \texttt{UBUMLaaS} posee su propia API REST escrita en Python y emplea el \textit{framework web} Flask. No se deberá sobrecargar su uso, la carga de trabajo deberá estar balanceada entre cliente y servidor.
26+
\end{itemize}

docs/tex/3_Conceptos_teoricos.tex

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,8 +3,8 @@
33
El proyecto tiene una relación directa con la minería de datos y los conceptos que lo rodean.
44

55
\section{Aprendizaje automático (\textit{machine learning})}\label{sec:machine-learning}
6-
En~\cite{sanchez_2020} se define el aprendizaje automático (\textit{machine learning}) como una rama dentro del campo de la Inteligencia Artificial que proporciona a los sistemas la capacidad de aprender y mejorar de manera automática, a partir de la experiencia. Estos sistemas transforman los datos en información, y con esta información pueden tomar decisiones. Este tipo de modelos se crean a base del uso masivo de datos. Cuando se dispone de los datos suficientes para entrenar un modelo comienza el proceso de aprendizaje. El objetivo de este aprendizaje es descubrir patrones ocultos en los datos. En muchas ocasiones el resultado del aprendizaje, el modelo, es una función que dadas unos datos de entrada clasifica o predice correctamente una salida. Como se puede ver en la Figura~\ref{fig:../img/memoria/Machine-learning-overview.pdf} el aprendizaje automático, \textit{machine learning}, posee diferentes aproximaciones, siendo la interfaz diferenciadora entre ellas la forma de uso de las instancias.
7-
\imagenflotante{../img/memoria/Machine-learning-overview.pdf}{\textit{Machine learning overview}~\cite{technovert_2020}}
6+
En~\cite{sanchez_2020} se define el aprendizaje automático (\textit{machine learning}) como una rama dentro del campo de la Inteligencia Artificial que proporciona a los sistemas la capacidad de aprender y mejorar de manera automática, a partir de la experiencia. Estos sistemas transforman los datos en información, y con esta información pueden tomar decisiones. Este tipo de modelos se crean a base del uso masivo de datos. Cuando se dispone de los datos suficientes para entrenar un modelo comienza el proceso de aprendizaje. El objetivo de este aprendizaje es descubrir patrones ocultos en los datos. En muchas ocasiones el resultado del aprendizaje, el modelo, es una función que dadas unos datos de entrada clasifica o predice correctamente una salida. Como se puede ver en la Figura~\ref{fig:Machine-learning-overview} el aprendizaje automático, \textit{machine learning}, posee diferentes aproximaciones, siendo la interfaz diferenciadora entre ellas la forma de uso de las instancias.
7+
\imagenFlotante{../img/memoria/Machine-learning-overview.pdf}{\textit{Machine learning overview}~\cite{technovert_2020}.}{Machine-learning-overview}
88

99
\subsection{Aprendizaje supervisado}\label{subsec:Aprendizaje-Supervisado}
1010
El aprendizaje automático puede ser resumido como <<aprender de ejemplos>>. Al programa se le proporcionan dos conjuntos de datos, uno de entrenamiento y otro de validación~\cite{learned2014introduction}. El objetivo es simple, debe de <<aprender>> en función del conjunto de datos etiquetado proporcionado como entrenamiento para posteriormente identificar las correspondientes etiqueta/s de cada instancia del conjunto de validación con la mayor precisión posible.
@@ -406,8 +406,8 @@ \section{Técnicas de selección de instancias}\label{sec:tecnicas-seleccion-ins
406406
\toprule
407407
Edición de Wilson (ENN) & $O(n^2)$ &~\cite{wilson1972asymptotic}\\
408408
\rowcolor[HTML]{EFEFEF}
409-
Condensado de Hart (CNN) & $O(n^2)$ &~\cite{hart1968condensed}\\
410-
Condensado Reducido (RNN) & $O(n^2)$ &~\cite{gates1972reduced} \\
409+
Condensado de Hart (CNN) & $O(n^3)$ &~\cite{hart1968condensed}\\
410+
Condensado Reducido (RNN) & $O(n^3)$ &~\cite{gates1972reduced} \\
411411
\rowcolor[HTML]{EFEFEF}
412412
\textit{Iterative Case Filtering} (ICF) & $O(n^2)$ &~\cite{brighton2002advances}\\
413413
Subconjunto Selectivo Modificado (MSS) & $O(n^2)$ &~\cite{barandela2005decision}\\

0 commit comments

Comments
 (0)