public FileBayesianNetwork(string fileStr) { ServiceRedeBayesiana serviceRede = new ServiceRedeBayesiana(); FileBayesianNetwork redeBayesiana = JsonConvert.DeserializeObject <FileBayesianNetwork>(fileStr); redeBayesiana = serviceRede.LoadRedeBayesiana(redeBayesiana); Version = redeBayesiana.Version; Network = redeBayesiana.Network; Nodes = redeBayesiana.Nodes; }
public async Task <List <String> > GetNodeRedeBayesiana(int idRede) { var arquivoRedeBayesiana = await _context.ArquivosRedeBayesiana.FindAsync(idRede); ServiceRedeBayesiana serviceRede = new ServiceRedeBayesiana(); FileBayesianNetwork redeBayesiana = JsonConvert.DeserializeObject <FileBayesianNetwork>(arquivoRedeBayesiana.ArquivoJson); List <String> nodeName = (from node in redeBayesiana.Nodes.ToList() select node.Id).ToList(); return(nodeName); }
public async Task <ActionResult <FileBayesianNetwork> > Inferencia([FromBody] InferViewModel data) { var arquivoRedeBayesiana = await _context.ArquivosRedeBayesiana.FindAsync(data.IdRede); if (arquivoRedeBayesiana == null) { return(NotFound()); } ServiceRedeBayesiana serviceRede = new ServiceRedeBayesiana(); FileBayesianNetwork redeBayesiana = JsonConvert.DeserializeObject <FileBayesianNetwork>(arquivoRedeBayesiana.ArquivoJson); redeBayesiana = serviceRede.LoadRedeBayesiana(redeBayesiana); BayesInfer bayesInfer = new BayesInfer(redeBayesiana); redeBayesiana = bayesInfer.InferModel(data.ListBelief); return(redeBayesiana); }
// GET: NetworkNodeBelief/Create public ActionResult Create(int id) { _nodeBeliefService.IdRede = id; ArquivoRedeBayesiana arquivoRedeBayesiana = _context.ArquivosRedeBayesiana.Find(id); if (arquivoRedeBayesiana == null) { return(NotFound()); } ServiceRedeBayesiana serviceRede = new ServiceRedeBayesiana(); FileBayesianNetwork redeBayesiana = JsonConvert.DeserializeObject <FileBayesianNetwork>(arquivoRedeBayesiana.ArquivoJson); List <Node> lstNode = redeBayesiana.Nodes.Where(n => n.Parents.Count == 0).ToList(); foreach (var item in _nodeBeliefService.NodesBelief) { Node _node = lstNode.Where(n => n.Id == item.Id).SingleOrDefault(); if (_node != null) { lstNode.Remove(_node); } } ViewData["Id"] = new SelectList(lstNode, "Id", "Id"); ViewData["BeliefType"] = new[] { new SelectListItem() { Value = ((int)TypeBelief.Presente).ToString(), Text = "Presente" }, new SelectListItem() { Value = ((int)TypeBelief.Ausente).ToString(), Text = "Ausente" }, new SelectListItem() { Value = ((int)TypeBelief.Default).ToString(), Text = "Default" }, }; return(View()); }
public async Task <JsonResult> InferBelief() { var arquivoRedeBayesiana = await _context.ArquivosRedeBayesiana.FindAsync(_nodeBeliefService.IdRede); ServiceRedeBayesiana serviceRede = new ServiceRedeBayesiana(); FileBayesianNetwork redeBayesiana = JsonConvert.DeserializeObject <FileBayesianNetwork>(arquivoRedeBayesiana.ArquivoJson); redeBayesiana = serviceRede.LoadRedeBayesiana(redeBayesiana); BayesInfer bayesInfer = new BayesInfer(redeBayesiana); List <Belief> beliefs = new List <Belief>(); foreach (var item in _nodeBeliefService.NodesBelief) { beliefs.Add(new Belief { NodeName = item.Id, BeliefValue = item.BeliefType == 2 ? null : (int?)item.BeliefType }); _logger.LogInformation("Message displayed: {Message}", "Node name add: " + item.Id); } try { redeBayesiana = bayesInfer.InferModel(beliefs); _logger.LogInformation("Message displayed: {Message}", "Inferencia realizada em " + beliefs.Count + " nodos"); } catch (Exception e) { _logger.LogError("Message displayed: {Message}", "Erro " + e.Message); //throw; } NodeBeliefResult res; List <NodeBeliefResult> lstNodeBeliefResult = new List <NodeBeliefResult>(); try { foreach (var item in redeBayesiana.Nodes) { res = new NodeBeliefResult(); res.NodeName = item.Id; if (item.InferPrimary.IsObserved) { if (item.InferPrimary.ObservedValue[0] == 0) { res.ResultAusente = 1; res.ResultPresente = 0; } else { res.ResultAusente = 0; res.ResultPresente = 1; } } else if (item.Parents.Count() == 0) { res.ResultAusente = item.InferProbPrior.ObservedValue.GetMean()[0]; res.ResultPresente = item.InferProbPrior.ObservedValue.GetMean()[1]; } else { res.ResultAusente = item.InferModelResult[0].GetProbs()[1]; res.ResultPresente = item.InferModelResult[0].GetProbs()[0]; } lstNodeBeliefResult.Add(res); } } catch (Exception e) { _logger.LogError("Message displayed: {Message}", "Erro " + e.Message); } return(Json(lstNodeBeliefResult)); //return Json(lstNodeBeliefResult); }