Java Reference
In-Depth Information
Listing 9-10
Exploring model contents
1. //Retrieve built model
2. public void output() throws JDMException {
3. ClassificationModel clsModel = (ClassificationModel)dmeConn.retrieveObject(
4. "attrition_model", NamedObject.model );
5. //Print attributes actually used by this model i.e., model signature
6. ModelSignature signature= clsModel.getSignature();
7. Collection signatureAttrs = signature.getAttributes();
8. Iterator signatureAttrsIterator = signatureAttrs.iterator();
9. while(signatureAttrsIterator.hasNext()) {
10. SignatureAttribute attr = (SignatureAttribute)signatureAttrsIterator.next();
11. System.out.println(attr.getName() + " " + attr.getAttributeType().name());
12. }
13. //Get algorithm used by the model
14. MiningAlgorithm algorithm = clsModel.getMiningAlgorithm();
15. //Cast model details appropriately based on algorithm
16. if(MiningAlgorithm.decisionTree.equals(algorithm)) {
17. TreeModelDetail modelDetails = (TreeModelDetail)clsModel.getModelDetail();
18. TreeNode rootNode = modelDetails.getRootNode();
19. boolean hasNodes = true;
20. TreeNode[] firstLevelNodes = rootNode.getChildren();
21. for(int i=0; i < firstLevelNodes.length; i++) {
22. System.out.println("Nodes Prediction: " +
23. firstLevelNodes[i].getPrediction().toString());
24. System.out.println("Number of cases: " + firstLevelNodes[i].getCaseCount());
25. System.out.println("Node Rule: " + firstLevelNodes[i].getRule().toString());
26. }
27. } else if(MiningAlgorithm.naiveBayes.equals(algorithm)) {
28. NaiveBayesModelDetail modelDetails =
29. (NaiveBayesModelDetail)clsModel.getModelDetail();
30. Map pairProbabilities =
modelDetails.getPairProbabilities("capital_gain", "Atttriter");
31. double targetProbability = modelDetails.getTargetProbability("Attriter");
32. System.out.println("Target Probability of the attrition value 'Attriter': " +
33. targetProbability);
34. System.out.println(
35. "Pair Probabilities of the capital gains values and attrition value 'Attriter': "
36. + pairProbabilities.toString());
37. } else if(MiningAlgorithm.svmClassification.equals(algorithm)) {
38. SVMClassificationModelDetail modelDetails =
39. (SVMClassificationModelDetail)clsModel.getModelDetail();
40. Map attributeCoefficients =
modelDetails.getCoefficients( "Attriter", "capital_gain");
41. System.out.println(
42. "Capital gain attribute coefficient values when the attrition value 'Attriter': " +
43. attributeCoefficients.toString());
44. } else if(MiningAlgorithm.feedForwardNeuralNet.equals(algorithm)) {
45. NeuralNetworkModelDetail modelDetails =
46. (NeuralNetworkModelDetail)clsModel.getModelDetail();
47. int[] layerIds = modelDetails.getLayerIdentifiers();
Search WWH ::




Custom Search