8.3iris_LR.py问题出在哪?

Traceback (most recent call last):
File "E:/17 机器学习邹博/8.Regression代码/8.Regression/8.3.Iris_LR.py", line 58, in <module>
data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})
File "D:\Users\tmzhu\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 930, in loadtxt
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "D:\Users\tmzhu\Anaconda3\lib\site-packages\numpy\lib\npyio.py", line 930, in <listcomp>
items = [conv(val) for (conv, val) in zip(converters, vals)]
File "E:/17 机器学习邹博/8.Regression代码/8.Regression/8.3.Iris_LR.py", line 16, in iris_type
return it[s]
KeyError: b'Iris-setosa'

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自: Hankcrd

这是《机器学习升级版II》的“回归实践”章节的配套代码。 报错本身的提示的意思是:字典中没有'Iris-setosa'这个键,却试图访问它。 所以,鉴于这个是从文件读取的,因此,最大的可能是字符编码问题。 个人建议,换成Python2.7或者将文件尝试转成其他格式试试。

sipangzixu

赞同来自:

Python3如何实现呀

邹博 - 计算机科学博士,深谙机器学习算法原理

赞同来自:

咱们现在已经配套提供了Python2.7和Python3.5两个版本的代码了。 对于这个问题,可以这么写:
def iris_type(s):
    it = {b'Iris-setosa': 0,
          b'Iris-versicolor': 1,
          b'Iris-virginica': 2}
    return it[s]
data = np.loadtxt(path, dtype=float, delimiter=',', converters={4: iris_type})

要回复问题请先登录注册