/// <inheritdoc /> public INormalizationStrategy SuggestNormalizationStrategy(VersatileMLDataSet dataset, String architecture) { double inputLow = -1; double inputHigh = 1; double outputLow = -1; double outputHigh = 1; // Create a basic neural network, just to examine activation functions. var methodFactory = new MLMethodFactory(); var network = (BasicNetwork)methodFactory.Create(MethodName, architecture, 1, 1); if (network.LayerCount < 1) { throw new EncogError("Neural network does not have an output layer."); } IActivationFunction outputFunction = network.GetActivation(network.LayerCount - 1); double[] d = { -1000, -100, -50 }; outputFunction.ActivationFunction(d, 0, d.Length); if (d[0] > 0 && d[1] > 0 && d[2] > 0) { inputLow = 0; } INormalizationStrategy result = new BasicNormalizationStrategy( inputLow, inputHigh, outputLow, outputHigh); return(result); }
/// <inheritdoc /> public INormalizationStrategy SuggestNormalizationStrategy(VersatileMLDataSet dataset, String architecture) { var result = new BasicNormalizationStrategy(); result.AssignInputNormalizer(ColumnType.Continuous, new RangeNormalizer(0, 1)); result.AssignInputNormalizer(ColumnType.Nominal, new OneOfNNormalizer(0, 1)); result.AssignInputNormalizer(ColumnType.Ordinal, new OneOfNNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Continuous, new RangeNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Nominal, new OneOfNNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Ordinal, new OneOfNNormalizer(0, 1)); return(result); }
/// <inheritdoc /> public INormalizationStrategy SuggestNormalizationStrategy(VersatileMLDataSet dataset, string architecture) { int outputColumns = dataset.NormHelper.OutputColumns.Count; ColumnType ct = dataset.NormHelper.OutputColumns[0].DataType; var result = new BasicNormalizationStrategy(); result.AssignInputNormalizer(ColumnType.Continuous, new RangeNormalizer(0, 1)); result.AssignInputNormalizer(ColumnType.Nominal, new OneOfNNormalizer(0, 1)); result.AssignInputNormalizer(ColumnType.Ordinal, new OneOfNNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Continuous, new RangeNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Nominal, new OneOfNNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Ordinal, new OneOfNNormalizer(0, 1)); return(result); }
/// <inheritdoc /> public INormalizationStrategy SuggestNormalizationStrategy(VersatileMLDataSet dataset, string architecture) { int outputColumns = dataset.NormHelper.OutputColumns.Count; if (outputColumns > 1) { throw new EncogError("SVM does not support multiple output columns."); } ColumnType ct = dataset.NormHelper.OutputColumns[0].DataType; var result = new BasicNormalizationStrategy(); result.AssignInputNormalizer(ColumnType.Continuous, new RangeNormalizer(0, 1)); result.AssignInputNormalizer(ColumnType.Nominal, new OneOfNNormalizer(0, 1)); result.AssignInputNormalizer(ColumnType.Ordinal, new OneOfNNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Continuous, new RangeNormalizer(0, 1)); result.AssignOutputNormalizer(ColumnType.Nominal, new IndexedNormalizer()); result.AssignOutputNormalizer(ColumnType.Ordinal, new OneOfNNormalizer(0, 1)); return(result); }