Simple Geographic Recommendation System Model

Note: This repository contains a simple pre-trained geographic route recommendation system model built with the Simple Geographic Recommendation System Library and designed for learning and experimentation. For production deployments, consider additional features like advanced scoring algorithms and scalability optimizations.

Model Description

  • Model Type: Extends scikit-learn's geographic Nearest Neighbors using Haversine distance.
  • Algorithm: BallTree with Haversine metric for efficient geographic queries.
  • Input: Geographic coordinates (latitude, longitude) and search radius in meters.
  • Output: Ranked list of routes within the specified radius with distances.
  • Training Data: Synthetic route data with start/end coordinates and descriptions.

Project Structure

geo-recsys-simple-model/
β”œβ”€β”€ data/
β”‚   └── synthetic_data.csv              # Synthetic dataset for training
β”œβ”€β”€ inference/
β”‚   └── predict.py                      # Inference script
β”œβ”€β”€ models/
β”‚   └── geo_nearest_neighbors.joblib    # Trained model file (serialized)
β”œβ”€β”€ training/
β”‚   └── train.py                        # Training script
β”œβ”€β”€ pixi.toml                           # Pixi project configuration and dependencies
β”œβ”€β”€ pixi.lock                           # Locked dependency versions
β”œβ”€β”€ LICENSE                             # BSD-3-Clause license
└── README.md                           # Project documentation

Training Data Format

The model expects training data with the following columns:

Column Type Description
description string Route description or name
start_latitude float Starting latitude (-90 to 90)
start_longitude float Starting longitude (-180 to 180)
end_latitude float Ending latitude (-90 to 90)
end_longitude float Ending longitude (-180 to 180)

Usage

I. Installation

pip install https://github.com/sierra-arn/geo-recsys-simple-lib/releases/latest/download/geo_recsys_simple_lib-0.1.0-py3-none-any.whl

II. Loading the Model

from geo_recsys_simple_lib import GeoNearestNeighbors, GeoSearchQuery, GeoCoordinates

model = GeoNearestNeighbors.from_huggingface_hub(
    repo_id="sierra-arn/geo-recsys-simple-model",
    filename="models/geo_nearest_neighbors.joblib"
)

III. Making Predictions

coordinates = GeoCoordinates(latitude=41.9096, longitude=12.4963)
radius_meters = 500
query = GeoSearchQuery(coordinates=coordinates, radius_meters=radius_meters)

results = model(query)
print(f"Found {results.total_found} routes within {radius_meters} meters:")
for result in results.results:
    print(f"- {result.description}")
    print(f"  Distance: {result.geo_distance}m")
    print(f"  Start: ({result.start_coordinates.latitude}, {result.start_coordinates.longitude})")
    print(f"  End: ({result.end_coordinates.latitude}, {result.end_coordinates.longitude})")
    print()

License

This model is distributed under the BSD-3-Clause License.

Third-Party Dependencies
This project library integrates multiple open-source libraries with separate licenses. Review THIRD-PARTY-LICENSES for complete dependency licensing information.

Downloads last month

-

Downloads are not tracked for this model. How to track
Inference Providers NEW
This model isn't deployed by any Inference Provider. πŸ™‹ Ask for provider support