考虑下一段代码 -
def findBestHypothesis():
bestOfBest = []
currentERMValue = 0
bestERMValue = 0
for polynom in bestOfHypothesisClasses:
for j in range(0, len(training_set)):
currentERMValue += (np.polyval(polynom, training_set[x_value_index]) -
training_set[y_value_index])**2
if currentERMValue >= bestERMValue:
bestERMValue = currentERMValue
currentERMValue = 0
bestOfBest = polynom
return bestOfBest
如您所见,currentERMValue和bestERMValue是数字而不是数组。但是我得到了这个 -
如果np.greater_equal(currentERMValue,bestERMValue):ValueError:The 具有多个元素的数组的真值是不明确的。使用 a.any()或a.all()
答案 0 :(得分:2)
polyval
返回一个数组,每个x
值有一个元素:
>>> np.polyval([1,2,3],[4,5,6])
array([27, 38, 51])
所以training_set是二维数组,或者x_value_index或y_value_index不是标量。
答案 1 :(得分:-1)
我不确定,但是np.polyval会返回几个值。
返回:
值:ndarray或poly1d
如果x是poly1d实例,则结果是两个多项式的组合,即x在p中被“替换”并且返回简化结果。另外,x - array_like或poly1d的类型 - 控制输出的类型:x array_like => values array_like,x a poly1d object =>价值也是。
http://docs.scipy.org/doc/numpy-1.10.1/reference/generated/numpy.polyval.html