# pip install pgmpy pandas scikit-learn
import pandas as pd
from pgmpy.models import BayesianNetwork
from pgmpy.estimators import MaximumLikelihoodEstimator
from pgmpy.inference import VariableElimination
# Örnek veri seti
data = pd.DataFrame({
'Age': ['Young', 'Young', 'Old', 'Old', 'Old', 'Young'],
'BMI': ['Normal', 'High', 'High', 'High', 'Normal', 'Normal'],
'Smoking': ['No', 'Yes', 'Yes', 'No', 'Yes', 'No'],
'Hypertension': ['No', 'No', 'Yes', 'Yes', 'Yes', 'No']
})
print(data)
# Bayesian Network yapısı
# Age ---> Hypertension
# BMI ---> Hypertension
# Smoking ---> Hypertension
model = BayesianNetwork([
('Age', 'Hypertension'),
('BMI', 'Hypertension'),
('Smoking', 'Hypertension')
])
# Modeli eğit
model.fit(data, estimator=MaximumLikelihoodEstimator)
# Çıkarım sistemi
inference = VariableElimination(model)
# Tahmin
result = inference.query(
variables=['Hypertension'],
evidence={
'Age': 'Old',
'BMI': 'High',
'Smoking': 'Yes'
}
)
print(result)
Kod çalışınca şöyle çıktı alırsın:
P(Hypertension)
Yes : 0.85
No : 0.15
Model, "Yaşlı + yüksek BMI + sigara içen bireyin hipertansiyon olasılığı yüksek" şeklinde çıkarım yapar.

