public PredictorPredictContext(PredictorEntity predictor, IPredictorAlgorithm algorithm, List <PredictorCodification> codifications) { Predictor = predictor; Algorithm = algorithm; Codifications = codifications; InputCodifications = codifications.Where(a => a.Column.Usage == PredictorColumnUsage.Input).ToList(); InputCodificationsByColumn = InputCodifications.GroupToDictionary(a => a.Column); OutputCodifications = codifications.Where(a => a.Column.Usage == PredictorColumnUsage.Output).ToList(); MainOutputCodifications = OutputCodifications.Where(a => a.Column is PredictorColumnMain m).GroupToDictionary(a => ((PredictorColumnMain)a.Column).PredictorColumn); SubQueryOutputCodifications = OutputCodifications.Where(a => a.Column is PredictorColumnSubQuery).AgGroupToDictionary(a => ((PredictorColumnSubQuery)a.Column).SubQuery, sqGroup => new PredictorPredictSubQueryContext(sqGroup.Key, sqGroup.AgGroupToDictionary(a => ((PredictorColumnSubQuery)a.Column).Keys !, keysGroup => keysGroup.GroupToDictionary(a => ((PredictorColumnSubQuery)a.Column).PredictorSubQueryColumn !), ObjectArrayComparer.Instance) )); }
public static void RegisterAlgorithm(PredictorAlgorithmSymbol symbol, IPredictorAlgorithm algorithm) { Algorithms.Add(symbol, algorithm); }