Paquete de utilidades para el servicio de clusterizado.
Project description
clusters-ml-service
Este repositorio contiene notebooks y scripts relacionados con el servicio de clustering utilizando Machine Learning.
Insumos para este servicio
A continuación, se describe la estructura de los archivos de entrada requeridos para procesar y clusterizar ubicaciones geográficas. El sistema recibe dos tipos de archivos:
- Un archivo JSON con los parámetros de configuración.
- Un archivo CSV o Parquet con las coordenadas geográficas de los puntos a clusterizar.
1. Formato del archivo JSON de configuración
El archivo JSON contiene los parámetros que controlan la ejecución del proceso de clustering. Se debe nombrar siguiendo el formato:
params_YYYY_MM_DD.json
donde:
YYYYes el año.MMes el mes.DDes el día.
Descripción de los parámetros:
| Parámetro | Tipo | Descripción |
|---|---|---|
file_name |
str |
Ruta de la carpeta donde están los archivos de puntos. |
remove_outliers |
bool |
Indica si se deben eliminar outliers (true o false). |
outlier_filter_level |
str |
Nivel de sensibilidad en la detección de outliers: "estricto", "moderado", "relajado". Este parámetro permite ajustar qué tan estrictamente se eliminan los puntos que podrían ser errores o ubicaciones poco comunes. Se pueden usar tres niveles: * "estricto" → Filtra puntos más alejados, incluso si aún están en la zona de cobertura. * "moderado" (recomendado) → Permite más variabilidad, eliminando solo puntos extremos. * "relajado" → Solo filtra puntos extremadamente lejanos. Si no estás seguro de qué nivel usar, prueba primero "moderado". |
max_cluster_percentage |
int |
Límite máximo de % de paquetes en un mismo cluster (0 a 100, default: 40). |
min_packages_per_cluster_enabled |
bool |
Indica si se debe aplicar una restricción sobre el número mínimo de paquetes por cluster (true o false). |
min_packages_per_cluster |
int |
Valor mínimo de paquetes por cluster, requerido si min_packages_per_cluster_enabled es true. |
Ejemplo:
{
"file_name": "data_2025_03_03.parquet",
"remove_outliers": true,
"outlier_filter_level": "moderado",
"max_cluster_percentage": 40,
"min_packages_per_cluster_enabled": true,
"min_packages_per_cluster": 5
}
2. Formato del archivo de coordenadas (CSV o Parquet)
El archivo que contiene las coordenadas debe ser en formato CSV o Parquet y debe llamarse:
data_YYYY_MM_DD.csv
data_YYYY_MM_DD.parquet
dependiendo del formato elegido.
Estructura del archivo
El archivo debe contener dos columnas obligatorias:
| Columna | Tipo | Rango válido | Descripción |
|---|---|---|---|
id |
int o str |
No aplica | Identificador del punto (este campo es opcional). |
latitude |
Float |
-90 a 90 | Latitud geográfica del punto. |
longitude |
Float |
-180 a 180 | Longitud geográfica del punto. |
Si el archivo contiene nulo en alguna coordenada se eliminará ese registro del proceso.
Ejemplo:
id,latitude,longitude
1,19.4326,-99.1332
2,34.0522,-118.2437
3,40.7128,-74.0060
Salidas de este servicio
El servicio genera tres archivos de salida, proporcionando información sobre los clusters detectados y facilitando su visualización.
1. Archivo de Clusters y Centroides (clusters_yyyy_mm_dd.csv)
Contiene los centroides de cada cluster.
| Columna | Tipo | Descripción |
|---|---|---|
cluster |
int |
Identificador del cluster. Nota: Si el punto es identificado como outlier, el cluster será -1. |
latitude |
float |
Latitud del centroide del cluster. |
longitude |
float |
Longitud del centroide del cluster. |
Ejemplo
cluster,latitude,longitude
1,19.4326,-99.1332
2,40.7128,-74.0060
2. Archivo de Puntos con Clusters (puntos_yyyy_mm_dd.csv)
Incluye cada punto de entrada con su cluster asignado.
| Columna | Tipo | Descripción |
|---|---|---|
id |
int |
Identificador único del punto (si venía en el archivo de entrada). |
latitude |
float |
Latitud del punto. |
longitude |
float |
Longitud del punto. |
cluster |
int |
Cluster asignado al punto. |
Ejemplo
id,latitude,longitude,cluster
1,19.4326,-99.1332,1
2,40.7128,-74.0060,2
3. Archivo para Google Earth (puntos_yyyy_mm_dd.kmz)
Archivo en formato .kmz que permite visualizar los clusters en Google Earth.
- Los puntos individuales se muestra con un marcador en sus coordenadas coloreados según su cluster.
- Permite explorar de manera interactiva la distribución de los clusters.
Para visualizarlo:
- Descargar el archivo
.kmz. - Abrirlo en Google Earth o cualquier software compatible con este formato.
- Explorar la distribución geográfica de los clusters.
4. Mensaje sobre el proceso ejecutado
Mensaje de salida que confirma la cantidad de datos procesados, clusters creados, tiempo de ejecución, archivos generados.
Ejemplo
Proceso de clustering completado con éxito.
Resumen del proceso:
- Total de puntos en el archivo: 263
- Total de puntos procesados: 262
- Total de clusters generados: 9
- Puntos considerados outliers y excluidos: 2
- Tiempo total de ejecución: 4.60 segundos
Archivos generados:
- Clusters y centroides: clusters_2025_03_05.csv
- Puntos con clusters asignados: puntos_2025_03_05.csv
- Archivo KMZ para Google Earth: clusters_2025_03_05.kmz
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file pinit_pkg-0.1.20.tar.gz.
File metadata
- Download URL: pinit_pkg-0.1.20.tar.gz
- Upload date:
- Size: 10.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
65221d8f4c418c06008d0c367190ac5573b4f7b8b976c6b5b773267d0857d0e1
|
|
| MD5 |
ce2583d41eca805301dd423a6832a5b2
|
|
| BLAKE2b-256 |
dfa23e993e364b5547fd75f697588ff7a95b1afbea4ce26ff2ba327a888143f9
|
File details
Details for the file pinit_pkg-0.1.20-py3-none-any.whl.
File metadata
- Download URL: pinit_pkg-0.1.20-py3-none-any.whl
- Upload date:
- Size: 9.4 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.2
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5e39644c5cd3d302f7a9e45c070f257193298bc5b587b03bda0eeaafae27ed5a
|
|
| MD5 |
6fc8766fdc85095d93e31d971c0027f7
|
|
| BLAKE2b-256 |
7380a6fbf5dbbd7accd8437a3fdd82b50018ae4236e2bdd83b45565739237350
|