Example #1
0
        /// <summary>
        ///     Normalize a single column to the input vector.
        /// </summary>
        /// <param name="colDef">The column to normalize.</param>
        /// <param name="outputColumn">The current position in the vector.</param>
        /// <param name="output">The vector to output to.</param>
        /// <param name="isInput">Is this an input column.</param>
        /// <param name="value">The value to normalize.</param>
        /// <returns>The new current position in the vector.</returns>
        public int NormalizeToVector(ColumnDefinition colDef, int outputColumn,
                                     double[] output, bool isInput, String value)
        {
            IMissingHandler handler = null;

            if (_unknownValues.Contains(value))
            {
                if (!_missingHandlers.ContainsKey(colDef))
                {
                    throw new EncogError(
                              "Do not know how to process missing value \"" + value
                              + "\" in field: " + colDef.Name);
                }
                handler = _missingHandlers[colDef];
            }

            if (colDef.DataType == ColumnType.Continuous)
            {
                double d = ParseDouble(value);
                if (handler != null)
                {
                    d = handler.ProcessDouble(colDef);
                }
                return(NormStrategy.NormalizeColumn(colDef, isInput, d,
                                                    output, outputColumn));
            }
            if (handler != null)
            {
                value = handler.ProcessString(colDef);
            }
            return(NormStrategy.NormalizeColumn(colDef, isInput, value,
                                                output, outputColumn));
        }
Example #2
0
        /// <summary>
        ///     Normalize a single output column.
        /// </summary>
        /// <param name="i">The column definition index (from the output columns).</param>
        /// <param name="value">The value to normalize.</param>
        /// <returns>The normalized result.</returns>
        public double[] NormalizeOutputColumn(int i, string value)
        {
            ColumnDefinition colDef = _outputColumns[i];
            var result = new double[NormStrategy.NormalizedSize(colDef,
                                                                false)];

            NormStrategy.NormalizeColumn(colDef, false, value, result, 0);
            return(result);
        }
Example #3
0
        /// <summary>
        ///     Denormalize a complete output vector to an array of strings.
        /// </summary>
        /// <param name="output">The data vector to denorm, the source.</param>
        /// <returns>The denormalized vector.</returns>
        public String[] DenormalizeOutputVectorToString(IMLData output)
        {
            var result = new String[_outputColumns.Count];

            int idx = 0;

            for (int i = 0; i < _outputColumns.Count; i++)
            {
                ColumnDefinition colDef = _outputColumns[i];
                result[i] = NormStrategy.DenormalizeColumn(colDef, false,
                                                           output, idx);
                idx += NormStrategy.NormalizedSize(colDef, false);
            }

            return(result);
        }
Example #4
0
 /// <summary>
 ///     Calculate the number of elements the output will normalize to.
 /// </summary>
 /// <returns>The number of elements the output will normalize to.</returns>
 public int CalculateNormalizedOutputCount()
 {
     return(_outputColumns.Sum(colDef => NormStrategy.NormalizedSize(colDef, false)));
 }
Example #5
0
 /// <summary>
 ///     Calculate the number of elements the input will normalize to.
 /// </summary>
 /// <returns>The number of elements the input will normalize to.</returns>
 public int CalculateNormalizedInputCount()
 {
     return(_inputColumns.Sum(colDef => NormStrategy.NormalizedSize(colDef, true)));
 }