Exemplo n.º 1
0
 public Data(DataTable dataSet)
 {
     this.OriginalDataSet   = dataSet;
     this.DataSet           = ConvertNumericData(dataSet.Copy());
     this.Decisions         = FindDecisions();
     AttributeValuePairs    = AttributeValuePair.GetAttributeValuePairs(DataSet);
     Characteristic         = new Characteristic(this);
     MaximalConsistent      = new MaximalConsistent(this);
     ConditionalProbability = ProbApprox.GetConditionalProbability(this);
 }
Exemplo n.º 2
0
        public static Dictionary <string, List <int> > GetConceptApprox(MaximalConsistent maximalConsistent, List <Probabilities <List <int> > > conditionalProb, float alpha)
        {
            Dictionary <string, List <int> > tempApprox = new Dictionary <string, List <int> >();

            foreach (var prob in conditionalProb)
            {
                var charIds = prob.ConditionalProb.Where(t => t.Value >= alpha).Select(u => u.Key).ToList();

                // Union all Characteristic Sets
                var approx = charIds.SelectMany(u => u).Distinct().ToList(); //var approx = characteristic.CharacteristicSets.Where(set => charIds.Contains(set.Key)).SelectMany(u => u.Value).Distinct().ToList();
                approx.Sort();
                tempApprox.Add(prob.Decision, approx);
            }

            return(tempApprox);
        }
Exemplo n.º 3
0
        public static List <Probabilities <List <int> > > ComputeConditionalProbability(Data data, MaximalConsistent maximalConsistent)
        {
            List <Probabilities <List <int> > > conditionalProb = new List <Probabilities <List <int> > >();

            foreach (var decision in data.Decisions)
            {
                Dictionary <List <int>, float> tempProbs = new Dictionary <List <int>, float>();
                foreach (var maximalBlocks in maximalConsistent.MaximalBlocks)
                {
                    tempProbs.Add(maximalBlocks, FindProbability(maximalBlocks, decision.Value));
                }
                Probabilities <List <int> > tempProbabilities = new Probabilities <List <int> >
                {
                    Decision        = decision.Key,
                    DecisionSet     = decision.Value,
                    ConditionalProb = tempProbs
                };
                conditionalProb.Add(tempProbabilities);
            }

            return(conditionalProb);
        }