0
나는 numPy를 사용하여 Logistic 회귀 모델을 만들고 TensorFlow "Getting Started"예 : tensorFlow 예제와 동일한 학습 속도와 기원을 사용하여 {x: [1, 2, 3, 4], y: [0, -1, -2, -3]}
을 사용하여 교육하려고합니다. 그러나 어떤 이유로 올바른 체중과 편견을 배우십시오. 어떤 도움이 필요합니까? 나는 AI에 처음 온 사람이다.Python의 로지스틱 회귀
코드 :
# Compute cost and gradient
def propagate(w, b, X, Y):
m = X.shape[0]
A = sigmoid(np.multiply(w,X) + b)
arr = (np.multiply(w,X) + b) - Y
cost = np.dot(arr, arr)
cost = np.squeeze(cost)
dw = 1/m * X.dot((A-Y).T)
db = 1/m * np.sum(A-Y)
return {"db": db, "dw": dw}, cost
# Gradient Descnet
def optimize(w, b, X, Y, epochs, learning_rate):
costs = []
for i in range(epochs):
grads, cost = propagate(w, b, X, Y)
dw = grads['dw']
db = grads['db']
w = w - learning_rate * dw
b = b - learning_rate * db
if i % 100 == 0:
costs.append(cost)
return {"w":w, "b":b}, {"db": db, "dw": dw}, costs
출력 :
w, b, X, Y = np.array([0.3]), -0.3, np.array([1, 2, 3, 4]), np.array([0, -1, -2, -3])
grads, cost = propagate(w, b, X, Y)
print ("dw = " + str(grads["dw"])) # dw = 6.6074129907
print ("db = " + str(grads["db"])) # db = 2.10776208142
print ("cost = " + str(cost)) # cost = 23.66
params, grads, costs = optimize(w, b, X, Y, epochs= 100, learning_rate = 0.01)
print ("w = " + str(params["w"])) # w = [-4.85038348] (supposed to be about -0.9999969)
print ("b = " + str(params["b"])) # b = -1.86763966366 (supposed to be about 0.99999082)
tensorflow – DJK
태그를 지정해야합니다. tensorflow 예제는 선형 회귀 (logistic)가 아닌 선형 회귀를 사용합니다. 물류 기능의 출력 (sigmoid)은 항상 0과 1 사이의 범위에 있으므로 출력 y에 맞지 않습니다. [0, -1, -2, -3] –
감사합니다. 나는 때때로 회귀 분석을 로지스틱 회귀와 혼동하고 나는 S 자형을 사용하고 있다는 것을 잊었다. 그럼 당신의 제안은 다른 활성화 기능을 사용합니까? 아이디어? – styl3r