def logloss(act, pred):
epsilon = 1e-15
pred = sp.maximum(epsilon, pred)
pred = sp.minimum(1-epsilon, pred)
ll = sum(act*sp.log(pred) + sp.subtract(1,act)*sp.log(sp.subtract(1,pred)))
ll = ll * -1.0/len(act)
return ll
python类log()的实例源码
def geom_std(values: t.List[float]) -> float:
"""
Calculates the geometric standard deviation for the passed values.
Source: https://en.wikipedia.org/wiki/Geometric_standard_deviation
"""
import scipy.stats as stats
import scipy as sp
gmean = stats.gmean(values)
return sp.exp(sp.sqrt(sp.sum([sp.log(x / gmean) ** 2 for x in values]) / len(values)))
def devi(yy, eta):
deveta = yy*eta - scipy.exp(eta)
devy = yy*scipy.log(yy) - yy
devy[yy == 0] = 0
result = 2*(devy - deveta)
return(result)
def devi(yy, eta):
deveta = yy*eta - scipy.exp(eta)
devy = yy*scipy.log(yy) - yy
devy[yy == 0] = 0
result = 2*(devy - deveta)
return(result)
def binary_logloss(p, y):
epsilon = 1e-15
p = sp.maximum(epsilon, p)
p = sp.minimum(1-epsilon, p)
res = sum(y*sp.log(p) + sp.subtract(1,y)*sp.log(sp.subtract(1,p)))
res *= -1.0/len(y)
return res
def multiclass_logloss(P, Y):
score = 0.
npreds = [P[i][Y[i]-1] for i in range(len(Y))]
score = -(1./len(Y)) * np.sum(np.log(npreds))
return score
tfidf.py 文件源码
项目:Building-Machine-Learning-Systems-With-Python-Second-Edition
作者: PacktPublishing
项目源码
文件源码
阅读 59
收藏 0
点赞 0
评论 0
def tfidf(t, d, D):
tf = float(d.count(t)) / sum(d.count(w) for w in set(d))
idf = sp.log(float(len(D)) / (len([doc for doc in D if t in doc])))
return tf * idf
def binary_logloss(p, y):
epsilon = 1e-15
p = sp.maximum(epsilon, p)
p = sp.minimum(1-epsilon, p)
res = sum(y * sp.log(p) + sp.subtract(1, y) * sp.log(sp.subtract(1, p)))
res *= -1.0/len(y)
return res
def multiclass_logloss(P, Y):
npreds = [P[i][Y[i]-1] for i in range(len(Y))]
score = -(1. / len(Y)) * np.sum(np.log(npreds))
return score
def logloss(act, preds):
epsilon = 1e-15
preds = sp.maximum(epsilon, preds)
preds = sp.minimum(1 - epsilon, preds)
ll = sum(act * sp.log(preds) + sp.subtract(1, act) * sp.log(sp.subtract(1, preds)))
ll = ll * -1.0 / len(act)
return ll
def logloss(act, preds):
epsilon = 1e-15
preds = sp.maximum(epsilon, preds)
preds = sp.minimum(1 - epsilon, preds)
ll = sum(act * sp.log(preds) + sp.subtract(1, act) * sp.log(sp.subtract(1, preds)))
ll = ll * -1.0 / len(act)
return ll
def logloss(act, preds):
epsilon = 1e-15
preds = sp.maximum(epsilon, preds)
preds = sp.minimum(1 - epsilon, preds)
ll = sum(act * sp.log(preds) + sp.subtract(1, act) * sp.log(sp.subtract(1, preds)))
ll = ll * -1.0 / len(act)
return ll
def getModelpdf(self, x):
if(x>=0):
output = 1.0/( (x*self.getSigmaValue())*sqrt(2*np.pi) )
output *= exp(-0.5*((log(x)- self.getx0Value())/self.getSigmaValue())**2)
else:
output = x
return scipy.where((x<0), 0.0, output)
def nLLeval(ldelta, Uy, S, REML=True):
"""
evaluate the negative log likelihood of a random effects model:
nLL = 1/2(n_s*log(2pi) + logdet(K) + 1/ss * y^T(K + deltaI)^{-1}y,
where K = USU^T.
Uy: transformed outcome: n_s x 1
S: eigenvectors of K: n_s
ldelta: log-transformed ratio sigma_gg/sigma_ee
"""
n_s = Uy.shape[0]
delta = scipy.exp(ldelta)
# evaluate log determinant
Sd = S + delta
ldet = scipy.sum(scipy.log(Sd))
# evaluate the variance
Sdi = 1.0 / Sd
Sdi=Sdi.reshape((Sdi.shape[0],1))
ss = 1. / n_s * (Uy*Uy*Sdi).sum()
# evalue the negative log likelihood
nLL = 0.5 * (n_s * scipy.log(2.0 * scipy.pi) + ldet + n_s + n_s * scipy.log(ss))
if REML:
pass
return nLL
utils.py 文件源码
项目:Tencent_Social_Advertising_Algorithm_Competition
作者: guicunbin
项目源码
文件源码
阅读 44
收藏 0
点赞 0
评论 0
def logloss(act, pred):
epsilon = 1e-15
pred = sp.maximum(epsilon, pred)
pred = sp.minimum(1-epsilon, pred)
ll = sum(act*sp.log(pred) + sp.subtract(1,act)*sp.log(sp.subtract(1,pred)))
ll = ll * -1.0/len(act)
return ll
utils.py 文件源码
项目:Tencent_Social_Advertising_Algorithm_Competition
作者: guicunbin
项目源码
文件源码
阅读 36
收藏 0
点赞 0
评论 0
def self_eval(pred,train_data):
'''
:pred
:train_data ?? labels
'''
try:
labels=train_data.get_label()
except:
labels=train_data
epsilon = 1e-15
pred = np.maximum(epsilon, pred)
pred = np.minimum(1-epsilon,pred)
ll = sum(labels*np.log(pred) + (1 - labels)*np.log(1 - pred))
ll = ll * (-1.0)/len(labels)
return 'log loss', ll, False
def binary_logloss(p, y):
epsilon = 1e-15
p = sp.maximum(epsilon, p)
p = sp.minimum(1-epsilon, p)
res = sum(y * sp.log(p) + sp.subtract(1, y) * sp.log(sp.subtract(1, p)))
res *= -1.0/len(y)
return res
def multiclass_logloss(P, Y):
score = 0.
npreds = [P[i][Y[i]-1] for i in range(len(Y))]
score = -(1. / len(Y)) * np.sum(np.log(npreds))
return score
def compute_inverse_logdet(self,c,tau):
Lr = self.L[c,:]+tau # Regularized eigenvalues
temp = self.Q[c,:,:]*(1/Lr)
invCov = sp.dot(temp,self.Q[c,:,:].T) # Pre compute the inverse
logdet = sp.sum(sp.log(Lr)) # Compute the log determinant
return invCov,logdet
def BIC(self,x,y,tau=None):
'''
Computes the Bayesian Information Criterion of the model
'''
## Get information from the data
C,d = self.mean.shape
n = x.shape[0]
## Initialization
if tau is None:
TAU=self.tau
else:
TAU=tau
## Penalization
P = C*(d*(d+3)/2) + (C-1)
P *= sp.log(n)
## Compute the log-likelihood
L = 0
for c in range(C):
j = sp.where(y==(c+1))[0]
xi = x[j,:]
invCov,logdet = self.compute_inverse_logdet(c,TAU)
cst = logdet - 2*sp.log(self.prop[c]) # Pre compute the constant
xi -= self.mean[c,:]
temp = sp.dot(invCov,xi.T).T
K = sp.sum(xi*temp,axis=1)+cst
L +=sp.sum(K)
del K,xi
return L + P