public class FURIA extends Classifier implements WeightedInstancesHandler
@article{huehn2009furia, author = {Jens Christian Hühn and Eyke Hüllermeier}, journal = {Data Mining and Knowledge Discovery}, title = {FURIA: An Algorithm for Unordered Fuzzy Rule Induction}, year = {to appear} } @inproceedings{Cohen1995, author = {William W. Cohen}, booktitle = {Twelfth International Conference on Machine Learning}, pages = {115-123}, publisher = {Morgan Kaufmann}, title = {Fast Effective Rule Induction}, year = {1995} }Valid options are:
-F <number of folds> Set number of folds for REP One fold is used as pruning set. (default 3)
-N <min. weights> Set the minimal weights of instances within a split. (default 2.0)
-O <number of runs> Set the number of runs of optimizations. (Default: 2)
-D Set whether turn on the debug mode (Default: false)
-S <seed> The seed of randomization (Default: 1)
-E Whether NOT check the error rate>=0.5 in stopping criteria (default: check)
-s Whether use rule stretching or refrain from classifying (default: use stretching)
Modifier and Type | Field and Description |
---|---|
static int |
FILTER_NONE
filter: No normalization/standardization
|
static int |
FILTER_NORMALIZE
filter: Normalize training data
|
static int |
FILTER_STANDARDIZE
filter: Standardize training data
|
protected AttributeWeka |
m_Class
The class attribute of the data
|
protected boolean |
m_Debug
Whether in a debug mode
|
protected FastVector |
m_Distributions
The predicted class distribution
|
protected Randomize |
m_Random
Random object used in this class
|
FastVector |
m_Ruleset
The ruleset
|
protected FastVector |
m_RulesetStats
The RuleStats for the ruleset of each class value
|
protected long |
m_Seed
The seed to perform randomization
|
protected double |
m_Total
# of all the possible conditions in a rule
|
Constructor and Description |
---|
FURIA(parseParameters params)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
void |
buildClassifier(Instances instances)
Builds Ripper in the order of class frequencies.
|
java.lang.String |
checkErrorRateTipText()
Returns the tip text for this property
|
java.lang.String |
debugTipText()
Returns the tip text for this property
|
double[] |
distributionForInstance(Instance datum)
Classify the test instance with the rule learner and provide
the class distributions
|
java.util.Enumeration |
enumerateMeasures()
Returns an enumeration of the additional measure names
|
void |
execute()
It launches the FURIA algorithm
|
java.lang.String |
foldsTipText()
Returns the tip text for this property
|
boolean |
getCheckErrorRate()
Gets whether to check for error rate is in stopping criterion
|
boolean |
getDebug()
Gets whether debug information is output to the console
|
int |
getFolds()
Gets the number of folds
|
double |
getMeasure(java.lang.String additionalMeasureName)
Returns the value of the named measure
|
double |
getMinNo()
Gets the minimum total weight of the instances in a rule
|
int |
getOptimizations()
Gets the the number of optimization runs
|
java.lang.String |
getRevision()
Returns revision ( string "1.0")
|
FastVector |
getRuleset()
Get the ruleset generated by Ripper
|
RuleStats |
getRuleStats(int pos)
Get the statistics of the ruleset in the given position
|
long |
getSeed()
Gets the current seed value to use in randomizing the data
|
boolean |
getUseRuleStretching()
Gets whether pruning is performed
|
protected Instances |
InstancesKEEL2Weka(InstanceSet is,
int preprocessType)
Creates a new allocated WEKA's set of Instances (i.e.
|
java.lang.String |
minNoTipText()
Returns the tip text for this property
|
java.lang.String |
optimizationsTipText()
Returns the tip text for this property
|
protected Instances |
rulesetForOneClass(double expFPRate,
Instances data,
double classIndex,
double defDL)
Build a ruleset for the given class according to the given data
|
java.lang.String |
seedTipText()
Returns the tip text for this property
|
void |
setCheckErrorRate(boolean d)
Sets whether to check for error rate is in stopping criterion
|
void |
setDebug(boolean d)
Sets whether debug information is output to the console
|
void |
setFolds(int fold)
Sets the number of folds to use
|
void |
setMinNo(double m)
Sets the minimum total weight of the instances in a rule
|
void |
setOptimizations(int run)
Sets the number of optimization runs
|
void |
setSeed(long s)
Sets the seed value to use in randomizing the data
|
void |
setUseRuleStretching(boolean d)
Sets whether pruning is performed
|
java.lang.String |
toString()
Prints the all the rules of the rule learner.
|
java.lang.String |
useRuleStretchingTipText()
Returns the tip text for this property
|
classifyInstance, forName, getOptions, listOptions, makeCopies, makeCopy, setOptions
protected AttributeWeka m_Class
public FastVector m_Ruleset
protected FastVector m_Distributions
protected Randomize m_Random
protected double m_Total
protected long m_Seed
protected boolean m_Debug
protected FastVector m_RulesetStats
public static final int FILTER_NORMALIZE
public static final int FILTER_STANDARDIZE
public static final int FILTER_NONE
public FURIA(parseParameters params)
params
- given parser.public void execute()
protected Instances InstancesKEEL2Weka(InstanceSet is, int preprocessType)
is
- The KEEL Instance setpreprocessType
- An integer with the type of preprocess done before exporting data to Weka format (0 = normalize, 1 = standardize, 2 = do nothing).public java.util.Enumeration enumerateMeasures()
public double getMeasure(java.lang.String additionalMeasureName)
additionalMeasureName
- the name of the measure to query for its valuejava.lang.IllegalArgumentException
- if the named measure is not supportedpublic java.lang.String foldsTipText()
public void setFolds(int fold)
fold
- the number of foldspublic int getFolds()
public java.lang.String minNoTipText()
public void setMinNo(double m)
m
- the minimum total weight of the instances in a rulepublic double getMinNo()
public java.lang.String seedTipText()
public void setSeed(long s)
s
- the new seed valuepublic long getSeed()
public java.lang.String optimizationsTipText()
public void setOptimizations(int run)
run
- the number of optimization runspublic int getOptimizations()
public java.lang.String debugTipText()
debugTipText
in class Classifier
public void setDebug(boolean d)
setDebug
in class Classifier
d
- whether debug information is output to the consolepublic boolean getDebug()
getDebug
in class Classifier
public java.lang.String checkErrorRateTipText()
public void setCheckErrorRate(boolean d)
d
- whether to check for error rate is in stopping criterionpublic boolean getCheckErrorRate()
public java.lang.String useRuleStretchingTipText()
public void setUseRuleStretching(boolean d)
d
- Whether pruning is performedpublic boolean getUseRuleStretching()
public FastVector getRuleset()
public RuleStats getRuleStats(int pos)
pos
- the position of the stats, assuming correctpublic void buildClassifier(Instances instances) throws java.lang.Exception
buildClassifier
in class Classifier
instances
- the training datajava.lang.Exception
- if classifier can't be built successfullypublic double[] distributionForInstance(Instance datum) throws java.lang.Exception
distributionForInstance
in class Classifier
datum
- the instance to be classifiedjava.lang.Exception
protected Instances rulesetForOneClass(double expFPRate, Instances data, double classIndex, double defDL) throws java.lang.Exception
expFPRate
- the expected FP/(FP+FN) used in DL calculationdata
- the given dataclassIndex
- the given class indexdefDL
- the default DL in the datajava.lang.Exception
- if the ruleset can be built properlypublic java.lang.String toString()
toString
in class java.lang.Object
public java.lang.String getRevision()