Java Examples for weka.filters.SimpleBatchFilter
The following java examples will help you to understand the usage of weka.filters.SimpleBatchFilter. These source code samples are taken from different open source projects.
Example 1
Project: TimeSeriesClassification-master File: ShapeletExamples.java View source code |
public static Instances basicTransformExample(Instances train) {
/*Class to demonstrate the usage of the FullShapeletTransform. Returns the
* transformed set of instances
*/
st = new ShapeletTransform();
/*The number of shapelets defaults to 100. we recommend setting it to a large
value, since there will be many duplicates and there is little overhead in
* keeping a lot (although the shapelet early abandon becomes less efficient).
*
*/
//Let m=train.numAttributes()-1 (series length)
//Let n= train.numInstances() (number of series)
int nosShapelets = (train.numAttributes() - 1) * train.numInstances() / 5;
if (nosShapelets < FullShapeletTransform.DEFAULT_NUMSHAPELETS)
nosShapelets = FullShapeletTransform.DEFAULT_NUMSHAPELETS;
st.setNumberOfShapelets(nosShapelets);
/* Two other key parameters are minShapeletLength and maxShapeletLength. For
* each value between these two, a full search is performed, which is
* order (m^2n^2), so clearly there is a time/accuracy trade off. Defaults
* to min of 3 max of 30.
*/
int minLength = 5;
int maxLength = (train.numAttributes() - 1) / 10;
if (maxLength < FullShapeletTransform.DEFAULT_MINSHAPELETLENGTH)
maxLength = FullShapeletTransform.DEFAULT_MINSHAPELETLENGTH;
st.setShapeletMinAndMax(minLength, maxLength);
/*Next you need to set the quality measure. This defaults to IG, but
* we recommend using the F stat. It is faster and (debatably) more accurate.
*/
st.setQualityMeasure(QualityMeasures.ShapeletQualityChoice.F_STAT);
// You can set the filter to output details of the shapelets or not
st.setLogOutputFile("ShapeletExampleLog.csv");
// Alternatively, you can turn the logging off
// st.turnOffLog();
/* Thats the basic options. Now you need to perform the transform.
* FullShapeletTransform extends the weka SimpleBatchFilter, but we have made
* the method process public to make usage easier.
*/
Instances shapeletT = null;
try {
shapeletT = st.process(train);
} catch (Exception ex) {
System.out.println("Error performing the shapelet transform" + ex);
ex.printStackTrace();
System.exit(0);
}
return shapeletT;
}