Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- def log_prob(model, rec, class_name):
- logp = math.log(model["class_counts"][class_name] / model["total_docs"])
- V = len(model["vocab"])
- a = model["alpha"]
- for tag in rec["tags"]:
- wc = model["word_counts"][class_name].get(tag, 0)
- logp += math.log((wc + a) / (model["total_words"][class_name] + a * V))
- return logp
- def predict(model, rec):
- best_class, best_log = None, -1e99
- for c in model["class_counts"]:
- lp = log_prob(model, rec, c)
- if lp > best_log:
- best_class, best_log = c, lp
- return best_class
- def evaluate(model, test):
- correct = 0
- for rec in test:
- if predict(model, rec) == rec["label"]:
- correct += 1
- accuracy = correct / len(test)
- print(f"Dokładność (accuracy) = {accuracy:.2%}")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement