Esempio n. 1
0
        public TestDataModel()
        {
            var Age = new TestData();
            Age.DataName = "Age";
            Age.Value = 47;

            var Sex = new TestData();
            Sex.DataName = "Sex";
            Sex.Value = "M";

            var BP = new TestData();
            BP.DataName = "BP";
            BP.Value = "LOW";

            var Cholesterol = new TestData();
            Cholesterol.DataName = "Cholesterol";
            Cholesterol.Value = "HIGH";

            var Na = new TestData();
            Na.DataName = "Na";
            Na.Value = 0.739309;

            var K = new TestData();
            K.DataName = "K";
            K.Value = 0.056468;

            _testData = new List<TestData>()
            {
                Age, Sex, BP, Cholesterol, Na, K
            };
        }
Esempio n. 2
0
        public TestDataModel(IList<object> row)
        {
            var Age = new TestData();
            Age.DataName = "Age";
            Age.Value = (double) row[0];

            var Sex = new TestData();
            Sex.DataName = "Sex";
            Sex.Value = (string) row [1];

            var BP = new TestData();
            BP.DataName = "BP";
            BP.Value = (string) row[2];

            var Cholesterol = new TestData();
            Cholesterol.DataName = "Cholesterol";
            Cholesterol.Value = (string) row[3];

            var Na = new TestData();
            Na.DataName = "Na";
            Na.Value = (double) row[4];

            var K = new TestData();
            K.DataName = "K";
            K.Value = (double) row[5];

            var Droug = new TestData();
            K.DataName = "Droug";
            K.Value = (string) row[6];

            _testData = new List<TestData>()
            {
                Age, Sex, BP, Cholesterol, Na, K, Droug
            };
        }
Esempio n. 3
0
 private static double CalculateNormalizedValue(TestData current, Attribute pairAttribute)
 {
     return Math.Round(Double.Parse(current.Value.ToString()) / pairAttribute.Precision, 0) * pairAttribute.Precision;
 }
Esempio n. 4
0
        private double GetProbabilityForContinuousValues(int i, TestData current, Attribute pairAttribute)
        {
            var normalizedValue = CalculateNormalizedValue(current, pairAttribute);
            //continuous
            var searchedClasses = FindContinuousSearchedClasses(i, current);
            // formula!!!
            var values = searchedClasses.GetValues();

            var probabilityValue = NormalDistribution(normalizedValue, values[0], values[1], false);
            return probabilityValue;
        }
Esempio n. 5
0
 private Attribute FindPairAttribute(TestData current)
 {
     return _naiveBayesModel.DataModel.Attributes.FirstOrDefault(item => item.Name.Equals(current.DataName, StringComparison.InvariantCultureIgnoreCase));
 }
Esempio n. 6
0
 private IOcurrenceModel FindDiscreteSearchedClasses(int i, TestData current)
 {
     return _naiveBayesModel.OcurrenceMatrix.First(
         m =>
             m.GetAttributeName().Equals(current.DataName, StringComparison.InvariantCultureIgnoreCase) &&
             m.GetAttributeValue()
                 .Equals(current.Value.ToString(), StringComparison.InvariantCultureIgnoreCase) &&
             m.GetTargetClass()
                 .Equals(_naiveBayesModel.TargetAttributeClasses[i].ClassName,
                     StringComparison.InvariantCultureIgnoreCase));
 }
Esempio n. 7
0
 private void CalculateProbabilityForAttribute(int i, Attribute pairAttribute, TestData current, ref List<double> probabilityList)
 {
     if (pairAttribute.Definition.Count == 1 &&
         pairAttribute.Definition[0].Equals("Real", StringComparison.InvariantCultureIgnoreCase))
     {
         var probabilityValue = GetProbabilityForContinuousValues(i, current, pairAttribute);
         probabilityList.Add(probabilityValue);
     }
     else
     {
         //discrete
         var searchedClasses = FindDiscreteSearchedClasses(i, current);
         var value = searchedClasses.GetValues().First();
         probabilityList.Add(value);
     }
 }