2015-11-05 78 views
1

我已歸一化的一組使用以下代碼的數據:反規範化MLData在Encog

public static void main(String[] args) { 

//To Normalize the data 
    File sourcefiletotrain=new File("E:\\Shreyas-Internship\\RforLF\\dataforAnn.csv"); 
    File targetfiletotrain=new File("E:\\Shreyas-Internship\\RforLF\\ideal.csv"); 
    EncogAnalyst analyst=new EncogAnalyst(); 
    AnalystWizard wizard=new AnalystWizard(analyst); 
    wizard.setGoal(AnalystGoal.Regression); 
    wizard.wizard(sourcefiletotrain, false,AnalystFileFormat.DECPNT_COMMA); 
    final AnalystNormalizeCSV norm=new AnalystNormalizeCSV(); 
    norm.analyze(sourcefiletotrain, false, ENGLISH, analyst); 
    norm.normalize(targetfiletotrain); 

然後我已經使用以下數據來訓練,並使用Encog運行神經網絡。我面臨的問題是我無法將價值迴歸到實際形式。培訓和運行神經網絡的代碼是:

//To Train the Neural Network 
    CSVNeuralDataSet fileread=new CSVNeuralDataSet("E:\\Shreyas-Internship\\RforLF\\ideal.csv",4,1,true); 
    BasicNetwork network=new BasicNetwork(); 
    network.addLayer(new BasicLayer(4)); 
    network.addLayer(new BasicLayer(20)); 
    network.addLayer(new BasicLayer(1)); 
    network.getStructure().finalizeStructure(); 
    network.reset(); 
    MLDataSet trainingset=new BasicMLDataSet(fileread); 
    MLTrain train= new ResilientPropagation(network,trainingset); 
    int epoch=1; 
    do{ 

     train.iteration(); 
     System.out.println("Epoch " +epoch+ " Error:" +train.getError()); 
     epoch++; 
     }while((train.getError()>0.01)&&(epoch<=500)); 



    //To run the Neural Network 
    System.out.println("Neural Network Results"); 
    for (MLDataPair pair: trainingset){ 
     final MLData output=network.compute(pair.getInput()); 
     System.out.println("actual="+output.getData(0)+ "\tideal="+pair.getIdeal().getData(0));//pair.getInput().getData(0)+" ,"+pair.getInput().getData(1)+" ,"+pair.getInput().getData(2)+" ,"+pair.getInput().getData(3)+" ,"+pair.getInput().getData(4)+" ,"+pair.getInput().getData(5)+ 


    } 


} 

的疑問是我如何進一步繼續獲得非規範化的輸出爲MLData

+1

此外,如果在Encog中有一個替代方案可用於規範化,訓練,運行和取消規範化一組數據,請讓我知道。 –

回答

0

您可以使用encog NormalizedField類:

def denormalize(double high, double low, double normalizedValue){ 
    NormalizedField normalizedField = new NormalizedField(high, low) 
    normalizedField.deNormalize(normalizedValue) 
} 

其中是用於標準化的範圍。