У меня есть атрибут dict для построения древовидной структуры.
У меня есть эта функция предикторов, которая прогнозирует точность моего дерева решений на основе отношений дочерних атрибутов.
Я хочу обобщить эту функцию, чтобы иметь возможность прогнозировать свою точность на основе моего атрибута dict .
def __init__(self, _d):
self.__dict__ = {a:DecisionNode(b) if isinstance(b, dict) else b for a, b in _d.items()}
def predicts(self, x):
if self.children == {}: # reached leaf level
return self.attribute
value = x[self.attribute]
subtree = self.children[value]
return subtree.predicts(x)
for i in range(0,len(test)):
if str(class_tree.predicts(test.loc[i])) == str(test.loc[1,target]):
correct += 1
print("\nThe accuracy is: ", correct/len(test))
Вот как выглядят мои атрибуты dict -
class_tree.outlook.sunny.temperature.hot
Out[85]: 'no'