最近在学机器学习,看《机器学习实战》,因为书上的代码是在Python2下编写的,所以转到Python3会有许多问题需要修改。
第3章决策树有一个函数如下:
def grabTree(filename):
import pickle
fr = open(filename)
return pickle.load(fr)
运行时一直出现下面的错误:
UnicodeDecodeError: 'utf-8' codec can't decode byte 0x80 in position 0: invalid start byte
上网搜索解决方法,其他人的方法是与编码有关系的,无法解决我的问题。自我感觉问题出在版本上,因为在前面的函数里把fw = open(filename,'w')改成了fw = open(filename,'wb'),所以在这个函数中也把fr = open(filename)改为fr = open(filename,'rb'),问题解决,事实证明确实是版本不同导致的。