private void Classify()
        {
            C45Controller c45controller = new C45Controller();

            c45controller.DecisionTreeGenerationStarted  += new DecisionTreeGenerationStartedEventHandler(C45Controller_DecisionTreeGenerationStarted);
            c45controller.DecisionTreeGenerationFinished += new DecisionTreeGenerationFinishedEventHandler(C45Controller_DecisionTreeGenerationFinished);
            c45controller.ConsultationStarted            += new ConsultationStartedEventHandler(C45Controller_ConsultationStarted);
            c45controller.ConsultationFinished           += new ConsultationFinishedEventHandler(C45Controller_ConsultationFinished);

            foreach (C45FeatureSet fs in this)
            {
                if (fs.IsMarked)
                {
                    fs.ComputedResult = c45controller.Classification(fs._featureArray);
                    fs.isClassified   = true;

                    this.OnSingleFeatureClassified(
                        this,
                        new C45SingleFeatureSetClassifiedEventArgs(c45controller.GetStatistics()));
                }
            }
            this.OnClassificationComplete(
                this,
                new EventArgs());
        }
        public C45Statistics GetStatistics()
        {
            C45Statistics c45stats = new C45Statistics();

            C45Controller.GetStatistics(ref c45stats._statistics);

            c45stats.TreeItems = c45stats._statistics.iTreeItems;
            c45stats.DecisionTreeGenerationTime = c45stats._statistics.lDecisionTreeGenerationTime;
            c45stats.ConsultationTime           = c45stats._statistics.lConsultationTime;

            return(c45stats);
        }