protected NullDataCollection(
            NullDataGenerator nullDataGenerator,
            RangeCollection nullIndexRange,
            IEnumerable <Pair <string, Dictionary <string, SufficientStatistics> > > predictorNameAndCaseIdToNonMissingValueEnumeration,
            IEnumerable <Pair <string, Dictionary <string, SufficientStatistics> > > targetNameAndCaseIdToNonMissingValueEnumeration
            //Dictionary<string, Dictionary<string, SufficientStatistics>> predictorVariableToCaseIdToRealNonMissingValue,
            //Dictionary<string, Dictionary<string, SufficientStatistics>> targetVariableToCaseIdToRealNonMissingValue
            )
        {
            Console.WriteLine(nullDataGenerator);
            Name = nullDataGenerator.Name;
            _nullIndexToNullDataGenerator = new Dictionary <int, NullDataGenerator>();
            foreach (int nullIndex in nullIndexRange.Elements)
            {
                int predCount = SpecialFunctions.Count(predictorNameAndCaseIdToNonMissingValueEnumeration);
                int preseed   = ~nullIndex.GetHashCode() ^ predCount.GetHashCode()
                                ^ "NullDataCollection".GetHashCode();

                NullDataGenerator newNullDataGenerator = (NullDataGenerator)nullDataGenerator.Clone();
                newNullDataGenerator.SetPreseed(preseed);
                newNullDataGenerator.SetPredictorNameAndCaseIdToNonMissingValueEnumeration(predictorNameAndCaseIdToNonMissingValueEnumeration);
                newNullDataGenerator.SetTargetNameAndCaseIdToNonMissingValueEnumeration(targetNameAndCaseIdToNonMissingValueEnumeration);
                //newNullDataGenerator.RealPredictorVariableToCaseIdToNonMissingValue = predictorVariableToCaseIdToRealNonMissingValue;
                //newNullDataGenerator.RealTargetVariableToCaseIdToNonMissingValue = targetVariableToCaseIdToRealNonMissingValue;
                _nullIndexToNullDataGenerator.Add(nullIndex, newNullDataGenerator);
            }
        }
Пример #2
0
        /// <summary>
        /// Creates a shallow copy of this object, with no null data.
        /// </summary>
        /// <returns></returns>
        public object Clone()
        {
            NullDataGenerator result = (NullDataGenerator)this.MemberwiseClone();

            result._nullPredictorVariableToCaseIdToNonMissingValue = new Dictionary <string, Dictionary <string, SufficientStatistics> >();
            result._nullTargetVariableToCaseIdToNonMissingValue    = new Dictionary <string, Dictionary <string, SufficientStatistics> >();
            return(result);
        }
 public static NullDataCollection GetInstance(
     NullDataGenerator nullDataGenerator,
     RangeCollection nullIndexRange,
     IEnumerable <Pair <string, Dictionary <string, SufficientStatistics> > > predictorNameAndCaseIdToNonMissingValueEnumeration,
     IEnumerable <Pair <string, Dictionary <string, SufficientStatistics> > > targetNameAndCaseIdToNonMissingValueEnumeration)
 {
     return(new NullDataCollection(nullDataGenerator, nullIndexRange, predictorNameAndCaseIdToNonMissingValueEnumeration, targetNameAndCaseIdToNonMissingValueEnumeration));
 }
        public Dictionary <string, SufficientStatistics> GetCaseIdToNonMissingValueForNullIndexAndTargetVariableOrReal(
            int nullIndex, string targetVariable, Dictionary <string, SufficientStatistics> realValue)
        {
            if (nullIndex == -1)
            {
                return(realValue);
            }
            NullDataGenerator nullDataGenerator = _nullIndexToNullDataGenerator[nullIndex];
            Random            random            = new Random(targetVariable.GetHashCode() ^ nullDataGenerator.Preseed);

            return(nullDataGenerator.GetCaseIdToNonMissingTargetValueOrDefault(targetVariable, realValue, ref random));
        }
 protected NullDataCollection CreateNullDataGenerator(
     string nullDataGeneratorName,
     ModelScorer modelScorer,
     PhyloTree phyloTree,
     RangeCollection nullIndexRangeCollection,
     IEnumerable <Pair <string, Dictionary <string, SufficientStatistics> > > predictorNameAndCaseIdToNonMissingValueEnumeration,
     IEnumerable <Pair <string, Dictionary <string, SufficientStatistics> > > targetNameAndCaseIdToNonMissingValueEnumeration)
 {
     return(NullDataCollection.GetInstance(
                NullDataGenerator.GetInstance(nullDataGeneratorName, modelScorer, phyloTree, this),
                nullIndexRangeCollection,
                predictorNameAndCaseIdToNonMissingValueEnumeration,
                targetNameAndCaseIdToNonMissingValueEnumeration));
 }
Пример #6
0
 public NullDataGenerator CreateNullDataGenerator(string nullDataGeneratorName)
 {
     return(NullDataGenerator.GetInstance(nullDataGeneratorName, ModelScorer, NullDistns[0]));
 }