First page Back Continue Last page Overview Graphics

NB Classifier with Two Features

cls = {}

for gender in genders:

fts_heights = Feature(heights[gender], name="heights", bin_width=5)

fts_names = Feature(firstnames[gender], name="names")

cls[gender] = NBclass(gender, fts_names, fts_heights)

c = Classifier(cls["male"], cls["female"])

for d in [("Maria", 140), ("Anthony", 200), ("Anthony", 153),

("Jessie", 188) , ("Jessie", 159), ("Jessie", 160) ]:

print(d, c.prob(*d, best_only=False))

('Maria', 140) [(0.5, 'male'), (0.5, 'female')]

('Anthony', 200) [(1.0, 'male'), (0.0, 'female')]

('Anthony', 153) [(0.5, 'male'), (0.5, 'female')]

('Jessie', 188) [(1.0, 'male'), (0.0, 'female')]

('Jessie', 159) [(0.066666666666666666, 'male'), (0.93333333333333335, 'female')]

('Jessie', 160) [(0.23809523809523817, 'male'), (0.76190476190476197, 'female')]