Initializing help system before first use

# Building Apps that use the Decision Tree Editor

If the app you are building generates or imports FSML or FJDT decision trees, you can make it possible for your users to edit the trees as attachments.

Users can edit the contents of any FJDT or FSML file. To enable users to create a new FJDT or FSML file, or add additional predictors or treatments to the tree, the app provides a JSON configuration file is either tagged as `decision-tree-cfg` or has the same name as the decision tree itself (preferred). The file must have a `.json` extension.

To enable the user to profile their tree against a dataset or to build a target driven tree, the app should provide this configuration file and an attachment containing the dataset for the tree. An input data file is either tagged as `decision-tree-data` or has the same name as the decision tree itself (preferred). The file must have CSV or ZIP format.
Note: Xpress Insight has an upper size limit of 300MB for all attachments.

For the profiling and best split operations to run successfully, the dataset must include a column containing data for each of the profile variables and predictors defined in the tree.

The JSON configuration file provides important metadata to the decision tree editor. It is generated by the app to allow the tree editor to work with data within the app, and should not be edited by a user. It should be similar to the following example:

    {
      "predictors": [
         {
           "name":"DK1",
           "displayName":"Predictor 1",
           "type": "real",
    	     "class": "continuous"
         },
         {
           "name":"DK2",
           "displayName":"Predictor 2",
           "type": "enum",
            "categories": ["category1", "category2"],
    	     "class": "categorical"
    	    }
      ],
      "leafNodes": [
    	    {
           "id": "1234",
           "name":"T1",
           "displayName":"Segment 1",
           "type": "string"
         }
      ],
      "profileVariables": [
    	    {
           "name":"PV1",
           "displayName": "Profile Variable 1",
           "profileType":"continuous"
         },
     	   {
           "name":"PV2",
           "displayName": "Profile Variable 2",
           "profileType":"categorical",
           "categories": ["category1", "category2"],
           "defaultTarget": true
         }
      ],
      "sampleWeight": "mySampleWeightVar",
      "dataSetName": "Name of my dataset",
      "leafNodeLabel": "Segments"
    }

This file identifies:

- Predictors

  These variables are the possible levels in the tree and are available for selection by the user in the Predictors panel. The attributes describe the predictor with the type representing:

  - the type of the data (integer, real, string, date, datetime, boolean, enum), and
  - the class representing whether the data is continuous or categorical in nature (used by the server when calculating a best split).

  Both of these attributes are required.

  The `constraints` attribute specifies constraint over the data for the predictor. This is currently only used for `enum` predictors and is required when using enums. The constraints list all the valid values for the enum, which are used to populate the split dialog in the UI.

  Note: In earlier versions of Xpress Insight, predictors were referred to as decision keys and defined in the `config` file using the decisionKeys attribute. This is now deprecated in favor of predictors but is still supported for backwards compatibility with earlier configuration files.
- Leaf Nodes

  These values are the possible leaf node values for the tree. They are available for selection in the treatment library.

- Profile variables

  These are the possible variables that can be profiled through the tree. They will be available in the Profiles panel. All categorical profile variables are also treated as possible targets for the tree and will be available for selection in the Target dialog.

  The profile attributes describe the profile variable, the `profileType` attribute defines the variable as either continuous or categorical. Categorical variables should also define an array of the possible categories. If one of the profile variables should be treated as the default target by the UI then specify defaultTarget to be true.

- Sample weight

  The name of a column to be interpreted as a sample weight for each row. This is used during profiling. The weighted values will be displayed in the profiling UI within columns starting with a W, such as W#T and W%T.

- Name of the dataset

  For display in the properties section of the tree editor.

- Leaf Node Label

  If it is not configured in an FJDT or PMML tree file, the leaf node label can be specified in the configuration file (FSML files do not contain this information). If the value is not set in either file, the Treatment value is used as the label.

  Note: FJDT trees brought in from another app, including old versions of Decision Optimizer, will use the label in the tree rather than Treatments. Decision Optimizer prior to version 8.3 generates trees with a label of Action so all trees generated by older versions of Decision Optimizer will use the label Action rather than Treatments.

See the Xpress Insight Web Client User Guide for a detailed overview of the facilities provided for end-user decision tree editing.

Parent Topic Advanced Topics

© 2001-2026 Fair Isaac Corporation. All rights reserved. This documentation is the property of Fair Isaac Corporation (“FICO”). Receipt or possession of this documentation does not convey rights to disclose, reproduce, make derivative works, use, or allow others to use it except solely for internal evaluation purposes to determine whether to purchase a license to the software described in this documentation, or as otherwise set forth in a written software license agreement between you and FICO (or a FICO affiliate). Use of this documentation and the software described in it must conform strictly to the foregoing permitted uses, and no other use is permitted.