[ot-users] Matern Covariance Model for Kriging Surrogate Model

HADDAD Sofiane sofiane_haddad at yahoo.fr
Wed Aug 23 17:57:47 CEST 2017


Hi,
There is indeed a bug within the MaternModel::setParameter, thanks for the report.It is fixed in Fix http://trac.openturns.org/ticket/905 by sofianehaddad · Pull Request #537 · openturns/openturns
Sofiane
  
|  
|   
|   
|   |    |

   |

  |
|  
|    |  
Fix http://trac.openturns.org/ticket/905 by sofianehaddad · Pull Request #5...
 MaternModel::setFullParameter should update all internal parameters and check the size/accuracy of the input arg...  |   |

  |

  |

 



 
 

    Le Mardi 22 août 2017 13h51, HADDAD Sofiane <sofiane_haddad at yahoo.fr> a écrit :
 

 Hi Nicolas,
Sorry for the delay.
I will have a look at the problem this afternoon

Regards,Sofiane 

    Le Jeudi 17 août 2017 15h33, LELIEVRE-Nicolas <nicolas.lelievre at sigma-clermont.fr> a écrit :
 

 Hi,

I want to calibrate a Kriging surrogate model in OpenTurns and I face difficulties.
Indeed, I want to use the Matern covariance model.
But, when I run the KrigingAlgorithm optimization, the scale parameters (theta) are not optimized.
I have studied the problem and found that the LogLikelihood function is constant, no matter how points are in the DoE, what the performance function is and what the dimension is.

I think that the problem is on the definition of the covariance model since if I use SquaredExponential there is not any problems.
But, I don't find how to define it correctly.

May you provide me some helpful advice ?Thank you in advance.

A little example:

import numpy as np
import openturns as ot
def G(X):
    out =  15 - (X[:,0]**2 + X[:,1]**2 - 5*np.cos(2*np.pi*X[:,0]) - 5*np.cos(2*np.pi*X[:,1]))
    return out
dim = 2
Loi = np.ones(dim)
Moy = np.ones(dim)
Stdev = np.ones(dim)
nini = 100

nva = np.size(Loi)
DOE_u = np.random.normal(0,1,(nini,nva))
DOE_y = G(DOE_u)
DOE_y = DOE_y.reshape((nini,1))

inputSample = ot.Sample(DOE_u)
outputSample = ot.Sample(DOE_y)
basis = ot.ConstantBasisFactory(nva).build()
covarianceModel = ot.MaternModel(nva)
covarianceModel.setNu(5/2)
algo  = ot.KrigingAlgorithm(inputSample, outputSample, covarianceModel, basis)
algo.run()
result = algo.getResult()
print(result.getCovarianceModel())
LogLikelihood = algo.getReducedLogLikelihoodFunction()
Nicolas Lelièvre
Doctorant Institut Pascal Clermont-Ferrand

_______________________________________________
OpenTURNS users mailing list
users at openturns.org
http://openturns.org/mailman/listinfo/users


   

   
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://openturns.org/pipermail/users/attachments/20170823/3cbbdbc8/attachment.html>


More information about the users mailing list