File: MetaModelValidation.py

package info (click to toggle)
openturns 1.26-4
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 67,708 kB
  • sloc: cpp: 261,605; python: 67,030; ansic: 4,378; javascript: 406; sh: 185; xml: 164; makefile: 101
file content (26 lines) | stat: -rw-r--r-- 811 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
import openturns.viewer as otv

# 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)
algo = ot.LinearLeastSquares(designMatrix, y_train)
algo.run()
leastSquaresModel = algo.getResult().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()
otv.View(graph)