Menu

Adding new Artifacts

Xavier

Adding new Artifacts

Artifacts in JaCaDDM are meant to provide Data Mining tools consisting on learning algorithms, data filtering, data management, model evaluation, etc. The platform already provides a set of artifacts, which are found in experimenter.artifacts, that can be used in new learning strategies. Nevertheless it is also possible to add new artifacts as needed. Prior knowledge of CArtAgO is required.

When adding a new artifact, it is necessary to distinguish between classification related artifacts and whatever else. If the artifact is not classification related, there are not any constraints, it can be added directly to experimenter.artifacts package or referenced from a new package (taking into account the classpath when executing node0 and default nodes). If, on the other hand, the artifact is classification related, and specifically, if it wraps a model inducing algorithm not supported by JaCaDDM, then some extra steps are required.

JaCaDDM generically evaluates any kind of classification model, but for that it is necessary that such models implement the experimenter.classifiers.BaseClassifier interface which provides generic methods to induce and do classifications with the model. If you already have a Java-enabled class that represents your model inducer, then it is only a matter of extending from such class and implementing the required methods from the interface accordingly.

Once the classifier is implemented, a new artifact that internally makes use of such classifier can be created. In order to properly work with the platform, the artifact should ideally have definitions for the following operations:

  • @LINK void addInstance(Instance ins): to add a single instance to the training set of the classifier
  • @LINK void addInstances(Instances instances): to add a package of training instances to the training set of the classifier
  • @OPERATION void sendModel(ArtifactId aID): for being able to send the internal model (BaseClassifier implementing) to another artifact through its receiveModel linking operation
  • @LINK void receiveModel(BaseClassifier model): to receive a model by means of the sendModel operation executed in another artifact
  • @LINK void correctlyClassifies(OpFeedbackParam<instance> ins, OpFeedbackParam<boolean> res): for evaluation purposes, determines if an instance is classified correctly </boolean></instance>

MongoDB Logo MongoDB