package applications;
import development.TimeSeriesClassification;
import fileIO.OutFile;
import weka.core.Instances;
import weka.filters.NormalizeCase;
/**
*
* @author ajb
*/
public class ElectricityUsage {
public static void fixData(){
Instances test=utilities.ClassifierTools.loadData(TimeSeriesClassification.path+"ElectricDevices"+"\\"+"ElectricDevices"+"_TEST");
Instances train=utilities.ClassifierTools.loadData(TimeSeriesClassification.path+"ElectricDevices"+"\\"+"ElectricDevices"+"_TRAIN");
int i=0;
int c=0;
while(i<train.numInstances()){
int j=0;
while(j<train.numAttributes()-1 && train.instance(i).value(j)==train.instance(i).value(0)){
j++;
}
if(j==train.numAttributes()-1){ //Delete if constant
train.delete(i);
c++;
}
else
i++;
}
System.out.println(" Removed "+c+" from train");
c=0;
i=0;
while(i<test.numInstances()){
int j=0;
while(j<test.numAttributes()-1 && test.instance(i).value(j)==test.instance(i).value(0)){
j++;
}
if(j==test.numAttributes()-1){ //Delete if constant
test.delete(i);
c++;
}
else
i++;
}
System.out.println(" Removed "+c+" from test");
OutFile of = new OutFile(TimeSeriesClassification.path+"ElectricDevices"+"\\"+"ElectricDevices"+"_TEST.arff");
OutFile of2 = new OutFile(TimeSeriesClassification.path+"ElectricDevices"+"\\"+"ElectricDevices"+"_TRAIN.arff");
of.writeLine(test.toString());
of2.writeLine(train.toString());
//Test Filter
try{
NormalizeCase norm=new NormalizeCase();
norm.setNormType(NormalizeCase.NormType.STD_NORMAL);
test=norm.process(test);
// train=norm.process(train);
}catch(Exception e){
// System.out.println(trainSmall.toSting());
System.out.println(" Error with file+ \n"+test.instance(81));
double sum=0;
double sumSq=0;
for(int j=0;j<test.numAttributes()-1;j++){
sum+=test.instance(81).value(j);
sumSq+=test.instance(81).value(j)*test.instance(81).value(j);
}
System.out.println(" Sum ="+sum+" Sum Sq ="+sumSq+" num attribures ="+(test.numAttributes()-1));
e.printStackTrace();
System.exit(0);
}
}
public static void main(String[] args){
fixData();
}
}