public static List <AttributeValuePair> GetAttributeValuePairs(DataTable dataSet) { var dataEnumer = dataSet.AsEnumerable(); List <AttributeValuePair> pairs = new List <AttributeValuePair>(); foreach (DataColumn column in dataSet.Columns) { if (column.Ordinal < dataSet.Columns.Count - 2) { var distinctValues = dataEnumer.FindDistinctValues <string>(column); distinctValues.RemoveAll(t => t == "*" || t == "?"); var starValues = dataEnumer.FindRecords(column, "*"); foreach (var value in distinctValues) { AttributeValuePair attributeValuePair = new AttributeValuePair(); attributeValuePair.AttributeValue.Attribute = column.ColumnName; attributeValuePair.AttributeValue.Value = value; attributeValuePair.Blocks = dataEnumer.FindRecords(column, value).Union(starValues).ToList(); pairs.Add(attributeValuePair); } } } return(pairs); }
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); }