Spatial Leave-One-Out (SLOO)

This example shows how to make a Spatial Leave-One-Out called here a Spatial Leave-One-Pixel-Out.

For more information see : https://onlinelibrary.wiley.com/doi/full/10.1111/geb.12161.

Import librairies

from museotoolbox.cross_validation import SpatialLeaveOneOut
from museotoolbox import datasets,processing

Load HistoricalMap dataset

raster,vector = datasets.load_historical_data(low_res=True)
field = 'Class'
X,y = processing.extract_ROI(raster,vector,field)
distance_matrix = processing.get_distance_matrix(raster,vector)

Create CV

n_splits will be the number of the least populated class

SLOO = SpatialLeaveOneOut(distance_thresold=100,distance_matrix=distance_matrix,
                                random_state=12)

Note

Split is made to generate each fold

SLOO.get_n_splits(X,y)
for tr,vl in SLOO.split(X,y):
    print(tr.shape,vl.shape)

Out:

(2515,) (5,)
(1841,) (5,)

Save each train/valid in a spatial vector file

from museotoolbox.processing import sample_extraction
sample_extraction(raster,vector,'/tmp/one_point_per_pixel.gpkg')
files = SLOO.save_to_vector('/tmp/one_point_per_pixel.gpkg','Class',out_vector='/tmp/trvl.gpkg')
print(files)

Out:

Adding 'uniquefid' field to the original vector.
Field 'uniquefid' is already in /home/docs/checkouts/readthedocs.org/user_builds/museotoolbox/checkouts/latest/museotoolbox/datasets/_historicalmap/train.gpkg
Extract values from raster...

Reading raster values...  [........................................]1%

Reading raster values...  [#.......................................]3%

Reading raster values...  [##......................................]5%

Reading raster values...  [##......................................]6%

Reading raster values...  [###.....................................]8%

Reading raster values...  [####....................................]10%

Reading raster values...  [####....................................]12%

Reading raster values...  [#####...................................]13%

Reading raster values...  [######..................................]15%

Reading raster values...  [######..................................]17%

Reading raster values...  [#######.................................]19%

Reading raster values...  [########................................]20%

Reading raster values...  [#########...............................]22%

Reading raster values...  [#########...............................]24%

Reading raster values...  [##########..............................]26%

Reading raster values...  [###########.............................]27%

Reading raster values...  [###########.............................]29%

Reading raster values...  [############............................]31%

Reading raster values...  [#############...........................]32%

Reading raster values...  [#############...........................]34%

Reading raster values...  [##############..........................]36%

Reading raster values...  [###############.........................]38%

Reading raster values...  [###############.........................]39%

Reading raster values...  [################........................]41%

Reading raster values...  [#################.......................]43%

Reading raster values...  [##################......................]45%

Reading raster values...  [##################......................]46%

Reading raster values...  [###################.....................]48%

Reading raster values...  [####################....................]50%

Reading raster values...  [####################....................]52%

Reading raster values...  [#####################...................]53%

Reading raster values...  [######################..................]55%

Reading raster values...  [######################..................]57%

Reading raster values...  [#######################.................]59%

Reading raster values...  [########################................]60%

Reading raster values...  [#########################...............]62%

Reading raster values...  [#########################...............]64%

Reading raster values...  [##########################..............]65%

Reading raster values...  [###########################.............]67%

Reading raster values...  [###########################.............]69%

Reading raster values...  [############################............]71%

Reading raster values...  [#############################...........]72%

Reading raster values...  [#############################...........]74%

Reading raster values...  [##############################..........]76%

Reading raster values...  [###############################.........]78%

Reading raster values...  [###############################.........]79%

Reading raster values...  [################################........]81%

Reading raster values...  [#################################.......]83%

Reading raster values...  [##################################......]85%

Reading raster values...  [##################################......]86%

Reading raster values...  [###################################.....]88%

Reading raster values...  [####################################....]90%

Reading raster values...  [####################################....]92%

Reading raster values...  [#####################################...]93%

Reading raster values...  [######################################..]95%

Reading raster values...  [######################################..]97%

Reading raster values...  [#######################################.]98%

Reading raster values...  [########################################]100%
Adding each centroid to /tmp/one_point_per_pixel.gpkg...

Adding points...  [........................................]0%

Adding points...  [........................................]1%

Adding points...  [........................................]2%

Adding points...  [#.......................................]3%

Adding points...  [#.......................................]4%

Adding points...  [##......................................]5%

Adding points...  [##......................................]6%

Adding points...  [##......................................]7%

Adding points...  [###.....................................]8%

Adding points...  [###.....................................]9%

Adding points...  [####....................................]10%

Adding points...  [####....................................]11%

Adding points...  [####....................................]12%

Adding points...  [#####...................................]13%

Adding points...  [#####...................................]14%

Adding points...  [######..................................]15%

Adding points...  [######..................................]16%

Adding points...  [######..................................]17%

Adding points...  [#######.................................]18%

Adding points...  [#######.................................]19%

Adding points...  [########................................]20%

Adding points...  [########................................]21%

Adding points...  [########................................]22%

Adding points...  [#########...............................]23%

Adding points...  [#########...............................]24%

Adding points...  [##########..............................]25%

Adding points...  [##########..............................]26%

Adding points...  [##########..............................]27%

Adding points...  [###########.............................]28%

Adding points...  [###########.............................]29%

Adding points...  [############............................]30%

Adding points...  [############............................]31%

Adding points...  [############............................]32%

Adding points...  [#############...........................]33%

Adding points...  [#############...........................]34%

Adding points...  [##############..........................]35%

Adding points...  [##############..........................]36%

Adding points...  [##############..........................]37%

Adding points...  [###############.........................]38%

Adding points...  [###############.........................]39%

Adding points...  [################........................]40%

Adding points...  [################........................]41%

Adding points...  [################........................]42%

Adding points...  [#################.......................]43%

Adding points...  [#################.......................]44%

Adding points...  [##################......................]45%

Adding points...  [##################......................]46%

Adding points...  [##################......................]47%

Adding points...  [###################.....................]48%

Adding points...  [###################.....................]49%

Adding points...  [####################....................]50%

Adding points...  [####################....................]51%

Adding points...  [####################....................]52%

Adding points...  [#####################...................]53%

Adding points...  [#####################...................]54%

Adding points...  [######################..................]55%

Adding points...  [######################..................]56%

Adding points...  [######################..................]57%

Adding points...  [#######################.................]58%

Adding points...  [#######################.................]59%

Adding points...  [########################................]60%

Adding points...  [########################................]61%

Adding points...  [########################................]62%

Adding points...  [#########################...............]63%

Adding points...  [#########################...............]64%

Adding points...  [##########################..............]65%

Adding points...  [##########################..............]66%

Adding points...  [##########################..............]67%

Adding points...  [###########################.............]68%

Adding points...  [###########################.............]69%

Adding points...  [############################............]70%

Adding points...  [############################............]71%

Adding points...  [############################............]72%

Adding points...  [#############################...........]73%

Adding points...  [#############################...........]74%

Adding points...  [##############################..........]75%

Adding points...  [##############################..........]76%

Adding points...  [##############################..........]77%

Adding points...  [###############################.........]78%

Adding points...  [###############################.........]79%

Adding points...  [################################........]80%

Adding points...  [################################........]81%

Adding points...  [################################........]82%

Adding points...  [#################################.......]83%

Adding points...  [#################################.......]84%

Adding points...  [##################################......]85%

Adding points...  [##################################......]86%

Adding points...  [##################################......]87%

Adding points...  [###################################.....]88%

Adding points...  [###################################.....]89%

Adding points...  [####################################....]90%

Adding points...  [####################################....]91%

Adding points...  [####################################....]92%

Adding points...  [#####################################...]93%

Adding points...  [#####################################...]94%

Adding points...  [######################################..]95%

Adding points...  [######################################..]96%

Adding points...  [######################################..]97%

Adding points...  [#######################################.]98%

Adding points...  [#######################################.]99%

Adding points...  [########################################]100%
[['/tmp/trvl_train_0.gpkg', '/tmp/trvl_valid_0.gpkg'], ['/tmp/trvl_train_1.gpkg', '/tmp/trvl_valid_1.gpkg']]

Draw image

from __drawCVmethods import plotMethod
plotMethod('SLOO-pixel')
SpatialLeaveOnePixelOut

Out:

/home/docs/checkouts/readthedocs.org/user_builds/museotoolbox/checkouts/latest/examples/cross_validation/__drawCVmethods.py:35: MatplotlibDeprecationWarning: Adding an axes using the same arguments as a previous axes currently reuses the earlier instance.  In a future version, a new instance will always be created and returned.  Meanwhile, this warning can be suppressed, and the future behavior ensured, by passing a unique label to each axes instance.
  ax = f.add_subplot(111)

Total running time of the script: ( 0 minutes 0.895 seconds)

Gallery generated by Sphinx-Gallery