鉴于特征矩阵的概率连同权重计算:
def probability(X, w):
z = np.dot(X,w)
a = 1./(1+np.exp(-z))
return np.array(a)
def loss(X, y, w):
normalization_fator = X.shape[0] #store loss values
features_probability = probability(X, w) #return one probability for each row in a matrix
corss_entropy = y*np.log(features_probability) + (1-y)*np.log(1-features_probability)
cost = -1/float(normalization_fator) * np.sum(corss_entropy)
cost = np.squeeze(cost)
return cost
问题:我先做的,没有除以,但正确的方法是除以归一化因子,尽管在我对逻辑回归损失的公式中由下式给出:
如您所见,没有归一化因子:
编辑:表示每一行的概率由 sigmoid 函数给出。