Skip to content
Snippets Groups Projects
Commit eb52e01b authored by Simon Adick's avatar Simon Adick
Browse files

refactor: Fehlerrate überarbeitet

parent 1da0be7f
No related branches found
No related tags found
No related merge requests found
class ErrorRate:
false_positives = 0
false_negatives = 0
true_positives = 0
true_negatives = 0
def evaluate(self, expected_class: float, actual_class: float):
if expected_class == -1:
if actual_class == -1:
self.true_negatives += 1
else:
self.false_positives += 1
if expected_class == 1:
if actual_class == 1:
self.true_positives += 1
else:
self.false_negatives += 1
def error_rate(self):
false_values = self.false_positives + self.false_negatives
correct_values = self.true_positives + self.true_negatives
return false_values / (false_values + correct_values)
import math
from algorithm.pla.perceptron import Perceptron
def evaluate(iterations: int, amount_of_values: int, correct_data: list, incorrect_data: list, perceptron: Perceptron):
cnt_true_pos = 0
cnt_true_neg = 0
cnt_false_pos = 0
cnt_false_neg = 0
unclassified = 0
for i in range(500):
corr = []
incorr = []
for j in range(amount_of_values):
corr.append(correct_data[j][i])
incorr.append(incorrect_data[j][i])
jog_res = perceptron.classify(corr)
knie_res = perceptron.classify(incorr)
if math.isclose(1, jog_res, abs_tol=0.1):
cnt_true_pos += 1
elif math.isclose(0, jog_res, abs_tol=0.1):
cnt_false_neg += 1
else:
unclassified += 1
if math.isclose(0, knie_res, abs_tol=0.1):
cnt_true_neg += 1
elif math.isclose(1, knie_res, abs_tol=0.1):
cnt_false_pos += 1
else:
unclassified += 1
print(f"""
Anzahl Prüfungen: {iterations*2}
True Positive: {cnt_true_pos}
False Positive: {cnt_false_pos}
True Negative: {cnt_true_neg}
False Negative: {cnt_false_neg}
Unclassifiable: {unclassified}
Fehlerrate: {(cnt_false_neg+cnt_false_pos) / 10}% bzw. {(cnt_false_neg+cnt_false_pos+unclassified) / 10}%
""")
\ No newline at end of file
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment