Hi Andrea,
Nice to see you on the list. The theoretical part of the documentation is being
converted into the new format based on sphinx. In the mean time, you can use
the old LaTeX documentation
here:http://doc.openturns.org/old/openturns-1.7/16.03/pdf/OpenTURNS_ReferenceGuide.pdf
Concerning your questions:1) The PenalizedLeastSquaresAlgorithm allows to
define a general quadratic penalization when used directly, but no penalization
is done when used through the LeastSquaresStrategy class (and there is no
penalization based on second derivatives)2) It all depends on what you call
'performant'. If your model is not sparse, there is no gain in using the LARS
(Least Angle Regression Stagewise) class, improperly named LAR in the initial
version of the class. See page 239 in the PDF file.3) In the initial version of
the PC algorithm (2007), the specifications were to implement only the fixed
strategy, ie no basis selection. I introduced the SequentialStrategy and
CleaningStrategy as naive examples of adaptive strategies, and planned to
implement ridge regression as an evolution of CleaningStrategy, but never found
the time for it. Now, SequentialStrategy is mainly useless, and
CleaningStrategy is of marginal interest (it allows to fix the maximum
complexity of the resulting meta-model but nothing more).
Here is an example of what could be a simplified interface to the
FunctionalChaosAlgorithm class (not tested ;-)):
import openturns as ot
def learnPC(x, y, inputDistribution, basisSize=10, hyperbolicity=0.7):
inputDimension = len(x[0]) # Use an isotropic hyperbolic enumerate function
to favor high marginal degrees enumerateFunction =
ot.EnumerateFunction(inputDimension, hyperbolicity) # Build the adapted
polynomial basis orthogonalBasis =
ot.OrthogonalProductPolynomialFactory([ot.StandardDistributionPolynomialFactory(inputDistribution.getMarginal(i))
for i in range(inputDimension)], enumerateFunction) approximationAlgorithm
= ot.LeastSquaresMetaModelSelectionFactory(ot.LARS(),
ot.CorrectedLeaveOneOut()) maximumResidual = 1e-10 adaptiveStrategy =
ot.FixedStrategy(orthogonalBasis,
enumerateFunction.getStrataCumulatedCardinal(basisSize)) projectionStrategy
= ot.LeastSquaresStrategy(x, y, approximationAlgorithm) algo =
ot.FunctionalChaosAlgorithm(x, y, inputDistribution, adaptiveStrategy,
projectionStrategy) algo.setMaximumResidual(maximumResidual) algo.run()
result = algo.getResult() metaModel = result.getMetaModel() return
metaModel, result
Best regards,
Régis
Le jeudi 31 mai 2018 à 10:26:40 UTC+2, Andrea TRUCCHIA
<[email protected]> a écrit :
Dear User Community of OT,
I am a researcher at CERFACS that is using OT as an important part of his PhD
thesis.
I have been trying to find a combinations of best procedures that would help me
giving reasonably good results for a wide range of forest fire simulations,
having 2 or 3 input parameters.
The methods I have been using recently for the PC are
- for the Truncature part of the algorithm, an ot.FixedStrategy() with linear
EnumerateFunction(). I have planned to try some hyperbolic truncature as soon
as possible.
-for the ProjectionStrategy, aside from the quadrature method, that is quite
expensive regarding the number of DOE points to be evaluated, I tried
-- ot.LeastSquareStrategy(X,Y) , the default one that I imagine is a Penalized
Least Square algorithm (but without explicitly setting a penalty parameter)
-- ot.LeastSquareStrategy(X, Y,
LeastSquaresMetaModelSelectionFactory(LARS(),CorrectedLeaveOneOut() )
The questions I have right now are
1) Where can I find some documentation about the Penalized Least Square
algorithm implemented in LeastSquareStrategy ? Is the penalty applied in the
code related to the second derivatives of the response surface?
2) Is the LARS() the most performant algorithm we have in PC right now, in the
OpenTurns framework? Is there any difference between calling LAR() and LARS() ?
Where can I find a documentation for the real "flavour" of the LARS()
implemented?
3) Where can I find some example of the implementation of an AdaptiveStrategy,
in the form of a SequentialStrategy or CleaningStrategy ? Talkin about a wide
range of applications, i.e. do not dealing with a specific problem, are they
worth the effort of their implementation?
Thanks in advance to anyone who will reply
Best Regards
Andrea Trucchia
_______________________________________________
OpenTURNS users mailing list
[email protected]
http://openturns.org/mailman/listinfo/users
_______________________________________________
OpenTURNS users mailing list
[email protected]
http://openturns.org/mailman/listinfo/users