Listing 9-4 gives the JDM code example that builds a classification
model for the customer attrition problem discussed in Section 7.1. The
CustomerAttrition class (line 6) builds a classification model called the
attrition_model using customers in CUSTOMERS_BUILD_DATA as
input data and the default classification settings. This class has four
methods: init , input , run , and output . The init method (line 29) creates
the DME connection and the object factories. The input method (line
41) creates and saves input object(s). The run method (line 49) exe-
cutes the task(s) and returns true if the tasks are successfully com-
pleted; otherwise it returns false . The output method (line 60) retrieves
the output object(s). Lastly, the reset method (line 65) removes the out-
put object(s) to reset the DME environment. In this chapter, we use
the CustomerAttrition Java class to illustrate the code for the JDM core
API and the classification-specific API. Listing 9-4 illustrates the use
of the Connection interface core methods.
The init method omits Connection creation code since it was intro-
duced in Section 9.1.1, but illustrates using Connection.getFactory to
create factory objects for the PhysicalDataSet , ClassificationSettings
input objects, and the BuildTask object. The input method instantiates
and saves input objects, as shown in lines 41 to 46. Objects are cre-
ated using the corresponding factory's create method, and saved
using the Connection.saveObject method. The saveObject method takes
a boolean flag replaceExistingObject as an argument to control
whether to replace an existing object with the new one. In the exam-
ple, this flag is set to true to replace an existing object with the same
name. Based on application requirements, this flag can be set to false ;
in this case, when there is an object name conflict the saveObject
method throws ObjectExistsException .
The run method creates a BuildTask object using the BuildTaskFac-
tory.create method (line 50). This method takes the names of the input
objects as arguments to create a task, namely, attritionBuildData , attri-
tionBuildSettings , and the name of the output object: attritionModel .
The Connection.execute method (line 53) executes the build task syn-
chr onously; the next section details task execution and monitoring.
The output method uses the Connection.retrieveObject method to get
the model from the DME .
CustomerAttrition example class that illustrates the use of the Connection interface
1. import javax.datamining.data.*;
2. import javax.datamining.supervised.classification.*;
3. import javax.datamining.task.*;