public static void OptimizeDataSetForExtraCredit(List <DataSetAttribute> trainingDataAttributes, List <DataSetValue> trainingDataValues)
        {
            // Remove state
            DataSetAttribute usStateAttribute = trainingDataAttributes.First(n => n.Name == "'US State'");
            DataSetAttribute browserAttribute = trainingDataAttributes.First(n => n.Name == "'Session Browser Family'");
            DataSetAttribute level3PathLast   = trainingDataAttributes.First(n => n.Name == "'Assortment Level 3 Path Last'");

            trainingDataAttributes.Remove(usStateAttribute);
            trainingDataAttributes.Remove(browserAttribute);

            foreach (var trainingDataValue in trainingDataValues)
            {
                trainingDataValue.Values[browserAttribute.ValueIndex] = TransformBrowserAttributeIntoIsSpam(trainingDataValue.Values[browserAttribute.ValueIndex]);
                trainingDataValue.Values[usStateAttribute.ValueIndex] = GetVisitedLegWearPage(trainingDataValue.Values[level3PathLast.ValueIndex]);
            }

            DataSetAttribute isSpamUserAgentAttribute = new DataSetAttribute("IsSpamUserAgent", new HashSet <string>()
            {
                "true", "false"
            }, browserAttribute.ValueIndex);
            DataSetAttribute visitedLegWearPageAttribute = new DataSetAttribute("VisitedLegWearPage", new HashSet <string>()
            {
                "true", "false"
            }, usStateAttribute.ValueIndex);

            trainingDataAttributes.Add(isSpamUserAgentAttribute);
            trainingDataAttributes.Add(visitedLegWearPageAttribute);
        }
        public static int CalculatePercentileBucket(DataSetAttribute attribute, int value)
        {
            int i;

            for (i = 0; i < attribute.Percentiles.Count; i++)
            {
                int percentileLimit = attribute.Percentiles[i];
                if (value > percentileLimit)
                {
                    continue;
                }
                return(i);
            }

            return(i);
        }
Пример #3
0
        public async Task Create_StateUnderTest_ExpectedBehavior()
        {
            // Arrange
            var    dataSetRepository = this.CreateDataSetRepository();
            string name       = "People";
            string domainName = "dbo";
            string orgName    = "Customers";
            IEnumerable <DataSetAttribute> dataSetAttributes = new DataSetAttribute[] { };

            // Act
            await dataSetRepository.Create(
                new DataSet { Name = name, DomainName = domainName }, dataSetAttributes);

            // Assert
            Assert.True(false);
        }
Пример #4
0
        public static List <DataSetAttribute> ParseAttributes(string dataSetAsString)
        {
            int indexOfData       = dataSetAsString.IndexOf("@data");
            int indexOfAttributes = dataSetAsString.IndexOf("@attribute");

            string attributesString = dataSetAsString.Substring(indexOfAttributes, indexOfData - indexOfAttributes);

            var listOfAttributesAsString       = attributesString.Split('\n');
            List <DataSetAttribute> attributes = new List <DataSetAttribute>(listOfAttributesAsString.Length);

            for (int index = 0; index < listOfAttributesAsString.Length; index++)
            {
                var attributeAsString = listOfAttributesAsString[index];
                if (string.IsNullOrEmpty(attributeAsString))
                {
                    continue;
                }

                int indexOfFirstSpace   = attributeAsString.IndexOf(" ");
                int indexOfStartOfEnums = attributeAsString.IndexOf(" {");
                int indexOfEndOfEnums   = attributeAsString.IndexOf("}");

                string name  = attributeAsString.Substring(indexOfFirstSpace + 1, indexOfStartOfEnums - (indexOfFirstSpace + 1));
                string enums = attributeAsString.Substring(indexOfStartOfEnums + 2, (indexOfEndOfEnums) - (indexOfStartOfEnums + 2));

                var enumValues = enums.Split(',');
                var hashSet    = new HashSet <string>();
                foreach (var enumValue in enumValues)
                {
                    if (!hashSet.Add(enumValue))
                    {
                        throw new InvalidOperationException();
                    }
                }

                var attribute = new DataSetAttribute(name, hashSet, index);
                attributes.Add(attribute);
            }

            // Remove the first attribute, as it is the result
            attributes.RemoveAt(0);

            return(attributes);
        }