示例#1
0
        public static double Predict(Diabetes patientTest)
        {
            Keras.Keras.DisablePySysConsoleLog = true;
            var tests = new List <Diabetes> {
                patientTest
            };

            NDArray testData = tests.Select(x =>
                                            new [] {
                x.Pregnancies,
                x.Glucose,
                x.BloodPressure,
                x.SkinThickness,
                x.Insulin,
                x.BMI,
                x.DiabetesPedigreeFunction,
                x.Age
            }).ToArray();

            NDarray testDataNew = testData.ToNumpyNET();
            var     test        = Utilities.Cache.Model.Predict(testDataNew);
            var     value       = test?[0][0].ToString();

            return(Convert.ToDouble(value, CultureInfo.InvariantCulture));
        }
示例#2
0
        private double ClassifyData(int pregnancies, int glucose, int bloodPressure, int skinThickness, int insulin, double bmi, double diabetesPedigreeFunction, int age)
        {
            var test = new Diabetes()
            {
                Pregnancies              = pregnancies,
                Glucose                  = glucose,
                BloodPressure            = bloodPressure,
                SkinThickness            = skinThickness,
                Insulin                  = insulin,
                BMI                      = bmi,
                DiabetesPedigreeFunction = diabetesPedigreeFunction,
                Age                      = age
            };

            return(Neural.Network.Predict(test));
        }
示例#3
0
文件: BV.cs 项目: gitzfibbon/ml
        public static void RunNonBagging(string trainingSetPath, string testingSetPath, int maxTreeDepth)
        {
            Trace.TraceInformation("Starting Bias-Variance for NonBagging");
            Trace.TraceInformation("TrainingSetPath: {0}", trainingSetPath);
            Trace.TraceInformation("TestingSetPath: {0}", testingSetPath);
            Trace.TraceInformation("Max Tree Depth: {0}", maxTreeDepth);

            // Train
            Instances trainingInstances = Diabetes.LoadData(trainingSetPath, Mode.Train);

            Bagging.Bagging bagging = new Bagging.Bagging();
            bagging.Train(trainingInstances, 0, null, maxTreeDepth);

            // Predict
            Instances  testingInstances = Diabetes.LoadData(testingSetPath, Mode.Test);
            List <int> predictions      = bagging.TestNonBagging(testingInstances);

            // Calculate Bias and Variance

            // Get the class for each test example
            int        targetAttribute = testingInstances.numAttributes() - 1;
            List <int> classes         = new List <int>();

            for (int i = 0; i < testingInstances.numInstances(); i++)
            {
                classes.Add((int)testingInstances.instance(i).value(targetAttribute));
            }

            // Get the prediction for every test example, for every set of instanes
            List <List <int> > allPredictions = new List <List <int> >();

            for (int j = 0; j < 1; j++)
            {
                for (int i = 0; i < testingInstances.numInstances(); i++)
                {
                    if (j == 0)
                    {
                        allPredictions.Add(new List <int>());
                    }

                    allPredictions[i].Add(predictions[i]);
                }
            }


            BiasVariance.biasvar(classes, allPredictions, testingInstances.numInstances(), 1);
        }
示例#4
0
文件: BV.cs 项目: gitzfibbon/ml
        public static void RunBagging(string trainingSetPath, string testingSetPath, int numberOfModels, int bootstrapSamples, int?randomSeed, int maxTreeDepth)
        {
            Trace.TraceInformation("Starting Bias-Variance for Bagging");
            Trace.TraceInformation("TrainingSetPath: {0}", trainingSetPath);
            Trace.TraceInformation("TestingSetPath: {0}", testingSetPath);
            Trace.TraceInformation("Models: {0}", numberOfModels);
            Trace.TraceInformation("Bootstrap Samples: {0}", bootstrapSamples);
            Trace.TraceInformation("Random Seed: {0}", randomSeed.ToString());
            Trace.TraceInformation("Max Tree Depth: {0}", maxTreeDepth);

            Instances trainingInstances = Diabetes.LoadData(trainingSetPath, Mode.Train);
            Instances testingInstances  = Diabetes.LoadData(testingSetPath, Mode.Test);

            // Stores the predictions for every training set
            List <List <int> > allPredictions = new List <List <int> >();

            for (int i = 0; i < bootstrapSamples; i++)
            {
                Bagging.Bagging bagging = new Bagging.Bagging();
                bagging.Train(trainingInstances, numberOfModels, randomSeed, maxTreeDepth);
                List <int> predictions = bagging.Test(testingInstances);

                for (int k = 0; k < testingInstances.numInstances(); k++)
                {
                    if (i == 0)
                    {
                        allPredictions.Add(new List <int>());
                    }

                    allPredictions[k].Add(predictions[k]);
                }
            }

            // Calculate Bias and Variance

            // Get the class for each test example
            int        targetAttribute = testingInstances.numAttributes() - 1;
            List <int> classes         = new List <int>();

            for (int i = 0; i < testingInstances.numInstances(); i++)
            {
                classes.Add((int)testingInstances.instance(i).value(targetAttribute));
            }

            BiasVariance.biasvar(classes, allPredictions, testingInstances.numInstances(), bootstrapSamples);
        }
示例#5
0
        public void CreateDiabetesTest()
        {
            var diabetes = new Diabetes
            {
                Age                      = 54,
                Glucose                  = 125,
                Insulin                  = 0,
                Outcome                  = 1,
                Pregnancies              = 8,
                BloodPressure            = 96,
                SkinThickness            = 0,
                BMI                      = 0,
                DiabetesPedigreeFunction = 0.232
            };

            diabetes.Should().BeOfType <Diabetes>();
        }
        static void Main(string[] args)
        {
            Influenza influenza = Influenza.Instance("Influenza", "Cough, Cold");
            Diabetes  diabetes  = Diabetes.Instance("Diabetes", "Weight loss, Hunger, Fatigue");
            Malaria   malaria   = Malaria.Instance("Malaria", "Chills, Fever, Fatigue");

            Ethnicity1 ethnicity1 = Ethnicity1.Instance("Ethnicity1", new List <IDisease> {
                influenza, malaria
            });
            Ethnicity2 ethnicity2 = Ethnicity2.Instance("Ethnicity2", new List <IDisease> {
                diabetes, malaria
            });
            Ethnicity3 ethnicity3 = Ethnicity3.Instance("Ethnicity3", new List <IDisease> {
                influenza, diabetes
            });

            Person mikeSmith = new Person("Mike Smith", ethnicity1);
            Person johnSmith = new Person("John Smith", ethnicity2);
            Person jackSmith = new Person("Jack Smith", ethnicity2);
            Person nickSmith = new Person("Nick Smith", ethnicity3);
            Person rickSmith = new Person("Rick Smith", ethnicity1);

            Console.WriteLine("Name: {0}, Ethnicity {1}, Probable Diseases {2}, Possible symptoms {3}",
                              mikeSmith.Name, mikeSmith.Ethnicity.Name(), mikeSmith.GetDiseases(), mikeSmith.GetSymptoms());

            Console.WriteLine("Name: {0}, Ethnicity {1}, Probable Diseases {2}, Possible symptoms {3}",
                              johnSmith.Name, johnSmith.Ethnicity.Name(), johnSmith.GetDiseases(), johnSmith.GetSymptoms());

            Console.WriteLine("Name: {0}, Ethnicity {1}, Probable Diseases {2}, Possible symptoms {3}",
                              jackSmith.Name, jackSmith.Ethnicity.Name(), jackSmith.GetDiseases(), jackSmith.GetSymptoms());

            Console.WriteLine("Name: {0}, Ethnicity {1}, Probable Diseases {2}, Possible symptoms {3}",
                              nickSmith.Name, nickSmith.Ethnicity.Name(), nickSmith.GetDiseases(), nickSmith.GetSymptoms());

            Console.WriteLine("Name: {0}, Ethnicity {1}, Probable Diseases {2}, Possible symptoms {3}",
                              rickSmith.Name, rickSmith.Ethnicity.Name(), rickSmith.GetDiseases(), rickSmith.GetSymptoms());

            Console.ReadKey();
        }
示例#7
0
        public IActionResult Report()
        {
            string OPDNO = HttpContext.Session.GetString("Diabetes_OPDNO");

            if (OPDNO != null && OPDNO != String.Empty)
            {
                Diabetes data = new Diabetes
                {
                    UserData = _db.UserDatas.Where(c => c.OPDNo == OPDNO).FirstOrDefault(),
                    DiabetesClinicalSymptom    = _gmidb.DiabetesClinicalSymptoms.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesComorbidity        = _gmidb.DiabetesComorbidities.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesPersonalHabit      = _gmidb.DiabetesPersonalHabits.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesGeneralExamination = _gmidb.DiabetesGeneralExaminations.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesCNS           = _gmidb.DiabetesCNSs.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesRespSystem    = _gmidb.DiabetesRespSystems.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesAbdExam       = _gmidb.DiabetesAbdExams.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesCVS           = _gmidb.DiabetesCVSs.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesInvestigation = _gmidb.DiabetesInvestigations.Where(c => c.OPDNO == OPDNO).FirstOrDefault(),
                    DiabetesOther         = _gmidb.DiabetesOthers.Where(c => c.OPDNO == OPDNO).FirstOrDefault()
                };
                return(View(data));
            }
            return(RedirectToAction("Index", new { res = "First enter OPDNO" }));
        }