1
現在我已經實現了python代碼。如何更改我的python代碼避免計算maxnumber索引
def logistic(z):
return 1.0/(1.0 + np.exp(-z))
def gradient_testing(X,Y,w):
K = len(w)
N = len(X)
s = np.zeros(K)
for i in range(N):
s += Y[i] * X[i] * logistic(-Y[i] * np.dot(X[i], w))
s = -1 *s/N
return s
X
爲80×23矩陣,w
爲1×23 martix,Y
爲80 * 1 matrix.From我的代碼,將1次* 23每次返回後每iterations.But它沒有滿足我需求。
在第一次迭代中,它將返回1 * 23的值,然後我會選擇最大的一個,例如,它是s[8]
。而當前迭代s[8]
將不會從Y[i] * X[i] * logistic(-Y[i] * np.dot(X[i], w))
更新。在這個迭代中,如果Y[i] * X[i] * logistic(-Y[i] * np.dot(X[i], w))
中的第8個元素是最大的,那麼在下一次迭代中s[9]
將不會被更新。我如何更改我的代碼?
IS X和Y的長度是否相同? –
不完全理解你的問題。如果在當前迭代中s [8]'是最大值,那麼在下一次迭代中,要獲得s [0],s [1],s [2] ... s [7],0, s [9] ...',沒有s [8]? –
是,s [8]保留上次迭代計算的值 – liumilan