Найти - Пользователи
Полная версия: Не могу найти ошибку в коде.
Начало » Центр помощи » Не могу найти ошибку в коде.
1
pas
Добрый день.

Пишу программа которая будет строить деревья решений. По книжке Тоби Сегарана “Программируем коллективный разум”. Там весь код есть. Я его собрал, программа работает. Вот только одна процедура, а именно отсечения ветвей не работает. Так как я про Python вообще ничего не знаю(Мне нужна программа ивсе), я не могу отладить ошибку.
Прошу помощи, ошибка в процедуре “prune”.
Для того чтобы долго не разбиратся в коде, вот команды по очереди:
import treepredict - это понятно
tree=treepredict.buildtree(treepredict.my_data) - это, собственно построение дерева.
treepredict.prune(tree,0.1) - а это и есть отсечение и тут у меня ошибки.

Надеюсь на вашу помощь. Код прилагается.

А вот код процедуры.

def prune(tree,mingain):
 if tree.tb.results==None:
  prune(tree.tb,mingain)
 if tree.fb.results==None:
  prune(tree.fb,mingain)
 if tree.tb.results!=None and tree.fb.results!=None:
  tb=[]
  fb=[]
  for v,c in tree.tb.results.items( ):
   tb+=[[v]]*c
  for v,c in tree.fb.results.items( ):
   fb+=[[v]]*c
 delta=entropy(tb+fb)-(entropy(tb)+entropy(fb)/2)
 if delta<mingain:
  tree.tb,tree.fb=None,None
  tree.results=uniquecounts(tb+fb)

А Python пишет
Traceback (most recent call last):
File “<pyshell#22>”, line 1, in <module>
treepredict.prune(tree,0.1)
File “C:\Python26\treepredict.py”, line 974, in prune
prune(tree.tb,mingain)
File “C:\Python26\treepredict.py”, line 974, in prune
prune(tree.tb,mingain)
File “C:\Python26\treepredict.py”, line 974, in prune
prune(tree.tb,mingain)
File “C:\Python26\treepredict.py”, line 986, in prune
delta=entropy(tb+fb)-(entropy(tb)+entropy(fb)/2)
UnboundLocalError: local variable ‘tb’ referenced before assignment
gisolog
вот в этом модуле метод prune ни на что не ругается (по крайнем мере, если его запускать как “__main__”), попробуйте его, что ли. удач)
pas
Спасибо большое, что погуглили за меня Вроде все работает, извините за беспокойство. Тему можно закрывать.
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB