You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Attempting to learn a Bayesian Network from distributed data (qualities and not instances of subjects) and explicitly defining an archetype by selecting learning instances via random spatial sampling. Minimal example:
Archetype definition:
model each earth:Site with im:High geography:Elevation,
geography:Elevation in m,
earth:AtmosphericTemperature in Celsius,
geography:Slope in degree_angle
observing
geography:Elevation in m named elev,
earth:AtmosphericTemperature in Celsius named temp,
geography:Slope in degree_angle
using gis.points.extract(select = [ elev > 1500 && random() > 0.999]); // randomly sampling space
Bayesian Network learning:
learn geography:Elevation within earth:Site
observing
@archetype earth:Site with im:High geography:Elevation,
@predictor earth:AtmosphericTemperature,
@predictor geography:Slope
using im.weka.bayesnet(resource = elev.ml );
Expected behavior
Successful archetype instantiation : this works.
Production of a Bayesian Network resource when executing the learner: this fails.
Error encountered
Directly executing the learner throws a java.lang.IllegalStateException: Weka: the archetype observations do not contain values for the learned quality and all predictors: missing [elevation, atmospheric_temperature_of_site, slope].
Instantiating the archetype and then executing the learner throws a warning: variable elev undefined. Defining as numeric no-data (NaN) for subsequent evaluations. and then the same error java.lang.IllegalStateException: Weka: the archetype observations do not contain values for the learned quality and all predictors: missing [elevation, atmospheric_temperature_of_site, slope]. The dataflow shows that the learner doesn't use the resolved archetype but instead resolves it again and seems to fail to extract correctly the points because does not recognize elev variable in the groovy expression.
What is working
Learning from a distributed context with an implicit archetype works:
learn geography:Elevation
observing
@predictor earth:AtmosphericTemperature in Celsius
@predictor geography:Slope in degree_angle
using im.weka.bayesnet( learned.elevation )
Learning with an explicit archetype directly modeled from a dataset containing the learning instances also works. Note that the following code requires the import of an external resource to function, thus serves only for illustration.
/* The archetype:
In the resource there are features named elev, temp and slope.
These 2 features are semantically annotated by geogrpahy:Elevation, earth:AtmosphericTemperature and geography:Slope respectively.
*/
model each "elevation:URN"
as earth:Site with im:High geography:Elevation,
elev as geography:Elevation,
temp as earth:AtmosphericTemperature in Celsius,
slope as geography:Slope in degree_angle;
learn geography:Elevation within earth:Site
observing
@archetype earth:Site with im:High geography:Elevation
@predictor earth:AtmosphericTemperature in Celsius
@predictor geography:Slope in degree_angle
using im.weka.bayesnet( learned.elevation )
The text was updated successfully, but these errors were encountered:
Context
Attempting to learn a Bayesian Network from distributed data (qualities and not instances of subjects) and explicitly defining an archetype by selecting learning instances via random spatial sampling. Minimal example:
Archetype definition:
Bayesian Network learning:
Expected behavior
Error encountered
Directly executing the learner throws a
java.lang.IllegalStateException: Weka: the archetype observations do not contain values for the learned quality and all predictors: missing [elevation, atmospheric_temperature_of_site, slope].
Instantiating the archetype and then executing the learner throws a warning:
variable elev undefined. Defining as numeric no-data (NaN) for subsequent evaluations.
and then the same errorjava.lang.IllegalStateException: Weka: the archetype observations do not contain values for the learned quality and all predictors: missing [elevation, atmospheric_temperature_of_site, slope].
The dataflow shows that the learner doesn't use the resolved archetype but instead resolves it again and seems to fail to extract correctly the points because does not recognizeelev
variable in the groovy expression.What is working
Learning from a distributed context with an implicit archetype works:
Learning with an explicit archetype directly modeled from a dataset containing the learning instances also works. Note that the following code requires the import of an external resource to function, thus serves only for illustration.
The text was updated successfully, but these errors were encountered: