📄 zeromeanandunitstandarddeviation.java
字号:
/* * $RCSfile: ZeroMeanAndUnitStandardDeviation.java,v $ * $Revision: 1.6 $ * $Date: 2004/10/30 00:07:10 $ * * 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.normalization;/** * Zero mean and unit standard deviation normalization.<br> * <br> * Implementation according the description avaiable in * <a href="http://www.ivorix.com/en/products/tech/norm/"> * http://www.ivorix.com/en/products/tech/norm/</a>. * * @version $Revision: 1.6 $ - $Date: 2004/10/30 00:07:10 $ * * @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 ZeroMeanAndUnitStandardDeviation extends Normalization { private double[] mean; private double[] standardDeviation; /* * @see neuralnetworktoolkit.normalization.INormalization#normalize(double[][]) */ public double[][] normalize(double[][] originalData) { double[][] normalizedData; if ((mean == null) || (standardDeviation == null)) { setupParameters(originalData); } normalizedData = transform(originalData); return normalizedData; } //normalize() /* (non-Javadoc) * @see neuralnetworktoolkit.normalization.INormalization#unnormalize(double[][]) */ public double[][] unnormalize(double[][] normalizedData) { double[][] originalData; originalData = new double[normalizedData.length][normalizedData[0].length]; for (int j = 0; j < normalizedData[0].length; j++) { for (int i = 0; i < normalizedData.length; i++) { originalData[i][j] = mean[j] + normalizedData[i][j] * standardDeviation[j]; } } return originalData; } //unnormalize() /* * @see neuralnetworktoolkit.normalization.INormalization#setupParameters(double[][]) */ public void setupParameters(double[][] originalData) { computeMean(originalData); computeStandardDeviation(originalData); } //train() /* * @see neuralnetworktoolkit.normalization.Normalization#transform(double[][]) */ protected double[][] transform(double[][] originalData) { double[][] normalizedData; normalizedData = new double[originalData.length][originalData[0].length]; for (int j = 0; j < originalData[0].length; j++) { for (int i = 0; i < originalData.length; i++) { normalizedData[i][j] = (originalData[i][j] - mean[j]) / standardDeviation[j]; } } return normalizedData; } //transform() /** * @param originalData */ private void computeMean(double[][] originalData) { mean = new double[originalData[0].length]; for (int j = 0; j < originalData[0].length; j++) { for (int i = 0; i < originalData.length; i++) { mean[j] += originalData[i][j]; } mean[j] /= originalData.length; } } //computeMean() /** * @param originalData */ private void computeStandardDeviation(double[][] originalData) { standardDeviation = new double[originalData[0].length]; for (int j = 0; j < originalData[0].length; j++) { for (int i = 0; i < originalData.length; i++) { standardDeviation[j] += (originalData[i][j] - mean[j]) * (originalData[i][j] - mean[j]); } standardDeviation[j] = Math.sqrt(standardDeviation[j] / (originalData.length - 1)); } } //computeStandardDeviation() /** * @return Returns the mean. */ public double[] getMean() { return mean; } //getMean() /** * @return Returns the standardDeviation. */ public double[] getStandardDeviation() { return standardDeviation; } //getStandardDeviation() } //ZeroMeanAndUnitStandardDeviation
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -