Exemple #1
0
        public GRMResult ExecuteGRM(Stream dataSetStream, bool dataContainsHeaders, int?decisionAttributeIndex, int minimumSupport)
        {
            var progressTracker = ProgressTrackerContainer.CurrentProgressTracker;

            progressTracker.BeginTask();

            progressTracker.BeginStep("Creating data set representation");
            var representation = _dataSetRepresentationBuilder.Build(dataSetStream, dataContainsHeaders, decisionAttributeIndex);

            progressTracker.EndStep();

            progressTracker.BeginStep("Selecting frequent items");
            var frequentItems = _frequentItemsSelector.SelectFrequentItems(representation.ItemInfos.Values, minimumSupport);

            progressTracker.EndStep();

            progressTracker.BeginStep("Sorting frequent items");
            var sortedFrequentItems = _sortingStrategy.Apply(frequentItems);

            progressTracker.EndStep();

            progressTracker.BeginStep("Building GRM tree");
            var root = _treeBuilder.Build(sortedFrequentItems, representation.DecisionIDs.Values, representation.TransactionDecisions);

            progressTracker.EndStep();

            progressTracker.BeginStep("Running GARM procedure");
            _garmProcedure.Execute(root, representation.TransactionDecisions, minimumSupport);
            progressTracker.EndStep();

            progressTracker.BeginStep("Building result");
            var decisionsGenerators = _decisionGeneratorsCollector.GetDecisionsGenerators();
            var result = _grmResultBuilder.GetResult(representation.AttributesCount, representation.DecisionAttributeIndex, representation.AttributeNames, representation.DecisionIDs, representation.ItemIDs, decisionsGenerators);

            progressTracker.EndStep();

            progressTracker.EndTask();
            return(result);
        }