Как я могу обучить байесовскую сеть с помощью граната на Python?
Я новичок в программировании на Python и пытаюсь обучить байесовскую сеть. Я создал дискретные распределения и таблицы условной вероятности.
import math
from pomegranate import *
import pandas as pd
import csv
import numpy as np
edad = DiscreteDistribution ({'Menos':0.7, 'Mas':0.3})
genero = DiscreteDistribution ({'Masculino':0.4, 'Femenino':0.6})
raza = DiscreteDistribution ({'Mestizo':0.4, 'Afrodescendiente':0.6})
antecedentes = DiscreteDistribution ({'Antecedentes':0.8,'NoAntecedentes':0.2})
ejercicio = DiscreteDistribution ({'Ejercicio':0.1,'NoEjercicio':0.9})
fuma = DiscreteDistribution ({'Fuma':0.7,'NoFuma':0.3})
alcohol = DiscreteDistribution ({'Alcohol':0.6,'NoAlcohol':0.4})
cronica = DiscreteDistribution ({'Cronica':0.6,'NoCronica':0.4})
sobrepeso = ConditionalProbabilityTable ([
['NoAlcohol','NoEjercicio','Sobrepeso', 0.7],
['NoAlcohol','NoEjercicio','NoSobrepeso',0.3],
['NoAlcohol','Ejercicio','Sobrepeso',0.2],
['NoAlcohol','Ejercicio','NoSobrepeso',0.1],
['Alcohol','NoEjercicio','Sobrepeso',0.7],
['Alcohol','NoEjercicio','NoSobrepeso',0.5],
['Alcohol','Ejercicio','Sobrepeso',0.6],
['Alcohol','Ejercicio','NoSobrepeso',0.2]],[alcohol,ejercicio])
presionArterial = ConditionalProbabilityTable ([
['Masculino','Fuma','NoCronica','Afrodescendiente','NoSobrepeso', 'Mayor', 0.5],
['Masculino','NoFuma','Cronica','Mestizo','Sobrepeso', 'Normal', 0.4],
['Masculino','NoFuma','Cronica','Mestizo','Sobrepeso', 'Mayor', 0.6],
['Masculino','NoFuma','NoCronica','Afrodescendiente','NoSobrepeso', 'Normal', 0.2],
['Masculino','NoFuma','NoCronica','Afrodescendiente','NoSobrepeso', 'Mayor', 0.3],
['Femenino','NoFuma','Cronica','Mestizo','NoSobrepeso', 'Mayor', 0.3],
['Femenino','NoFuma','Cronica','Afrodescendiente','Sobrepeso', 'Normal', 0.4],
['Femenino','NoFuma','Cronica','Afrodescendiente','Sobrepeso', 'Mayor', 0.5],
['Femenino','NoFuma','Cronica','Afrodescendiente','NoSobrepeso', 'Normal', 0.3],
['Femenino','NoFuma','Cronica','Afrodescendiente','NoSobrepeso', 'Mayor', 0.4],
['Femenino','NoFuma','NoCronica','Mestizo','Sobrepeso', 'Normal', 0.2],
[genero,fuma,cronica,raza,sobrepeso])
Наконец, я установил узел, который хочу вычислить
hipertension = ConditionalProbabilityTable ([
['NoAntecedentes','Menos','Normal','Si',0.2],
['NoAntecedentes','Menos','Normal', 'No',0.2],
['NoAntecedentes','Mas','Mayor', 'No',0.4],
['Antecedentes','Menos','Normal','Si',0.2],
['Antecedentes','Mas','Mayor','Si',0.6],
['Antecedentes','Mas','Mayor', 'No',0.6]],[antecedentes,edad,presionArterial])
Я не знаю, как обучать байесовскую сеть.