问题描述:
ValueError: Expected 2D array, got 1D array instead:
array=[2. 1.5].
Reshape your data either using array.reshape(-1, 1) if your data has a single feature or array.reshape(1, -1) if it contains a single sample.
自己最初改这个bug的时候重点关注了第二点,然后各种百度、百度、百度。
一般的解决办法都是人家提示的修改建议:数组后面添加reshape(1,-1).
但是这个方法并不能解决我的问题,即使reshape之后,还会报同样的错。
这就提示我们:要认真一点,看所有的报错信息,这时发现了第一点问题:
即真正的问题出在:
print(i, '-->', classifier.decision_function(i)[0])
这行语句。
问题分析:python版本问题
如果跟的是《python机器学习经典实例》这本书(版本是python2.x ),而自己的版本是3.x的,就会出现很多小问题需要改。让人头疼的是很多时候,这类型的bug不容易发现,也没有修改建议。比如这个题,爆出了第一个错误,但是没给具体错误原因,也没有修改建议,让人直接忽略,以为是第二个报错,做了半天无用功。
问题解决:
将提示出错的语句改成下面:
print(i, '-->', classifier.decision_function([i])[0])
注意区别:i ——>[i]