File: MetaModelValidation.py

package info (click to toggle)
openturns 1.24-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid, trixie
  • size: 66,204 kB
  • sloc: cpp: 256,662; python: 63,381; ansic: 4,414; javascript: 406; sh: 180; xml: 164; yacc: 123; makefile: 98; lex: 55
file content (26 lines) | stat: -rw-r--r-- 828 bytes parent folder | download
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
import openturns as ot
from openturns.viewer import View

# Define the model
dist = ot.Uniform(-3.0, 3.0)
model = ot.SymbolicFunction(["x"], ["sin(x)"])

# Build the metamodel
x_train = dist.getSample(25)
y_train = model(x_train)
total_degree = 3
polynomialCollection = ["x^%d" % (degree) for degree in range(1, total_degree + 1)]
basis = ot.SymbolicFunction(["x"], polynomialCollection)
designMatrix = basis(x_train)
myLeastSquares = ot.LinearLeastSquares(designMatrix, y_train)
myLeastSquares.run()
leastSquaresModel = myLeastSquares.getMetaModel()
metaModel = ot.ComposedFunction(leastSquaresModel, basis)

# Validate the metamodel
x_test = dist.getSample(100)
y_test = model(x_test)
metamodelPredictions = metaModel(x_test)
val = ot.MetaModelValidation(y_test, metamodelPredictions)
graph = val.drawValidation()
View(graph)