in

Regresión logística: descripción general detallada

Regresión logística: descripción general detallada

Saishruthi Swaminathan

15 de marzo de 2018·5 min de lectura

Figura 1: Modelo de regresión logística (Fuente: http: //dataaspirant.com/2017/03/02/how-logistic-regression-model-works/)
  • Si el tumor es maligno (1) o no (0)
1*RqXFpiNGwdiKBWyLJc E7g

Figura 2: Función de activación sigmoidea

Figura 3: Representación matemática

Figura 4: Función de costo de la regresión logística
1*ZyjEj3A QyR4WY7y5cwIWQ

Figura 5: Función de costo convexa y no convexa
1*5AYaGPV gjYUf37d2IhgTQ

Figura 6: Función de costo, parte 1
1*MFMIEUC dobhJrRjGK7PBg

Figura 7: Función de costo, parte 2
1*ueEwU1dE0Yu KpMJanf9AQ

Figura 8: Función de costos simplificada
1*heGae4aZ dN rLsfx2 P9g

Figura 9: Explicación de máxima verosimilitud, parte 1
1*JIpaau jFfvX2yR9L1YZ6A

Figura 10: Explicación de máxima verosimilitud, parte 2
1*r7fhk417IOuq7meXIctGXg

Figura 11: Algoritmo de descenso de gradiente, parte 1
1*pJEi5f4gdVGezYev9MChBw

Figura 12: Gradient Descent parte 2
def weightInitialization(n_features):
w = np.zeros((1,n_features))
b = 0
return w,b
def sigmoid_activation(result):
final_result = 1/(1+np.exp(-result))
return final_result

def model_optimize(w, b, X, Y):
m = X.shape[0]

#Prediction
final_result = sigmoid_activation(np.dot(w,X.T)+b)
Y_T = Y.T
cost = (-1/m)*(np.sum((Y_T*np.log(final_result)) + ((1-Y_T)*(np.log(1-final_result)))))
#

#Gradient calculation
dw = (1/m)*(np.dot(X.T, (final_result-Y.T).T))
db = (1/m)*(np.sum(final_result-Y.T))

grads = {"dw": dw, "db": db}

return grads, cost
def model_predict(w, b, X, Y, learning_rate, no_iterations):
costs = []
for i in range(no_iterations):
#
grads, cost = model_optimize(w,b,X,Y)
#
dw = grads["dw"]
db = grads["db"]
#weight update
w = w - (learning_rate * (dw.T))
b = b - (learning_rate * db)
#

if (i % 100 == 0):
costs.append(cost)
#print("Cost after %i iteration is %f" %(i, cost))

#final parameters
coeff = {"w": w, "b": b}
gradient = {"dw": dw, "db": db}

return coeff, gradient, costs
def predict(final_pred, m):
y_pred = np.zeros((1,m))
for i in range(final_pred.shape[1]):
if final_pred[0][i] > 0.5:
y_pred[0][i] = 1
return y_pred
1*uRaeTkF5Ig DYZwR8HiJMQ

Figura 13: Reducción de costos

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

03OcE8Uixo7E87s2yg0U5XN 1.1632168945.fit lim.size 1200x630

Los enrutadores de Virgin Media dejaron vulnerables a los usuarios de VPN desde al menos 2019

Taleo | Oráculo