public NaiveBayes(DataSet dataSet) { Headers = new List <string>(); Classes = new List <string>(); Counters = new List <AttributeCounter>(); foreach (var v in dataSet.Headers) { Headers.Add(v); AttributeCounter toAdd = new AttributeCounter(); Counters.Add(toAdd); } Headers.Add("Class"); Counters.Add(new AttributeCounter()); foreach (var v in dataSet.DataValues) { for (int i = 0; i < v.Attributes.Count; i++) { Counters[i].addAttribute(v.Attributes[i].getValueAsString(), v.DataClass); } Counters[Counters.Count - 1].addAttribute(v.DataClass, v.DataClass); } Counters[Counters.Count - 1].DiffValues = Counters[Counters.Count - 1].Attributes.Count; foreach (var v in Counters[Counters.Count - 1].Attributes) { Classes.Add(v.Name); } }
public KNN(DataSet data, int kn) { dataInHyperspace = data; k = kn; minMax = new List <MinMaxKNN>(); classesCounter = new AttributeCounter(); setMinMaxValuesAndCountClasses(); }
private string doVoting(List <AnalyzedData> data) { AttributeCounter counter = new AttributeCounter(); foreach (var v in data) { counter.addAttribute(v.DataClass, v.DataClass); } List <Tuple <string, double> > votes = new List <Tuple <string, double> >(); foreach (var v in counter.Attributes) { double x = (double)v.Number / (double)classesCounter.returnNumberForOneClass(v.Name, v.Name); Tuple <string, double> toAdd = new Tuple <string, double>(v.Name, x); votes.Add(toAdd); } votes = votes.OrderByDescending(x => x.Item2).ToList(); return(votes[0].Item1); }