GeoStat-Framework / PyKrige

Kriging Toolkit for Python
https://pykrige.readthedocs.io
BSD 3-Clause "New" or "Revised" License
759 stars 188 forks source link

how to custom variogram_function with non-parametric meachine learning models like SVR, RF, MLP etc. #200

Closed sunshineYin closed 3 years ago

sunshineYin commented 3 years ago

Hello,

I want to make modifications on variogram_functions of kriging interpolation.

Because I think the categories of existing variogram_functions are not really enough, and the fitting effect is also not really good. So I want to use some non-parametric models, such as svr, random forest, mlp, etc. to fit the variogram function, because they have larger capacity.

The question is: in this case, how should I design the variogram function? Because the models are non-parametric here, the input of them are X and y, (that is d and gamma(d)), which are different from existing functions like linear, exponential, etc. Could you give me some help? (maybe some examples)

Thank you a lot!

MuellerSeb commented 3 years ago

Hey there,

keep in mind, that variogram functions need to fulfill some mathematically requirements like conditional negative semidefiniteness (CNSD), so the estimated kriging variance is always non-negative (see Webster 2007).

For references on valid variogram models see here:

Also, you can use variogram models from GSTools with PyKrige. That means, you can use all models presented there and the fitting routines provided by GSTools. Have a look here:

Beside that, what do you exactly mean with

Because I think the categories of existing variogram_functions are not really enough, and the fitting effect is also not really good. [...] Because the models are non-parametric here [...]

I am a bit puzzled here.

Sebastian