機械学習実戦:意思決定木の誤り
2105 ワード
機械学習実戦で主に使うpython 2.x,私が今使っているpython 3.5.決定木コードエラー部分:
pickleパッケージ
もう一つの間違いはTypeError:'dict_keys’object does not support indexingの主な原因はpython 3がdict.keysを変更したためで、dict_を返しますkeysオブジェクト、iterableをサポートしますがindexableをサポートしません.list:元のコードに明確に変換できます.
pickleパッケージ
def storeTree(inputTree,filename):
import pickle
fw=open(filename,'wb')
pickle.dump(inputTree,fw)
fw.close()
def grabTree(filename):
import pickle
fr=open(filename,'rb')
return pickle.load(fr)
この部分の元のコードは次のとおりです.def storeTree(inputTree,filename):
import pickle
fw = open(filename,'w')
pickle.dump(inputTree,fw)
fw.close()
def grabTree(filename):
import pickle
fr = open(filename)
return pickle.load(fr)
TypeError:write()argument must be str、not bytesの主な原因はpickle(最初のバージョンを除く)がバイナリ形式であるため、「b」フラグを持ってファイルを開くべきであるもう一つの間違いはTypeError:'dict_keys’object does not support indexingの主な原因はpython 3がdict.keysを変更したためで、dict_を返しますkeysオブジェクト、iterableをサポートしますがindexableをサポートしません.list:元のコードに明確に変換できます.
firstStr = myTree.keys()[0]
変更:firstSides = list(inputTree.keys())
firstStr = firstSides[0]