mixedvine.py 文件源码

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

项目:mixedvines 作者: asnelt 项目源码 文件源码
def _marginal_densities(self, samples):
            '''
            Evaluate marginal densities and cumulative distribution functions.

            Parameters
            ----------
            samples : array_like
                n-by-d matrix of samples where n is the number of samples and d
                is the number of marginals.

            Returns
            -------
            dout : dictionary
                The densities and cumulative distribution functions.  Keys:
                `logpdf`: Equal to first element of `logp`.
                'logp': Log of the probability density function.
                'cdfp': Upper cumulative distribution functions.
                'cdfm': Lower cumulative distribution functions.
                'is_continuous': List of booleans where element i is `True` if
                output element i is continuous.
            '''
            logp = np.zeros(samples.shape)
            cdfp = np.zeros(samples.shape)
            cdfm = np.zeros(samples.shape)
            is_continuous = np.zeros(len(self.marginals), dtype=bool)
            for k, marginal in enumerate(self.marginals):
                is_continuous[k] = marginal.is_continuous
                cdfp[:, k] = marginal.cdf(samples[:, k])
                if marginal.is_continuous:
                    logp[:, k] = marginal.logpdf(samples[:, k])
                else:
                    cdfm[:, k] = marginal.cdf(samples[:, k] - 1)
                    old_settings = np.seterr(divide='ignore')
                    logp[:, k] = np.log(np.maximum(0, cdfp[:, k] - cdfm[:, k]))
                    np.seterr(**old_settings)
            logpdf = logp[:, self.output_layer.input_indices[0][0]]
            dout = {'logpdf': logpdf, 'logp': logp, 'cdfp': cdfp, 'cdfm': cdfm,
                    'is_continuous': is_continuous}
            return dout
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号