private static List <IAttributeSymbolicValues> GetSubsetOf(ISymbolicDomainDataParams symbolicDomainDataParams, int symboicValue) { return (symbolicDomainDataParams.Data.Where( attributeSymbolicValues => attributeSymbolicValues.Values[symbolicDomainDataParams.DomainAttributeId] == symboicValue). ToList()); }
public static double CalculateEntropy(ISymbolicDomainDataParams symbolicDomainDataParams, int attributesCount) { if (symbolicDomainDataParams.Data.Count == 0) { return(0); } var entropy = 0.0; for (var i = 0; i < attributesCount; i++) { var domainAttributeValue = i; var count = symbolicDomainDataParams.Data.Count( record => record.Values[symbolicDomainDataParams.DomainAttributeId] == domainAttributeValue); if (count <= 0) { continue; } var probability = count / (double)symbolicDomainDataParams.Data.Count; entropy += -probability *Math.Log(probability, 2); } return(entropy); }
public int[] GetAllSymbolicValuesOfAttribute(ISymbolicDomainDataParams symbolicDomainDataParams) { if (symbolicDomainDataParams.Data == null || symbolicDomainDataParams.Data.Count == 0) return new int[0]; var values = symbolicDomainDataParams.Data.Select( domainSymbolicAttributes => GetSymbolOf(symbolicDomainDataParams.DomainAttributeId, domainSymbolicAttributes)).Distinct() .ToList(); var array = new int[values.Count]; for (var i = 0; i < array.Length; i++) { var symbol = values[i]; array[i] = Domain[symbolicDomainDataParams.DomainAttributeId].IndexOf(symbol); } return array; }
public int[] GetAllSymbolicValuesOfAttribute(ISymbolicDomainDataParams symbolicDomainDataParams) { if (symbolicDomainDataParams.Data == null || symbolicDomainDataParams.Data.Count == 0) { return(new int[0]); } var values = symbolicDomainDataParams.Data.Select( domainSymbolicAttributes => GetSymbolOf(symbolicDomainDataParams.DomainAttributeId, domainSymbolicAttributes)).Distinct() .ToList(); var array = new int[values.Count]; for (var i = 0; i < array.Length; i++) { var symbol = values[i]; array[i] = Domain[symbolicDomainDataParams.DomainAttributeId].IndexOf(symbol); } return(array); }
public static double CalculateEntropy(ISymbolicDomainDataParams symbolicDomainDataParams, int attributesCount) { if (symbolicDomainDataParams.Data.Count == 0) return 0; var entropy = 0.0; for (var i = 0; i < attributesCount; i++) { var domainAttributeValue = i; var count = symbolicDomainDataParams.Data.Count( record => record.Values[symbolicDomainDataParams.DomainAttributeId] == domainAttributeValue); if (count <= 0) continue; var probability = count / (double)symbolicDomainDataParams.Data.Count; entropy += -probability * Math.Log(probability, 2); } return entropy; }
private static List<IAttributeSymbolicValues> GetSubsetOf(ISymbolicDomainDataParams symbolicDomainDataParams, int symboicValue) { return symbolicDomainDataParams.Data.Where( attributeSymbolicValues => attributeSymbolicValues.Values[symbolicDomainDataParams.DomainAttributeId] == symboicValue). ToList(); }