net.sf.jdmf.algorithms.classification
Class PRISMAlgorithm
java.lang.Object
net.sf.jdmf.algorithms.AbstractDataMiningAlgorithm
net.sf.jdmf.algorithms.classification.PRISMAlgorithm
- All Implemented Interfaces:
- DataMiningAlgorithm
public class PRISMAlgorithm
- extends AbstractDataMiningAlgorithm
Implements the PRISM classification algorithm as described in Data Mining:
Practical Machine Learning Tools and Techniques (Second Edition)
by Ian H. Witten and Eibe Frank (Morgan Kaufmann, 2005).
The algorithm finds rules that cover as many instances as possible. All rules
should be 100% accurate (not always possible). A list of rules is generated
for each decision value (the order of rules is IMPORTANT).
1. Take a decision value.
2. Start with a rule: IF true THEN ( decisionName = decisionValue ).
3. Calculate the current rule's accuracy.
4. If accuracy = 0% or there are no attributes left, output the current rule
list.
5. If accuracy = 100%, remove all instances covered by this rule, add the
rule to the list and continue point 2 with the remaining instances.
6. If 0% < accuracy < 100%, extend the current rule for each attribute
value from remaining attributes.
7. Find an extended rule with the highest accuracy and make it the current
rule.
8. Remove the attribute involved in the extended rule.
9. Repeat 3-8.
10. Repeat 1-9 for all decision values.
- Author:
- quorthon
Method Summary |
DataMiningModel |
analyze(InputData inputData)
Analyzes input data (attributes and decisions) and produces output data
(rules, decision trees, clusters, ...). |
Methods inherited from class java.lang.Object |
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
PRISMAlgorithm
public PRISMAlgorithm()
analyze
public DataMiningModel analyze(InputData inputData)
- Description copied from interface:
DataMiningAlgorithm
- Analyzes input data (attributes and decisions) and produces output data
(rules, decision trees, clusters, ...).
- See Also:
DataMiningAlgorithm.analyze(net.sf.jdmf.data.input.InputData)