我正试图解决这个问题:
def phi(x):
# DO NOTHING ON THIS FUNCTION
if x<=0:
return -1.0
else:
return 1.0
phi = np.vectorize(phi)这就是我需要实现该功能的地方:
def predictOne(x, w):
z =
return phi(z)但是,当我尝试使用我的公式时,但是用我的输入代码:
def predictOne(x, w):
z = 0 + x * w
return phi(z)并运行我的断言:
assert predictOne(np.array([0.0,0.0]) , np.array([0.1,3.2,7.4])) == 1.0
assert predictOne(np.array([0.0,0.0]), np.array([-0.1,3.2,7.4])) == -1.0
assert predictOne(np.array([0.3,-0.7]), np.array([0.1,3.2,7.4])) == -1.0
assert predictOne(np.array([0.3,0.7]), np.array([0.1,3.2,7.4])) == 1.0我得到一个(操作数不能与形状(2,) (3,)一起广播)
显然,断言是正确的,所以我在predictOne函数中做了一些错误。有人能帮忙吗?
发布于 2021-12-20 20:55:53
问题在于公式:
def predictOne(x, w):
z = w[0] + np.sum(x * w[1:])
return phi(z)w[0]是偏见。正如@mkrieger所指出的,零的偏差并不能使大量的sense.https://stackoverflow.com/questions/70427301
复制相似问题