diff --git a/dependencies.xml b/dependencies.xml
index 423dcd7466..0026388225 100644
--- a/dependencies.xml
+++ b/dependencies.xml
@@ -35,18 +35,26 @@ Note all install methods after "main" take
-->
- 2.10
- 1.18
- 1.2
- 0.24
- 1.1
- 0.16
+
+ 1.21
+ 1.7
+ 1.0
+ 1.3
+
+ 0.19
1.5
- 3.2
-
- 1.6
- 2.0
- 3
+ 3.3
+ 0.13
+ 2.2
+ 2.9
+ 3.7
+ 3
@@ -59,13 +67,22 @@ Note all install methods after "main" take
- 1.9
- 2.9
+ 1.13
+
+
+ 2.22
1.1
+ 0.9
+ 6.4
+
+
+
+
+ 3
@@ -76,4 +93,12 @@ Note all install methods after "main" take
remove
remove
+
+ remove
+ remove
+ remove
+ remove
+ remove
+ remove
+
diff --git a/ravenframework/SupervisedLearning/ScikitLearn/SVM/LinearSVR.py b/ravenframework/SupervisedLearning/ScikitLearn/SVM/LinearSVR.py
index 6069fe210f..440dfc2e24 100644
--- a/ravenframework/SupervisedLearning/ScikitLearn/SVM/LinearSVR.py
+++ b/ravenframework/SupervisedLearning/ScikitLearn/SVM/LinearSVR.py
@@ -15,7 +15,7 @@
Created on Jan 21, 2020
@author: alfoa, wangc
- Linear Support Vector Classifier
+ Linear Support Vector Regressor
"""
#Internal Modules (Lazy Importer)--------------------------------------------------------------------
@@ -33,7 +33,7 @@ class LinearSVR(ScikitLearnBase):
"""
Linear Support Vector Regressor
"""
- info = {'problemtype':'regression', 'normalize':True}
+ info = {'problemtype':'regression', 'normalize':True, 'normalizeTargets':False}
def __init__(self):
"""
@@ -97,6 +97,10 @@ def _handleInput(self, paramInput):
super()._handleInput(paramInput)
settings, notFound = paramInput.findNodesAndExtractValues(['epsilon', 'dual', 'loss', 'tol', 'fit_intercept',
'intercept_scaling', 'max_iter'])
+
+ setting,_ = paramInput.findNodesAndExtractValues(['normalizeTargets'])
+ self.info['normalizeTargets'] = setting['normalizeTargets']
+
# notFound must be empty
assert(not notFound)
self.initializeModel(settings)
diff --git a/ravenframework/SupervisedLearning/ScikitLearn/SVM/SVR.py b/ravenframework/SupervisedLearning/ScikitLearn/SVM/SVR.py
index 7e04804601..c9e1daf5f9 100644
--- a/ravenframework/SupervisedLearning/ScikitLearn/SVM/SVR.py
+++ b/ravenframework/SupervisedLearning/ScikitLearn/SVM/SVR.py
@@ -24,12 +24,10 @@
#External Modules------------------------------------------------------------------------------------
np = importModuleLazy("numpy")
-import ast
#External Modules End--------------------------------------------------------------------------------
#Internal Modules------------------------------------------------------------------------------------
from ....SupervisedLearning.ScikitLearn import ScikitLearnBase
-from ....utils import utils
from ....utils import InputData, InputTypes
#Internal Modules End--------------------------------------------------------------------------------
@@ -37,7 +35,7 @@ class SVR(ScikitLearnBase):
"""
Support Vector Regressor
"""
- info = {'problemtype':'regression', 'normalize':True}
+ info = {'problemtype':'regression', 'normalize':True, 'normalizeTargets':False}
def __init__(self):
"""
@@ -101,6 +99,7 @@ class cls.
descr=r"""Enable verbose output. Note that this setting takes advantage
of a per-process runtime setting in libsvm that, if enabled, may not
work properly in a multithreaded context.""", default=False))
+
return specs
def _handleInput(self, paramInput):
@@ -113,6 +112,9 @@ def _handleInput(self, paramInput):
settings, notFound = paramInput.findNodesAndExtractValues(['C', 'kernel', 'degree', 'gamma', 'coef0',
'tol', 'cache_size', 'epsilon', 'shrinking', 'max_iter',
'verbose'])
+
+ setting,_ = paramInput.findNodesAndExtractValues(['normalizeTargets'])
+ self.info['normalizeTargets'] = setting['normalizeTargets']
# notFound must be empty
assert(not notFound)
self.initializeModel(settings)
diff --git a/ravenframework/SupervisedLearning/ScikitLearn/ScikitLearnBase.py b/ravenframework/SupervisedLearning/ScikitLearn/ScikitLearnBase.py
index c7729bf2f9..bf666e17b3 100644
--- a/ravenframework/SupervisedLearning/ScikitLearn/ScikitLearnBase.py
+++ b/ravenframework/SupervisedLearning/ScikitLearn/ScikitLearnBase.py
@@ -24,19 +24,17 @@
#External Modules------------------------------------------------------------------------------------
np = importModuleLazy("numpy")
-import ast
#External Modules End--------------------------------------------------------------------------------
#Internal Modules------------------------------------------------------------------------------------
from ..SupervisedLearning import SupervisedLearning
-from ...utils import utils
#Internal Modules End--------------------------------------------------------------------------------
class ScikitLearnBase(SupervisedLearning):
"""
Base Class for Scikitlearn-based surrogate models (classifiers and regressors)
"""
- info = {'problemtype':None, 'normalize':None}
+ info = {'problemtype':None, 'normalize':None, 'normalizeTargets':None}
def __init__(self):
"""
@@ -50,7 +48,6 @@ def __init__(self):
self.model = None # Scikitlearn estimator/model
self.multioutputWrapper = True # If True, use MultiOutputRegressor or MultiOutputClassifier to wrap self.model else
# the self.model can handle multioutput/multi-targets prediction
-
def updateSettings(self, settings):
"""
Update the parameters of the self.model if the model is wrapper by sklearn.multioutput class
@@ -185,15 +182,16 @@ def __returnCurrentSettingLocal__(self):
"""
pass
- def _localNormalizeData(self,values,names,feat):
- """
- Overwrites default normalization procedure.
- @ In, values, list(float), unused
- @ In, names, list(string), unused
- @ In, feat, string, feature to (not) normalize
- @ Out, None
- """
- if not self.info['normalize']:
- self.muAndSigmaFeatures[feat] = (0.0,1.0)
- else:
- super()._localNormalizeData(values,names,feat)
+ # def _localNormalizeData(self,values,names,feat):
+ # """
+ # Overwrites default normalization procedure.
+ # @ In, values, list(float), unused
+ # @ In, names, list(string), unused
+ # @ In, feat, string, feature to (not) normalize
+ # @ Out, None
+ # """
+ # if not self.info['normalize']:
+ # self.muAndSigmaFeatures[feat] = (0.0,1.0)
+ # self.muAndSigmaTargets[self.target[0]] = (0.0,1.0)
+ # else:
+ # super()._localNormalizeData(values,names,feat)
diff --git a/ravenframework/SupervisedLearning/SupervisedLearning.py b/ravenframework/SupervisedLearning/SupervisedLearning.py
index 03df24f7e8..9754fe0b94 100644
--- a/ravenframework/SupervisedLearning/SupervisedLearning.py
+++ b/ravenframework/SupervisedLearning/SupervisedLearning.py
@@ -31,7 +31,7 @@
#External Modules End--------------------------------------------------------------------------------
#Internal Modules------------------------------------------------------------------------------------
-from ..utils import utils, mathUtils, xmlUtils
+from ..utils import mathUtils, xmlUtils
from ..utils import InputTypes, InputData
from ..BaseClasses import BaseInterface
#Internal Modules End--------------------------------------------------------------------------------
@@ -45,6 +45,7 @@ class SupervisedLearning(BaseInterface):
# 'boolean', 'integer', 'float'
qualityEstType = [] # this describe the type of estimator returned known type are 'distance', 'probability'.
# The values are returned by the self.__confidenceLocal__(Features)
+ info = {'problemtype':'regression', 'normalize':None, 'normalizeTargets':None}
@classmethod
def getInputSpecification(cls):
"""
@@ -69,6 +70,10 @@ class cls.
spec.addSub(InputData.parameterInputFactory('pivotParameter',contentType=InputTypes.StringType,
descr=r"""If a time-dependent ROM is requested, please specifies the pivot
variable (e.g. time, etc) used in the input HistorySet.""", default='time'))
+
+ spec.addSub(InputData.parameterInputFactory("normalizeTargets", contentType=InputTypes.BoolType,
+ descr=r"""enables target normalization by centering (subtracting the mean) and dividing by the standard deviation.
+ This is known to make the ROM less sensitive to parameters such as epsilon, gamma, etc.""", default=False))
cvInput = InputData.parameterInputFactory("CV", contentType=InputTypes.StringType,
descr=r"""The text portion of this node needs to contain the name of the \xmlNode{PostProcessor} with \xmlAttr{subType}
``CrossValidation``.""")
@@ -129,7 +134,8 @@ def __init__(self):
#average value and sigma are used for normalization of the feature data
#a dictionary where for each feature a tuple (average value, sigma)
#these need to be declared in the child classes!!!!
- self.muAndSigmaFeatures = {} # normalization parameters
+ self.muAndSigmaFeatures = {} # normalizing features
+ self.muAndSigmaTargets = {} # normalizing targets
self.metadataKeys = set() # keys that can be passed to DataObject as meta information
self.metadataParams = {} # indexMap for metadataKeys to pass to a DataObject as meta dimensionality
@@ -247,30 +253,39 @@ def train(self, tdict, indexMap=None):
featureValues = np.zeros(shape=(len(targetValues), featLen,len(self.features)))
else:
featureValues = np.zeros(shape=(len(targetValues), len(self.features)))
- for cnt, feat in enumerate(self.features):
- if feat not in names:
- self.raiseAnError(IOError,'The feature sought '+feat+' is not in the training set')
- else:
- valueToUse = values[names.index(feat)]
- resp = self.checkArrayConsistency(valueToUse, self.isDynamic())
- if not resp[0]:
- self.raiseAnError(IOError,'In training set for feature '+feat+':'+resp[1])
- valueToUse = np.asarray(valueToUse)
- if len(valueToUse) != featureValues.shape[0]:
- self.raiseAWarning('feature values:',featureValues.shape[0],tag='ERROR')
- self.raiseAWarning('target values:',len(valueToUse),tag='ERROR')
- self.raiseAnError(IOError,'In training set, the number of values provided for feature '+feat+' are != number of target outcomes!')
- self._localNormalizeData(values,names,feat)
- # valueToUse can be either a matrix (for who can handle time-dep data) or a vector (for who can not)
- if self.dynamicFeatures:
- featureValues[:, :, cnt] = (valueToUse[:, :]- self.muAndSigmaFeatures[feat][0])/self.muAndSigmaFeatures[feat][1]
+ for tgtCnt, targ in enumerate(self.target):
+ for cnt, feat in enumerate(self.features):
+ if feat not in names:
+ self.raiseAnError(IOError,'The feature sought '+feat+' is not in the training set')
+ elif targ not in names:
+ self.raiseAnError(IOError,'The target sought '+targ+' is not in the training set')
else:
- featureValues[:,cnt] = ( (valueToUse[:,0] if len(valueToUse.shape) > 1 else valueToUse[:]) - self.muAndSigmaFeatures[feat][0])/self.muAndSigmaFeatures[feat][1]
-
+ valueToUse = values[names.index(feat)]
+ resp = self.checkArrayConsistency(valueToUse, self.isDynamic())
+ targetValueToUse = values[names.index(targ)]
+ tarResp = self.checkArrayConsistency(targetValueToUse, self.isDynamic())
+ if not resp[0]:
+ self.raiseAnError(IOError,'In training set for feature '+feat+':'+resp[1])
+ if not tarResp[0]:
+ self.raiseAnError(IOError,'In training set for target '+targ+':'+tarResp[1])
+ valueToUse = np.asarray(valueToUse)
+ targetValueToUse = np.asarray(targetValueToUse)
+ if len(valueToUse) != featureValues.shape[0]:
+ self.raiseAWarning('feature values:',featureValues.shape[0],tag='ERROR')
+ self.raiseAWarning('target values:',len(valueToUse),tag='ERROR')
+ self.raiseAnError(IOError,'In training set, the number of values provided for feature '+feat+' are != number of target outcomes!')
+ self._localNormalizeData(values,names,feat,targ)
+ # valueToUse can be either a matrix (for who can handle time-dep data) or a vector (for who can not)
+ if self.dynamicFeatures:
+ featureValues[:, :, cnt] = (valueToUse[:, :]- self.muAndSigmaFeatures[feat][0])/self.muAndSigmaFeatures[feat][1]
+ targetValues[:,tgtCnt] = (targetValueToUse[:]- self.muAndSigmaTargets[targ][0])/self.muAndSigmaTargets[targ][1]
+ else:
+ featureValues[:,cnt] = ( (valueToUse[:,0] if len(valueToUse.shape) > 1 else valueToUse[:]) - self.muAndSigmaFeatures[feat][0])/self.muAndSigmaFeatures[feat][1]
+ targetValues[:,tgtCnt] = ( (targetValueToUse[:,0] if len(targetValueToUse.shape) > 1 else targetValueToUse[:]) - self.muAndSigmaTargets[targ][0])/self.muAndSigmaTargets[targ][1]
self.__trainLocal__(featureValues,targetValues)
self.amITrained = True
- def _localNormalizeData(self,values,names,feat):
+ def _localNormalizeData(self,values,names,feat,targ):
"""
Method to normalize data based on the mean and standard deviation. If undesired for a particular ROM,
this method can be overloaded to simply pass (see, e.g., GaussPolynomialRom).
@@ -279,7 +294,14 @@ def _localNormalizeData(self,values,names,feat):
@ In, feat, list, list of features (from ROM)
@ Out, None
"""
- self.muAndSigmaFeatures[feat] = mathUtils.normalizationFactors(values[names.index(feat)])
+ if not self.info['normalize']:
+ self.muAndSigmaFeatures[feat] = (0.0,1.0)
+ else:
+ self.muAndSigmaFeatures[feat] = mathUtils.normalizationFactors(values[names.index(feat)])
+ if not self.info['normalizeTargets']:
+ self.muAndSigmaTargets[targ] = (0.0,1.0)
+ else:
+ self.muAndSigmaTargets[targ] = mathUtils.normalizationFactors(values[names.index(targ)])
def confidence(self, edict):
"""
@@ -349,6 +371,8 @@ def evaluate(self,edict):
else:
featureValues = np.zeros(shape=(values[0].size, len(self.features)))
for cnt, feat in enumerate(self.features):
+ # feat = featTarg[0]
+ # targ = featTarg[1]
if feat not in names:
self.raiseAnError(IOError,'The feature sought '+feat+' is not in the evaluate set')
else:
@@ -359,7 +383,10 @@ def evaluate(self,edict):
featureValues[:, :, cnt] = ((values[names.index(feat)] - self.muAndSigmaFeatures[feat][0]))/self.muAndSigmaFeatures[feat][1]
else:
featureValues[:,cnt] = ((values[names.index(feat)] - self.muAndSigmaFeatures[feat][0]))/self.muAndSigmaFeatures[feat][1]
- return self.__evaluateLocal__(featureValues)
+ target = self.__evaluateLocal__(featureValues)
+ if ('normalizeTargets' in self.info.keys()) and self.info['normalizeTargets']:
+ target.update((x, y * self.muAndSigmaTargets[x][1] + self.muAndSigmaTargets[x][0]) for x, y in target.items())
+ return target
def reset(self):
"""
diff --git a/ravenframework/utils/mathUtils.py b/ravenframework/utils/mathUtils.py
index be28fb12a5..92dec92144 100644
--- a/ravenframework/utils/mathUtils.py
+++ b/ravenframework/utils/mathUtils.py
@@ -246,7 +246,7 @@ def normalizationFactors(values, mode='z'):
elif mode == 'scale':
offset = np.min(values)
scale = np.max(values) - offset
- else:
+ else: ##TODO this should be changed, currently if the user entered anything other than z or scale it will not normalize
offset = 0.0
scale = 1.0
diff --git a/tests/framework/AnalyticModels/projectile.py b/tests/framework/AnalyticModels/projectile.py
index baa4ff8ab1..31255b8250 100644
--- a/tests/framework/AnalyticModels/projectile.py
+++ b/tests/framework/AnalyticModels/projectile.py
@@ -27,10 +27,10 @@
#
import numpy as np
-in_vars = ['x0', 'y0', 'v0', 'ang', 'timeOption']
-out_vars = ['x', 'y', 'r', 't', 'v', 'a']
+in_vars = ['x0', 'y0', 'v0', 'angle', 'timeOption']
+out_vars = ['x', 'y', 'r', 't', 'v', 'a', 'ymax']
-def prange(v,th,y0=0,g=9.8):
+def prange(v, th, y0=0, g=9.8):
"""
Calculates the analytic range.
@ In, v, float, velocity of the projectile
@@ -39,7 +39,20 @@ def prange(v,th,y0=0,g=9.8):
@ In, g, float, optional, gravitational constant (m/s/s)
@ Out, prange, float, range
"""
- return v*np.cos(th)/g * (v*np.sin(th) + np.sqrt(v*v*np.sin(th)**2+2.*g*y0))
+ return v * np.cos(th) / g * \
+ (v * np.sin(th) + np.sqrt(v * v * np.sin(th)**2 + 2. * g * y0))
+
+def pMaxHeight(v, th, y0=0, g=9.8):
+ """
+ Calculates the analytic max height the projectile achieves.
+ @ In, v, float, initial velocity of the projectile
+ @ In, th, float, angle to the ground for initial projectile motion
+ @ In, y0, float, optional, initial launch height
+ @ In, g, float, optional, gravitational constant (m/s/s)
+ @ Out, pMaxHeight, float, max height achieved
+ """
+ vY = v * np.sin(th)
+ return vY**2 / (2.0 * g) + y0
def time_to_ground(v,th,y0=0,g=9.8):
"""
@@ -86,7 +99,7 @@ def run(raven, inputs):
vars = {'x0': get_from_raven(raven,'x0', 0),
'y0': get_from_raven(raven,'y0', 0),
'v0': get_from_raven(raven,'v0', 1),
- 'ang': get_from_raven(raven,'v0', 45),
+ 'ang': get_from_raven(raven,'angle', 45),
'timeOption': get_from_raven(raven,'timeOption', 0)}
res = main(vars)
raven.x = res['x']
@@ -95,6 +108,7 @@ def run(raven, inputs):
raven.r = res['r'] * np.ones(len(raven.x))
raven.v = res['v']
raven.a = res['a']
+ raven.ymax = res['ymax'] * np.ones(len(raven.x))
raven.timeOption = vars['timeOption']
def get_from_raven(raven, attr, default=None):
@@ -104,7 +118,7 @@ def main(Input):
x0 = Input.get('x0', 0)
y0 = Input.get('y0', 0)
v0 = Input.get('v0', 1)
- ang = Input.get('angle', 45)
+ ang = Input.get('ang', 45)
g = Input.get('g', 9.8)
timeOption = Input.get('timeOption', 0)
ang = ang * np.pi / 180
@@ -113,11 +127,13 @@ def main(Input):
else:
# due to numpy library update, the return shape of np.linspace
# is changed when an array-like input is provided, i.e. return from time_to_ground
- ts = np.linspace(0,time_to_ground(v0,ang,y0),10)
+ endTime = time_to_ground(v0, ang, y0)
+ ts = np.linspace(0, endTime, 10)
vx0 = np.cos(ang)*v0
vy0 = np.sin(ang)*v0
- r = prange(v0,ang,y0)
+ r = prange(v0, ang, y0=y0, g=g)
+ ymax = pMaxHeight(v0, ang, y0=y0, g=g)
x = np.zeros(len(ts))
y = np.zeros(len(ts))
@@ -130,8 +146,18 @@ def main(Input):
v[i] = vm
a[i] = current_angle(v0, ang, vm)
t = ts
- return {'x': x, 'y': y, 'r': r, 't': ts, 'v': v, 'a': a,
- 'x0': x0, 'y0': y0, 'v0': v0, 'ang': ang, 'timeOption': timeOption}
+ return {'x': x,
+ 'y': y,
+ 'r': r,
+ 'ymax': ymax,
+ 't': ts,
+ 'v': v,
+ 'a': a,
+ 'x0': x0,
+ 'y0': y0,
+ 'v0': v0,
+ 'angle': ang,
+ 'timeOption': timeOption}
#can be used as a code as well
if __name__=="__main__":
@@ -141,6 +167,8 @@ def main(Input):
#construct the input
Input = {}
for line in open(inFile,'r'):
+ if line.startswith('#') or line.strip()=='':
+ continue
arg, val = (a.strip() for a in line.split('='))
Input[arg] = float(val)
#run the code
@@ -149,8 +177,9 @@ def main(Input):
outFile = open(outFile+'.csv','w')
outFile.writelines(','.join(in_vars) + ',' + ','.join(out_vars) + '\n')
template = ','.join('{{}}'.format(v) for v in in_vars + out_vars) + '\n'
- print('template:', template)
for i in range(len(res['t'])):
this = [(res[v][i] if len(np.shape(res[v])) else res[v]) for v in in_vars + out_vars]
outFile.writelines(template.format(*this))
outFile.close()
+ print('range:', res['r'])
+ print('max height:', res['ymax'])
\ No newline at end of file
diff --git a/tests/framework/OutStreams/gold/linePlot/test_filename.png b/tests/framework/OutStreams/gold/linePlot/test_filename.png
index f10af63021..9db7cddc56 100644
Binary files a/tests/framework/OutStreams/gold/linePlot/test_filename.png and b/tests/framework/OutStreams/gold/linePlot/test_filename.png differ
diff --git a/tests/framework/ROM/SKLearn/gold/data/outSVRProjectile.csv b/tests/framework/ROM/SKLearn/gold/data/outSVRProjectile.csv
new file mode 100644
index 0000000000..57236a466f
--- /dev/null
+++ b/tests/framework/ROM/SKLearn/gold/data/outSVRProjectile.csv
@@ -0,0 +1,12 @@
+angle,r,ProbabilityWeight-angle,prefix,PointProbability,ProbabilityWeight
+0.0,-0.000459407907005,0.05,1,0.0111111111111,0.05
+9.0,0.0351414095582,0.1,2,0.0111111111111,0.1
+18.0,0.0628309342533,0.1,3,0.0111111111111,0.1
+27.0,0.0826091661784,0.1,4,0.0111111111111,0.1
+36.0,0.0944761053335,0.1,5,0.0111111111111,0.1
+45.0,0.0984317517185,0.1,6,0.0111111111111,0.1
+54.0,0.0944761053335,0.1,7,0.0111111111111,0.1
+63.0,0.0826091661784,0.1,8,0.0111111111111,0.1
+72.0,0.0628309342533,0.1,9,0.0111111111111,0.1
+81.0,0.0351414095582,0.1,10,0.0111111111111,0.1
+90.0,-0.000459407907005,0.05,11,0.0111111111111,0.05
diff --git a/tests/framework/ROM/SKLearn/gold/data/outSVRProjectile.xml b/tests/framework/ROM/SKLearn/gold/data/outSVRProjectile.xml
new file mode 100644
index 0000000000..1a9a6fed8b
--- /dev/null
+++ b/tests/framework/ROM/SKLearn/gold/data/outSVRProjectile.xml
@@ -0,0 +1,12 @@
+
+
+
+ outData
+ angle
+ r
+ PointProbability,ProbabilityWeight,ProbabilityWeight-angle,prefix
+ RAVEN_sample_ID
+
+
+
+
diff --git a/tests/framework/ROM/SKLearn/gold/data/plotSVRProjectile_scatter-scatter.png b/tests/framework/ROM/SKLearn/gold/data/plotSVRProjectile_scatter-scatter.png
new file mode 100644
index 0000000000..6a30edaea1
Binary files /dev/null and b/tests/framework/ROM/SKLearn/gold/data/plotSVRProjectile_scatter-scatter.png differ
diff --git a/tests/framework/ROM/SKLearn/svrProjectile.xml b/tests/framework/ROM/SKLearn/svrProjectile.xml
new file mode 100644
index 0000000000..cdd93598c9
--- /dev/null
+++ b/tests/framework/ROM/SKLearn/svrProjectile.xml
@@ -0,0 +1,147 @@
+
+
+
+ framework/ROM/SKLearn.SVR
+ Mohammad Abdo (@Jimmy.INL)
+ 2022-04-22
+ SupervisedLearning.SciKitLearn
+
+ An example exercising supervised sklearn methods, specifically
+ the svm|SVR model is tested here.
+ Note, all of the tests in SKLearn operate on a 2D input domain with
+ the goal of fitting a paraboloid function. The input dimensions are
+ of largely different scales and one dimension is off-centered from
+ the origin to ensure that normalization is being handled correctly.
+ Classifiers will use this same function to determine if a point is
+ above 0.25, and multitask methods will additionally fit an additive
+ model (x+y).
+
+
+
+
+
+
+ data
+
+ sample,
+ train,
+ resample,
+ plot
+
+
+
+
+ dummyIN
+ projectile
+ mcSampler
+
+
+
+ dummyIN
+ svrROM
+ mcSampler
+
+
+
+
+ trainingData
+
+
+
+ trainingData
+ outData
+
+
+
+
+
+
+ angle,v0,r,ymax
+
+
+ angle,v0
+ r,ymax
+ rbf
+ True
+
+
+
+
+
+
+ 100
+ 888
+
+
+ vel_dist
+
+
+ angle_dist
+
+ 0
+ 0
+ 1
+
+
+
+
+
+ 1
+ 60
+
+
+ 5
+ 85
+
+
+
+
+
+
+ csv
+
+ outSVRProjectile
+ input,output, metadata
+
+
+
+
+
+ scatter
+ trainingData|Input|angle
+ trainingData|Output|r
+ blue
+
+
+ scatter
+ +
+ outData|Input|angle
+ outData|Output|r
+ red
+
+ angle
+ r
+
+
+ png
+
+
+
+
+
+
+
+ angle,v0
+
+
+
+ angle,v0
+
+
+
+
+ angle,v0
+
+
+
+
diff --git a/tests/framework/ROM/SKLearn/tests b/tests/framework/ROM/SKLearn/tests
index 4ee60714d9..3293725fad 100644
--- a/tests/framework/ROM/SKLearn/tests
+++ b/tests/framework/ROM/SKLearn/tests
@@ -124,6 +124,18 @@
UnorderedCsv = 'data/outSVR.csv'
output = 'data/outSVR.xml'
[../]
+ [./SVRProjectile]
+ type = 'RavenFramework'
+ input = 'svrProjectile.xml'
+ required_libraries = 'imageio'
+ UnorderedCsv = 'data/outSVRProjectile.csv'
+ rel_err = 5.0e-6
+ [./image_diff]
+ type = ImageDiffer
+ output = 'data/plotSVRProjectile_scatter-scatter.png'
+ rel_err = 0.01
+ [../]
+ [../]
[./KNR]
type = 'RavenFramework'
input = 'knr.xml'
diff --git a/tests/framework/gold/Basic/to_file.csv b/tests/framework/gold/Basic/to_file.csv
index 57a7bc6730..e960ab882c 100644
--- a/tests/framework/gold/Basic/to_file.csv
+++ b/tests/framework/gold/Basic/to_file.csv
@@ -1,11 +1,11 @@
-v0,angle,r,t,prefix,ProbabilityWeight-v0,ProbabilityWeight-angle,PointProbability,ProbabilityWeight
-47.9960360788,34.9632091517,235.063212171,1.0,1,1.0,1.0,0.00021186440678,1.0
-11.8226524752,81.0571449427,14.2627664846,1.0,2,1.0,1.0,0.00021186440678,1.0
-47.0017688598,63.5595150801,225.425130199,1.0,3,1.0,1.0,0.00021186440678,1.0
-36.2141595332,52.8926789127,133.822994969,1.0,4,1.0,1.0,0.00021186440678,1.0
-27.3041326993,17.4814910843,76.0730267819,1.0,5,1.0,1.0,0.00021186440678,1.0
-6.89852031132,17.4795619055,4.85607984547,1.0,6,1.0,1.0,0.00021186440678,1.0
-28.0956843889,9.64668888707,80.5477021715,1.0,7,1.0,1.0,0.00021186440678,1.0
-20.6888080723,74.2940919076,43.6762019849,1.0,8,1.0,1.0,0.00021186440678,1.0
-9.42914204426,53.0892009214,9.0723183358,1.0,9,1.0,1.0,0.00021186440678,1.0
-39.4024199313,61.6458062773,158.423540454,1.0,10,1.0,1.0,0.00021186440678,1.0
+v0,angle,r,t,ProbabilityWeight-angle,ProbabilityWeight,prefix,ProbabilityWeight-v0,PointProbability
+47.9960360788,34.9632091517,220.783735327,1.0,1.0,1.0,1,1.0,0.00021186440678
+11.8226524752,81.0571449427,4.38037050675,1.0,1.0,1.0,2,1.0,0.00021186440678
+47.0017688598,63.5595150801,179.750287414,1.0,1.0,1.0,3,1.0,0.00021186440678
+36.2141595332,52.8926789127,128.776201221,1.0,1.0,1.0,4,1.0,0.00021186440678
+27.3041326993,17.4814910843,43.5934255928,1.0,1.0,1.0,5,1.0,0.00021186440678
+6.89852031132,17.4795619055,2.78249435717,1.0,1.0,1.0,6,1.0,0.00021186440678
+28.0956843889,9.64668888707,26.6133882099,1.0,1.0,1.0,7,1.0,0.00021186440678
+20.6888080723,74.2940919076,22.7634097068,1.0,1.0,1.0,8,1.0,0.00021186440678
+9.42914204426,53.0892009214,8.71304351266,1.0,1.0,1.0,9,1.0,0.00021186440678
+39.4024199313,61.6458062773,132.424292509,1.0,1.0,1.0,10,1.0,0.00021186440678
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-historyPlot_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-historyPlot_scatter-scatter.png
index 56b345d2f7..b6b75150a6 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-historyPlot_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-historyPlot_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-samplesPlot3D_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-samplesPlot3D_scatter-scatter.png
index def8d2787f..c79347d24c 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-samplesPlot3D_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/1-samplesPlot3D_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/histories_0.csv b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/histories_0.csv
index 4ba5aafac2..e507b385ba 100644
--- a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/histories_0.csv
+++ b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Grid/histories_0.csv
@@ -1,11 +1,11 @@
t,x,y,r
-0.0,0.0,0.0,56.7952953668
-0.1111111111111111,1.85358160906,1.7930877819,56.7952953668
-0.2222222222222222,3.70716321812,3.46518790948,56.7952953668
-0.3333333333333333,5.56074482718,5.01630038274,56.7952953668
-0.4444444444444444,7.41432643624,6.44642520167,56.7952953668
-0.5555555555555556,9.2679080453,7.75556236629,56.7952953668
-0.6666666666666666,11.1214896544,8.94371187658,56.7952953668
-0.7777777777777777,12.9750712634,10.0108737326,56.7952953668
-0.8888888888888888,14.8286528725,10.9570479342,56.7952953668
-1.0,16.6822344815,11.7822344815,56.7952953668
+0.0,0.0,0.0,31.7595261196
+0.1111111111111111,2.50681927464,0.70591773797,31.7595261196
+0.2222222222222222,5.01363854929,1.29084782162,31.7595261196
+0.3333333333333333,7.52045782393,1.75479025095,31.7595261196
+0.4444444444444444,10.0272770986,2.09774502595,31.7595261196
+0.5555555555555556,12.5340963732,2.31971214664,31.7595261196
+0.6666666666666666,15.0409156479,2.42069161301,31.7595261196
+0.7777777777777777,17.5477349225,2.40068342505,31.7595261196
+0.8888888888888888,20.0545541972,2.25968758277,31.7595261196
+1.0,22.5613734718,1.99770408618,31.7595261196
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-historyPlot_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-historyPlot_scatter-scatter.png
index 031b1a60de..92d847ffd6 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-historyPlot_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-historyPlot_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-samplesPlot3D_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-samplesPlot3D_scatter-scatter.png
index 70ccbc7b65..b238f659ca 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-samplesPlot3D_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/1-samplesPlot3D_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/histories_0.csv b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/histories_0.csv
index 1141d48559..929d234fa7 100644
--- a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/histories_0.csv
+++ b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/MonteCarlo/histories_0.csv
@@ -1,11 +1,11 @@
t,x,y,r
-0.0,0.0,0.0,99.1673105954
-0.1111111111111111,2.44928768158,2.38879385442,99.1673105954
-0.2222222222222222,4.89857536316,4.65660005451,99.1673105954
-0.3333333333333333,7.34786304473,6.80341860029,99.1673105954
-0.4444444444444444,9.79715072631,8.82924949174,99.1673105954
-0.5555555555555556,12.2464384079,10.7340927289,99.1673105954
-0.6666666666666666,14.6957260895,12.5179483117,99.1673105954
-0.7777777777777777,17.145013771,14.1808162402,99.1673105954
-0.8888888888888888,19.5943014526,15.7226965144,99.1673105954
-1.0,22.0435891342,17.1435891342,99.1673105954
+0.0,0.0,0.0,98.2474106384
+0.1111111111111111,2.27679535498,2.54991288556,98.2474106384
+0.2222222222222222,4.55359070996,4.97883811679,98.2474106384
+0.3333333333333333,6.83038606494,7.2867756937,98.2474106384
+0.4444444444444444,9.10718141992,9.4737256163,98.2474106384
+0.5555555555555556,11.3839767749,11.5396878846,98.2474106384
+0.6666666666666666,13.6607721299,13.4846624985,98.2474106384
+0.7777777777777777,15.9375674849,15.3086494581,98.2474106384
+0.8888888888888888,18.2143628398,17.0116487635,98.2474106384
+1.0,20.4911581948,18.5936604144,98.2474106384
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-historyPlot_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-historyPlot_scatter-scatter.png
index bed43e0ec5..9a86f3932d 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-historyPlot_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-historyPlot_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesModelPlot3D_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesModelPlot3D_scatter-scatter.png
index 1f9af12916..85956f9974 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesModelPlot3D_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesModelPlot3D_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesROMPlot3D_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesROMPlot3D_scatter-scatter.png
index 3f33a648d9..c31d096f22 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesROMPlot3D_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/1-samplesROMPlot3D_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/rom_output.xml b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/rom_output.xml
index d2c7ad440d..8130e32438 100644
--- a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/rom_output.xml
+++ b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/SparseGrid/rom_output.xml
@@ -7,321 +7,321 @@
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 93.919550496
- 93.919550496
- 768.831404793
+ 66.3724570214
+ 66.3724570214
+ 1013.79761977
13
- <_0_0_>93.919550496
- <_0_1_>-7.1054273576e-15
- <_0_2_>-0.494924120749
- <_1_0_>27.6607295253
- <_1_1_>7.1054273576e-15
- <_2_0_>1.86292700732
+ <_0_0_>66.3724570214
+ <_0_1_>0.0
+ <_0_2_>-24.6823927141
+ <_1_0_>20.107810304
+ <_1_1_>0.0
+ <_2_0_>0.503065066277
v0,angle
- 0.244949885299
- 768.586454908
- 5.04870979341e-29
+ 609.220510091
+ 404.577109683
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
- 0.000318600259786
- 0.99968139974
- 6.56673200644e-32
+ 0.600929118601
+ 0.399070881399
+ 0.0
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-historyPlot_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-historyPlot_scatter-scatter.png
index 3bc89c7feb..3b86e465ca 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-historyPlot_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-historyPlot_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-samplesPlot3D_scatter-scatter.png b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-samplesPlot3D_scatter-scatter.png
index c47e13e904..cbe524cab2 100644
Binary files a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-samplesPlot3D_scatter-scatter.png and b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/1-samplesPlot3D_scatter-scatter.png differ
diff --git a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/histories_0.csv b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/histories_0.csv
index 0e585ed19d..0bb1e9c405 100644
--- a/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/histories_0.csv
+++ b/tests/framework/user_guide/ForwardSamplingStrategies/gold/RunDir/Stratified/histories_0.csv
@@ -1,11 +1,11 @@
t,x,y,r
-0.0,0.0,0.0,122.911504033
-0.1111111111111111,2.72679065588,2.66629682872,122.911504033
-0.2222222222222222,5.45358131177,5.21160600313,122.911504033
-0.3333333333333333,8.18037196765,7.63592752321,122.911504033
-0.4444444444444444,10.9071626235,9.93926138897,122.911504033
-0.5555555555555556,13.6339532794,12.1216076004,122.911504033
-0.6666666666666666,16.3607439353,14.1829661575,122.911504033
-0.7777777777777777,19.0875345912,16.1233370603,122.911504033
-0.8888888888888888,21.8143252471,17.9427203088,122.911504033
-1.0,24.541115903,19.641115903,122.911504033
+0.0,0.0,0.0,120.417309699
+0.1111111111111111,2.9875884568,2.3777616506,120.417309699
+0.2222222222222222,5.9751769136,4.63453564688,120.417309699
+0.3333333333333333,8.9627653704,6.77032198884,120.417309699
+0.4444444444444444,11.9503538272,8.78512067647,120.417309699
+0.5555555555555556,14.937942284,10.6789317098,120.417309699
+0.6666666666666666,17.9255307408,12.4517550888,120.417309699
+0.7777777777777777,20.9131191976,14.1035908135,120.417309699
+0.8888888888888888,23.9007076544,15.6344388838,120.417309699
+1.0,26.8882961112,17.0442992998,120.417309699