Given weights w=[8, 10] (1 by 2 vector) and b=-5 for a hyperplane w^Tx b=0 and I want to use this hyperplane to classify the testing dataset X_te (51 by 2). For a data point x_i, the classification is based on if w^Tx_i b >= 1 then assigns the label y=1 and if w^Tx_i b <= -1 then assign the label y=-1.
I try the following code:
def cla(X,w,b):
pre_te=np.zeros(len(X))
length=X.shape[0]
for i in range(length):
y_pred=np.dot(np.array(X[i]),w.T) b
if y_pred>=1:
pre_te[i]=1
else:
pre_te[i]=-1
return pre_te
I can assign 1 to y_pred if y_pred>=1. How to add -1 to y_pred if y_pred<=-1 in the above for loop?
I do not think that write else: pre_te[i]=-1 work... There will be 0 in the output...
CodePudding user response:
I think you need elif
for i in range(length):
y_pred=np.dot(np.array(X[i]),w.T) b
if y_pred>=1:
pre_te[i]=1
elif y_pred<=-1:
pre_te[i]=-1
return pre_te
