Compare commits
No commits in common. "b2534ba05e5772003abf0ab4a0ddd3d98709b5c7" and "9eb4492feb1e27dcc1d49a019aee6aa3ef035ff8" have entirely different histories.
b2534ba05e
...
9eb4492feb
2187
cardio.ipynb
2187
cardio.ipynb
File diff suppressed because one or more lines are too long
2897
cardio_fuzzy.ipynb
2897
cardio_fuzzy.ipynb
File diff suppressed because one or more lines are too long
Binary file not shown.
File diff suppressed because it is too large
Load Diff
File diff suppressed because it is too large
Load Diff
10
src/rules.py
10
src/rules.py
@ -71,7 +71,7 @@ class Rule:
|
|||||||
|
|
||||||
|
|
||||||
# https://mljar.com/blog/extract-rules-decision-tree/
|
# https://mljar.com/blog/extract-rules-decision-tree/
|
||||||
def get_rules(tree, feature_names, classes=None) -> List[Rule]:
|
def get_rules(tree, feature_names) -> List[Rule]:
|
||||||
tree_ = tree.tree_
|
tree_ = tree.tree_
|
||||||
feature_name = [
|
feature_name = [
|
||||||
feature_names[i] if i != TREE_UNDEFINED else "undefined!" for i in tree_.feature
|
feature_names[i] if i != TREE_UNDEFINED else "undefined!" for i in tree_.feature
|
||||||
@ -91,11 +91,7 @@ def get_rules(tree, feature_names, classes=None) -> List[Rule]:
|
|||||||
p2.append(RuleAtom(name, ComparisonType.GREATER, threshold))
|
p2.append(RuleAtom(name, ComparisonType.GREATER, threshold))
|
||||||
recurse(tree_.children_right[node], p2, rules)
|
recurse(tree_.children_right[node], p2, rules)
|
||||||
else:
|
else:
|
||||||
if classes is None:
|
rules.append(Rule(antecedent, tree_.value[node][0][0]))
|
||||||
rules.append(Rule(antecedent, tree_.value[node][0][0]))
|
|
||||||
else:
|
|
||||||
value = np.argmax(tree_.value[node][0])
|
|
||||||
rules.append(Rule(antecedent, classes[value]))
|
|
||||||
|
|
||||||
recurse(0, antecedent, rules)
|
recurse(0, antecedent, rules)
|
||||||
|
|
||||||
@ -306,8 +302,6 @@ def _get_fuzzy_rules(
|
|||||||
for rule in rules:
|
for rule in rules:
|
||||||
antecedent = []
|
antecedent = []
|
||||||
for atom in rule.get_antecedent():
|
for atom in rule.get_antecedent():
|
||||||
if fuzzy_variables.get(atom.get_varaible(), None) is None:
|
|
||||||
continue
|
|
||||||
antecedent.append(
|
antecedent.append(
|
||||||
_get_fuzzy_rule_atom(
|
_get_fuzzy_rule_atom(
|
||||||
fuzzy_variables[atom.get_varaible()], atom.get_value()
|
fuzzy_variables[atom.get_varaible()], atom.get_value()
|
||||||
|
Loading…
x
Reference in New Issue
Block a user