⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 maincontroller.java

📁 利用Java实现的神经网络工具箱
💻 JAVA
字号:
/* * $RCSfile: MainController.java,v $ * $Revision: 1.8 $ * $Date: 2005/04/26 21:31:04 $ * * NeuralNetworkToolkit * Copyright (C) 2004 Universidade de Brasília * * This file is part of NeuralNetworkToolkit. * * NeuralNetworkToolkit is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * the Free Software Foundation; either version 2 of the License, or * (at your option) any later version. * * NeuralNetworkToolkit is distributed in the hope that it will be useful, * but WITHOUT ANY WARRANTY; without even the implied warranty of * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the * GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with NeuralNetworkToolkit; if not, write to the Free Software * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA - 02111-1307 - USA. */package neuralnetworktoolkit.gui.controller;import java.io.BufferedWriter;import java.io.File;import java.io.FileWriter;import java.io.IOException;import java.util.Vector;import neuralnetworktoolkit.NetworkController;import neuralnetworktoolkit.NetworkControllerException;import neuralnetworktoolkit.NeuralModel;import neuralnetworktoolkit.StatisticalResults;import neuralnetworktoolkit.architectures.ArchitectureParameters;import neuralnetworktoolkit.datamanager.textfilemanager.*;import neuralnetworktoolkit.methods.ITrainingMethod;import neuralnetworktoolkit.methods.TrainingParameters;import neuralnetworktoolkit.modelstorage.ModelSerializer;import neuralnetworktoolkit.modelstorage.ModelSerializerException;import neuralnetworktoolkit.normalization.NormalizationParameters;/** *  *  * @version $Revision: 1.8 $ - $Date: 2005/04/26 21:31:04 $ *  * @author <a href="mailto:rodbra@pop.com.br">Rodrigo C. M. Coimbra</a> * @author <a href="mailto:hugoiver@yahoo.com.br">Hugo Iver V. Gonçalves</a> */public class MainController implements IMainController {		private	ITrainingMethod method = null;	private NetworkController networkController = null;	private StatisticalResults results = null;		/**	 * 	 * @param file	 */	public void loadDataFromFile(File file, String separator)			throws LoadFromFileException {		LoadFromFile loader = new LoadFromFile(file, separator);				networkController = new NetworkController();				networkController.setCompleteDataHeader(loader.getDataHeader());		networkController.setTrainingData(loader.getDataValues());			} //loadDataFromFile()		/**	 * 	 * @param file	 * @param separator	 * @throws LoadFromFileException	 */	public void loadInferenceDataFromFile(File file, String separator)			throws LoadFromFileException {		LoadFromFile loader = new LoadFromFile(file, separator);				networkController.setInferenceData(loader.getDataValues());			} //loadInferenceDataFromFile()		/* 	 * @see neuralnetworktoolkit.controller.IMainController#loadDataFromArff(java.io.File)	 */	public void loadDataFromArff(File arffFile) {		// TODO Auto-generated method stub			} //loadDataFromArff()	/* 	 * @see neuralnetworktoolkit.controller.IMainController#loadDataFromDatabase()	 */	public void loadDataFromDatabase() {		// TODO Auto-generated method stub			} //loadDataFromDatabase()		/**	 * 	 * @return	 */	public Vector getDisplayData() {		Vector displayData;		Vector row;		double[][] data;				displayData = new Vector();		data = networkController.getCompleteData();		for (int i = 0; i < data.length; i++) {			row = new Vector();			for (int j = 0; j < data[0].length; j++) {				row.add(new Double(data[i][j]));			}			displayData.add(row);		}		return displayData;			} //getDisplayData()		/**	 * 	 * @return	 */	public Vector getDataHeader() {		String[] header;		Vector dataHeader;				dataHeader = new Vector();		header = networkController.getCompleteDataHeader();		for(int i = 0; i < header.length; i++) {			dataHeader.add(header[i]);					}		return dataHeader;			} //getInputHeader()		/**	 * 	 */	public Vector getInferenceDataHeader() {		String[] header;		Vector inferenceDataHeader;				header = networkController.getInferenceDataHeader();		inferenceDataHeader = new Vector(header.length);		for(int i = 0; i < header.length; i++) {			inferenceDataHeader.add(header[i]);					}		return inferenceDataHeader;			} //getInferenceDataHeader()		/**	 * 	 */	public Vector getInferedDataHeader() {		String[] header;		Vector inferedDataHeader;				inferedDataHeader = new Vector();		header = networkController.getInferedDataHeader();		for(int i = 0; i < header.length; i++) {			inferedDataHeader.add(header[i]);					}		return inferedDataHeader;			} //getInferenceDataHeader()		/**	 * 	 * @return	 */	public Vector getInferenceData() {		double[][] data;		Vector inferenceData;		Vector row;				data = networkController.getInferenceData();		inferenceData = new Vector();				for(int i = 0; i < data.length; i++) {			row = new Vector(data[0].length);			for(int j = 0; j < data[0].length; j++) {				row.add(new Double(data[i][j]));							}			inferenceData.add(row);					}		return inferenceData;			} //getInferenceData()		/* (non-Javadoc)	 * @see neuralnetworktoolkit.gui.controller.IMainController#getInferedData()	 */	public Vector getInferedData() {		double[][] data;		Vector inferedData;		Vector row;				data = networkController.getInferedData();		inferedData = new Vector();				for(int i = 0; i < data.length; i++) {			row = new Vector(data[0].length);			for(int j = 0; j < data[0].length; j++) {				row.add(new Double(data[i][j]));							}			inferedData.add(row);					}		return inferedData;			} //getInferedData()		/**	 * @throws NetworkControllerException	 * 	 *	 */	public void createNetwork(int[] outputIndex,			ArchitectureParameters parameters,			TrainingParameters trainingParameters,			NormalizationParameters normalizationParameters)			throws NetworkControllerException {		networkController.setOutputIndex(outputIndex);		networkController.splitDataValues();		networkController.createNeuralNetwork(parameters);		networkController.setNormalization(normalizationParameters);		results = networkController.trainNeuralNetwork(trainingParameters);			} //createNetwork()	/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#saveNetwork(String)	 */	public void saveNetwork(String fileName) throws ModelSerializerException {		ModelSerializer.serializeModelToFile(				networkController.getNeuralModel(), fileName);			} //saveNetwork()	/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#infereWithNetwork()	 */	public void infereWithNetwork() throws NetworkControllerException {		networkController.infereWithNetwork();			} //infereWithNetwork()		/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#infereWithNetwork(double[][])	 */	public void infereWithNetwork(Vector inferenceData)			throws NetworkControllerException {				double[][] data;		String datum;		Vector row;				data = new double[inferenceData.size()][((Vector) inferenceData.get(0))				.size()];				for(int i = 0; i < data.length; i++) {			row = (Vector) inferenceData.get(i);			for(int j = 0; j < data[0].length; j++) {				datum = (String) row.get(j);				if(datum != null) {					data[i][j] = Double.parseDouble(datum);								} else {					data[i][j] = 0;									}							}					}		networkController.setInferenceData(data);		networkController.infereWithNetwork();			} //infereWithNetwork()	/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#saveInferedData(java.io.File)	 */	public void saveInferedData(File file) throws IOException {		String[] inferenceHeader;		String[] inferedHeader;		double[][] inferenceData;		double[][] inferedData;				BufferedWriter writer;				inferenceHeader = networkController.getInferenceDataHeader();		inferedHeader = networkController.getInferedDataHeader();		inferenceData = networkController.getInferenceData();		inferedData = networkController.getInferedData();				writer = new BufferedWriter(new FileWriter(file));				for(int i = 0; i < inferenceHeader.length; i++) {			writer.write(inferenceHeader[i] + "	");					}		for(int i = 0; i < inferedHeader.length - 1; i++) {			writer.write(inferedHeader[i] + "	");					}		writer.write(inferedHeader[inferedHeader.length - 1] + "\n");				for(int i = 0; i < inferenceData.length; i++) {			for(int j = 0; j < inferenceData[0].length; j++) {				writer.write(inferenceData[i][j] + "	");											}			for(int k = 0; k < inferedData[0].length - 1; k++) {				writer.write(inferedData[i][k] + "	");											}			writer.write(inferedData[i][inferedData[0].length - 1] + "\n");					}		writer.close();			} //saveInferedData()	/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#getStatiscalResults()	 */	public StatisticalResults getStatiscalResults() {		return networkController.getStatisticalResults();			} //getStatiscalResults()	/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#loadNetwork(java.io.File)	 */	public void loadNetwork(File selectedFile) throws ModelSerializerException,			NetworkControllerException {		NeuralModel model;				model = ModelSerializer.retrieveSerializedModel(selectedFile);		networkController = new NetworkController();		networkController.createNeuralNetwork(model);			} //loadNetwork()	/* 	 * @see neuralnetworktoolkit.gui.controller.IMainController#getInputSize()	 */	public int getInputSize() {		return networkController.getInputSize();			} //getInputSize()	} //MainController

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -