Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/samcomber/spacv
Spatial cross-validation in Python.
https://github.com/samcomber/spacv
cross-validation data-science geographic-data-science machine-learning python scikit-learn scikitlearn-machine-learning sklearn spatial-data-science
Last synced: 26 days ago
JSON representation
Spatial cross-validation in Python.
- Host: GitHub
- URL: https://github.com/samcomber/spacv
- Owner: SamComber
- License: bsd-3-clause
- Created: 2020-06-12T08:07:15.000Z (over 4 years ago)
- Default Branch: master
- Last Pushed: 2024-05-19T11:17:27.000Z (6 months ago)
- Last Synced: 2024-10-10T08:21:10.471Z (26 days ago)
- Topics: cross-validation, data-science, geographic-data-science, machine-learning, python, scikit-learn, scikitlearn-machine-learning, sklearn, spatial-data-science
- Language: Jupyter Notebook
- Homepage:
- Size: 3.76 MB
- Stars: 43
- Watchers: 3
- Forks: 14
- Open Issues: 4
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# `spacv`: spatial cross-validation in Python
`spacv` is a small Python 3 (3.6 and above) package for cross-validation of models
that assess generalization performance to datasets with spatial dependence. `spacv` provides
a familiar sklearn-like API to expose a suite of tools useful for points-based spatial prediction tasks.
See the notebook `spacv_guide.ipynb` for usage.
## Dependencies
* `numpy`
* `matplotlib`
* `pandas`
* `geopandas`
* `shapely`
* `scikit-learn`
* `scipy`## Installation and usage
To install use pip:
$ pip install spacv
Then build quick spatial cross-validation workflows with `sklearn` as:
```python
import spacv
import geopandas as gpd
from sklearn.model_selection import cross_val_score
from sklearn.svm import SVCdf = gpd.read_file('data/baltim.geojson')
XYs = df['geometry']
X = df[['NROOM', 'BMENT', 'NBATH', 'PRICE', 'LOTSZ', 'SQFT']]
y = df['PATIO']# Build fold indices as a generator
skcv = spacv.SKCV(n_splits=4, buffer_radius=10).split(XYs)svc = SVC()
cross_val_score(svc, # Model
X, # Features
y, # Labels
cv = skcv) # Fold indices
```