Machine learning codes
def SVM():
eeta=0.5
lamb=0.01
W=np.empty([1, len(top500)+1], dtype=int)*0
Ycap=np.empty([len(Train),1], dtype=int)*0+0.0
Y_Ycap=np.empty([len(Train),1], dtype=int)*0+0.0
empty=np.empty([len(Train),1],dtype=int)*0+1
newmatrix=np.append(empty,matrix,1)
Y=np.empty([len(Train),1], dtype=int)*0+0.0
N=len(Train)
M=np.transpose(newmatrix)
for i in range(0,100):
Ycap=np.matmul(W,M)
Ycap=np.transpose(Ycap)
for i in range (0,len(Train_array)):
if Train_array[i,1]==0:
Y[i]=-1
else:
Y[i]=1
Y_Ycap[i]=Y[i]*Ycap[i]
Delta=np.empty([len(top500)+1,len(Train_array)], dtype=int)*0
for i in range (0,len(Train_array)):
if Y_Ycap[i]<1:
Delta[:,i]=Y[i]*M[:,i]
else :
Delta[:,i]=0
Delta_trans = np.transpose(Delta)
sumss=np.empty([1,len(top500)+1], dtype=int)*0
for i in range (0,len(Train_array)):
sumss=lamb*W-Delta_trans[i,:]+sumss
slope= sumss/N
Wnew=W-eeta*slope
if np.linalg.norm(np.array(Wnew)-np.array(W)) == 1*math.exp(-6):
print("If:", np.linalg.norm(np.array(Wnew)-np.array(W)) == 1*math.exp(-6))
break
else:
W = Wnew
empty=np.empty([len(Test),1],dtype=int)*0+1
testnewmatrix=np.append(empty,test_matrix,1)
Testmatrixtrans=np.transpose(testnewmatrix)
F=np.matmul(W,Testmatrixtrans)
predict=np.empty([len(Test),1], dtype=int)*0+0.0
for i in range(0,len(Test)):
if F[0,i]<0:
predict[i]=-1
else :
predict[i]=1
#zero loss
Actual=np.empty([len(Test),1], dtype=int)*0+0.0
for i in range (0,len(Test)):
if Test_array[i,1]==0:
Actual[i]=-1
else:
Actual[i]=1
Mistakes=0
for i in range (0,len(Test_array)):
if Actual[i]!=predict[i]:
Mistakes=Mistakes+1#U=U+1
Zero_loss_SVM= Mistakes/len(Test)
Zero_loss_SVM
print ("ZERO_ONE_LOSS SVM %s"%Zero_loss_SVM)
return(Zero_loss_SVM)