News archive for February 2009

DataModeler Release 12.0

Friday, February 27, 2009

Again, we continue with fleshing out and migrating the documentation in this release of 27 February 2009. Additionaly, some other changes have been made:

  • Included negation, \[DoubleStruckCapitalM], as well as inversion, \[DoubleStruckCapitalI]\[DoubleStruckCapitalV], as default FunctionPatterns and make the appropriate modifications to the PatternMapping and InversePatternMapping options for SymbolicRegression. The InversePatternMapping was also modified to promote the incluson of \[DoubleStruckCapitalD], \[DoubleStruckCapitalS]\[DoubleStruckCapitalQ] and \[DoubleStruckCapitalP]2 (divide, square root and square) in the inverse mapping to minimize creation of \[DoubleStruckCapitalP] (power) structures when aligning models or if ActiveGenomeSimplification is enabled during SymbolicRegression.
  • Implemented a RemoveModelScaling function which strips away scaling and translation factors from models. The returned models will maintain the original ModelPersonality; however, the ModelFitness will be reset to Indeterminate.
  • Modified AlignModelExpression (and, by extension, AlignModel) so that any integers in the ModelGenome will be maintained across the alignment process. Previously, they would be converted to reals. Although this would not affect model evaluation, it did affect the formatting in ModelSelectionReport and the ilk. Note that the ModelGenome will be modified in the alignment processing due to the need to convert into an expression (PatternMapping) and back (InversePatternMapping).
  • Modified DataOutlierAnalysis, DataOutliers, DataOutlierIndices, DataOutlierTable and DataStrangeness to treat an ensemble as an individual model. Previously, it would break apart the ensemble into its constituent models and look for outliers using them as the reference; however, this behavior was not consistent with the philosophical equivalence between a simple model and an ensemble. HOWEVER, it may still be desirable since such gives a different view of the modeling difficulty. Also, the StrangenessMetric default has been changed to (Mean@#1&). This is better than the previous Total since the result will be independent of the number of supplied models.
  • Fixed a bug in ModelTreePlot wherein graphics options set in the ModelPersonality were not being transferred to the plotting function. Now, for example, embedded PlotLabels will be used. This helps when a ModelTreePlot is a ToolTipFunction in other graphics.
  • Fixed a bug in DivergenceSurfacePlot where a duplicate PlotLabel would be generated if a univariate (single variable) divergence surface was being plotted.
  • Fixed a bug in CreateFittedEnsemble wherein supplying options would cause the function to not be evaluated.
  • Modified EnsemblePersonality so that it returns an empty list when supplied with a model. This facilitates models and ensembles being treated as more interchangeable.
  • Modified ResponseSurfacePlot and DivergenceSurfacePlot to use any EnsemblePersonality information in the graphics generation.
  • Supressed warning messages generated by RandomModels when pathological models are created. It is fairly easy for such random expressions to have divide-by-zero errors and the ilk so suppressing warning display seems reasonable.
  • Modified the ParetoGP and ClassicGP (aka, SymbolicRegression) algorithms to avoid various warning messages which were randomly cropping up. This will avoid confusion on the part of the user.
  • Fixed a bug in SymbolicRegression (and ParetoGP and ClassicGP) wherein it was possible to create and return models which exceeded the specified NumberOfVariables (ModelDimensionality).
  • Fixed a bug in RandomModels and RandomGenomes where supplying only a string or a symbol would result in that symbol being used as a genomic building block rather than serving as the base symbol for automatically synthesized variables. If only a single variable is truly desired, it should be supplied within a list.
  • Fixed a bug in DivergenceSurfacePlot wherein the plot would not be shown if only a single VariablesToPlot was specified. This can now be specified as either a specific symbol or as a list with a single element.