Skip to content

Portcanto és un projecte de simulació d'un trajecte en bicicleta. S'ha definit 4 tipus de ciclistes que es diferencien en el temps que tarda a fer el trajecte. L'objectiu és descobrir els 4 patrons amb l'algoritme de clustering KMeans.

License

Notifications You must be signed in to change notification settings

JAVI-CC/python-ml-portcanto

Repository files navigation

Python Machine Learning Portcanto

python-ml-portcanto

Taula de continguts

  1. Portcanto
  2. Execució
  3. Docker
  4. Clustering
  5. MLflow
  6. Documentació del codi
  7. Anàlisi del codi estàtic
  8. Testing
  9. Llicència

Portcanto

Portcanto és un projecte de simulació d'un trajecte en bicicleta. S'ha definit 4 tipus de ciclistes que es diferencien en el temps que tarda a fer el trajecte.

L'objectiu és descobrir els 4 patrons amb l'algoritme de clustering KMeans.

Es vol crear dades sintètiques per poder fer un anàlisi de les dades amb IA (bàsicament un problema de clustering).

Consta de dos arxius principals:

  • Generar dataset: Consisteix a generar diferents dades de cada tipus de ciclista i emmagatzemar totes les dades en un arxiu csv.

  • Cluster ciclistes: Consisteix principalment a realitzar un anàlisi exploratori de les dades del dataset, generar una imatge per poder visualitzar els diferents clusters, generació d'informes, classificació de noves dades i etc.

Consta també de diferents carpetes i scripts relacionats amb l'anàlisi de les dades i la solució amb IA del problema del clustering.


Execució

Descarregar i ficar-se dins del projecte:

$ git clone https://github.com/JAVI-CC/python-ml-portcanto

$ cd python-ml-portcanto

Ara pots crear un entorn virtual fent:

$ python -m venv venv
 o bé:
$ virtualenv venv

$ source venv/bin/activate

i tot seguit instal·lar els mòduls necessaris:

$ pip install --no-cache-dir -r requirements.txt

Per executar:

$ python generardataset.py
$ python clustersciclistes.py

Docker 🐳

Enllaç del repositori de la imatge: https://hub.docker.com/r/javi98/python-ml-portcanto

Contenidors:

  • python:3.12 - :5000 # Interfície web MLflow

Execució:

$ git clone https://github.com/JAVI-CC/python-ml-portcanto
$ cd python-ml-portcanto
$ docker compose up -d
$ docker compose exec app python generardataset.py
$ docker compose exec app python clustersciclistes.py

Una vegada que estigui desplegat el contenidor correctament, per defecte ja es troba arrencat la interfície web de MLflow i pots accedir a la interfície web de MLflow a través de l'url: http://localhost:5000


Clustering

En l'arxiu clustersciclistes.py es resol el problema de trobar els clústers per a les dades simulades.

S'obtenen 4 clústers.

Clusters


MLflow

MLflow es tracta d'una plataforma per optimitzar el desenvolupament d'aprenentatge automàtic, que inclou el seguiment d'experiments i l'ús compartit i la implementació de models.

Per generar l'experiment: (Per defecte ja es troba generat l'experiment.)

$ python mlflowtracking-K.py

Per arrencar la interfície web:

$ mlflow ui

Url per accedir a la interfície web: http://localhost:5000


Documentació del codi

Pots veure la documentació del codi generat dins del directori docs.

Per generar la documentació del codi: (Per defecte ja es troba generat la documentació del codi.)

$ python -m pydoc -w ./generardataset.py
$ python -m pydoc -w ./clustersciclistes.py
 o bé:
$ python gendocs.py

Anàlisi del codi estàtic

Per fer un anàlisi del codi estàtic:

$ cd pylint
$ pylint ../generardataset.py
$ pylint ../clustersciclistes.py

Testing

Per executar tots els tests del projecte:

$ python -m unittest discover -s tests

Llicència

JAVI-CC - IOC (2024) Llicència MIT. LICENSE.txt per més detalls

About

Portcanto és un projecte de simulació d'un trajecte en bicicleta. S'ha definit 4 tipus de ciclistes que es diferencien en el temps que tarda a fer el trajecte. L'objectiu és descobrir els 4 patrons amb l'algoritme de clustering KMeans.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published