utils.py 文件源码

python
阅读 21 收藏 0 点赞 0 评论 0

项目:diamond 作者: stitchfix 项目源码 文件源码
def l2_clogistic_llh(X, Y, alpha, beta, penalty_matrix, offset):
    """ Penalized log likelihood function for proportional odds cumulative logit model

    Args:
        X : array_like. design matrix
        Y : array_like. response matrix
        alpha : array_like. intercepts.\
        must have shape == one less than the number of columns of `Y`
        beta : array_like. parameters.\
        must have shape == number of columns of X
        penalty_matrix : array_like. Regularization matrix
        offset : array_like, optional. Defaults to 0
    Returns:
        scalar : penalized loglikelihood
    """
    offset = 0.0 if offset is None else offset
    obj = 0.0
    J = Y.shape[1]
    Xb = dot(X, beta) + offset
    for j in range(J):
        if j == 0:
            obj += dot(np.log(expit(alpha[j] + Xb)), Y[:, j])
        elif j == J - 1:
            obj += dot(np.log(1 - expit(alpha[j - 1] + Xb)), Y[:, j])
        else:
            obj += dot(np.log(expit(alpha[j] + Xb) - expit(alpha[j - 1] + Xb)), Y[:, j])
    obj -= 0.5 * dot(beta, dot(penalty_matrix, beta))
    return -np.inf if np.isnan(obj) else obj
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号