Change Log for JDM 1.1
||Packages & Interfaces
public void setOutlierTreatment (String logicalAttrName,
Methods descriptions are inconsistent, noting name existence is
verified by the verify method and that they throw exception if the
attribute does not exist.
attributes can be specified with usage, weight, outlier treatment and
outlier identification. However, the API does not provide means to
retrieve these attributes. This is needed when dealing with a restored
|There are methods that
return named objects, but not only the names of those objects. Returning
the object names is important for efficiency is displaying objects in a
||New methods added to
||Consideration for JDM 2.0 is a more
general and powerful ObjectFilter-based interface. This requires a
proposal with use cases, and agreement from vendors / users on need /
|Allow users to explicitly inform
the DME to load data as an optimization hint. This is analogous to models
that can be loaded into memory upon requests by the user. One use case is
where there are different logical data and algorithms to build different
model on the same data.
If not supported by the DME, the methods must be a no-op, as for models.
|Tree model details
were omitted from the API. Add new methods for more information about the
decision tree model: the number of nodes, the number of leaf nodes, and
the tree depth.
|TreeModelDetail has getRules() and getRule(int nodeId) methods, but not an ability to get the rule on a TreeNode. Such functionality is present in Clustering which also supports rules.||New method:
|Currently only one kind of
minimum node size is allowed and precludes vendors from accepting two
kinds (count and percent).
New method in TreeSettings:
New method in TreeSettingsFactory:
|Clarify the ranges of the values for tree depth, level, and number of clusters returned from the models||Javadoc change:
Explicitly specify that all hierarchies start from level 0: Tree, clustering, taxonomy
Tree depth > 0
Number of nodes in the tree > 1
Number of leaf nodes in the tree > 1
Number of clusters > 0
and attribute comparison function need to be coupled since each since they
are not independent. but there's no capability that takes both
|Unify descriptions for create
methods on apply settings:
||ClusteringApplySettingsFactory.create() - javadoc
changed as following:
Creates an instance of
|Correct Javadoc which uses ClusteringApplyContentCapability, instead of ClusteringApplyCapability.||Javadoc changed to use ClusteringApplyCapability.|
|Once an array of destination
attribute names are mapped with an apply content by mapByRank method,
there is no way to get such attribute names for inspection. This is the
same in ClusteringApplySetting.
||The following methods have been
|Clarify in Javadoc that the cardinality of the
destination attribute names specified with the mapByRank method must be
the same across different invocations (with different apply
Clarify also the effect of invoking mapByCategory and mapTopPrediction methods with the apply content.
State clearly that the map methods cannot be used together, e.g., mapByRank and mapPredictions cannot be used with the same apply settings.
|Make changes to the Javadoc accordingly, including
the following descriptions at interface level for ClusteringApplySettings
|Each Task subtype has a verify
method. Produce a cleaner design by moving method to Task. Each child
interface must still implement the method.
The Javadoc of each child interface must describe how verification can be done, and that verification is vendor specific.
|Methods moved Task:
|The Javadoc for verify() says at
On execute, if a signature attribute does not have a mapped input, an exception is raised if synchronous, or a error status if asynchronous.
This means that an exception is thrown if an attribute is missing in the apply data. But it should depends on implementation. For one, record apply may contain only a partial set of attributes in the record. This should apply to data set apply as well.
ApplyTask description augmented with:
If a signature attribute does not have a mapped attribute in the input data, it is the vendor's choice to regard it as a missing value and continue the apply operation. An exception may also be thrown if the vendor does not support such a feature.
|Related to change #13|
|<?> omits a
method to set the description for the test metrics object it creates
because test metrics is a named object.
|SVM classification and regression need supportsCapability method to check which kernel functions are supported by the implementation.||New
|The following parameters for SVM
should not allow 0: Complexity factor, Tolerance,
Epsilon. For example, accepting 0 for tolerance precludes
|It is difficult to get
coefficients or target probabilities when logical data is absent with the
model because these methods require knowledge of data by taking attribute
values as arguments.
|Unify the range
specification of support and confidence. Some use [0..1] and some use
[0..100]. In addition, both boundary values must be
have been changed to use [0..100] in
|Rule ID is necessary in preparation of apply with AR to provide the rule ID associated with the prediction.||New method:
|public Double getValue(Object rowCategoryValue,
Object columnCategoryValue) throws JDMException
This method returns Double, but its behavior is not clear when a non-existing entry is specified. If it returns null for such entries, then it would not be able to support sparse representation of matrices. Also, it looks as though exception does not need to be thrown because it returns null for non-existing entries.
Need to introduce a method with a new name, such as getCellValue, since method overloading is not possible. Then, a new set method also needs to be introduced for completeness.
It is also noted that CategoryMatrix is a common super interface of three other interfaces, but they share little in common; they are tied together as a CategoryMatrix simply because they bear a name that includes Matrix.
CategoryMatrix is deprecated.
|CategoryMatrix: deprecated (along
with getValue method)
New methods in SimilarityMatrix
Note: ConfusionMatrix already has a method getNumberOfPredictions that is equivalent of getCellValue.
|From JDM 2.0, the two remaining methods in
CategoryMatrix will be moved down to CostMatrix, ConfusionMatrix and
SimilarityMatrix and CategoryMatrix will
be removed (deprecated) entirely.|
|The API does not provide a means to inspect the physical attributes based on data type or role. For example, if a physical data is created by metadata import, attributes with unsupported data type will be marked as unknown.||New methods: