Geographically weighted modeling based on scikit-learn.
The aim of the package is to provide implementations of spatially-explicit modelling.
gwlearn provides a framework for prototyping geographically weighted extensions of
regression and classification models based on scikit-learn and libpysal.graph and a
subset of models implemented on top of this framework. For example, you can run
geographically weighted linear regression in a following manner.
import geopandas as gpd
from geodatasets import get_path
from gwlearn.linear_model import GWLinearRegression
gdf = gpd.read_file(get_path('geoda.guerry'))
adaptive = GWLinearRegression(
bandwidth=25,
fixed=False,
kernel='bisquare'
)
adaptive.fit(
gdf[['Crm_prp', 'Litercy', 'Donatns', 'Lottery']],
gdf["Suicids"],
geometry=gdf.representative_point(),
)For details, see the documentation.
Current development status is beta. The core API of the package should not change without a warning and a proper deprecation cycle. However, minor breaking changes may still occur.
You can install gwlearn from PyPI or from conda-forge using the tool of your choice:
pip install gwlearnOr from conda-forge:
conda install gwlearn -c conda-forgeTo search for or report bugs, please see the Github issue tracker.
If you have a question regarding gwlearn, feel free to open an issue or join a chat on
Discord.
The package is licensed under BSD 3-Clause License (Copyright (c) 2025, Martin Fleischmann & PySAL Developers)
Charles University’s Primus programme through the project "Influence of Socioeconomic and Cultural Factors on Urban Structure in Central Europe", project reference PRIMUS/24/SCI/023.