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); } }
/// <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)); }
public NullDataGenerator CreateNullDataGenerator(string nullDataGeneratorName) { return(NullDataGenerator.GetInstance(nullDataGeneratorName, ModelScorer, NullDistns[0])); }