機械学習実戦:意思決定木の誤り

2105 ワード

機械学習実戦で主に使うpython 2.x,私が今使っているpython 3.5.決定木コードエラー部分:
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]