2014-10-06 4 views
3

나는 NumPy와이 경사 하강을 구현 한 :벡터화 그라데이션 하강 NumPy와

def gradientDescent(X, y, theta, alpha, iterations): 
    m = len(y) 

    for i in range(iterations): 
     h = np.dot(X,theta) 
     loss = h-y 
     theta = theta - (alpha/m)*np.dot(X.T, loss) #update theta 

    return theta 

코드의 다른 부분이 완전히 나 제거하는 것은 불가능 보인다 루프 여전히 여기가 벡터화하는 동안; 구체적으로 각 단계에서 쎄타의 업데이트가 필요합니다. 어떻게 필자가 벡터 라이 제이션을하는지 또는보다 효율적인 방식으로 필 요로 쓰는지 알 수 없습니다. 각각의 반복 상태를 업데이트하기 때문에

는, 당신은 루프의 벡터화 할 수 없습니다 당신의 도움

답변

4

주셔서 감사합니다. 벡터화는 주로 각 반복이 독립적 인 (어떤 의미에서는) 결과를 계산하도록 계산을 수행 할 수있을 때 사용됩니다.

+1

확인해 주셔서 감사합니다. –