Python scipy.stats.bernoulli() Examples
The following are 24
code examples of scipy.stats.bernoulli().
You can vote up the ones you like or vote down the ones you don't like,
and go to the original project or source file by following the links above each example.
You may also want to check out all available functions/classes of the module
scipy.stats
, or try the search function
.
Example #1
Source File: test_distributions.py From Computable with MIT License | 6 votes |
def test_nan_arguments_gh_issue_1362(): assert_(np.isnan(stats.t.logcdf(1, np.nan))) assert_(np.isnan(stats.t.cdf(1, np.nan))) assert_(np.isnan(stats.t.logsf(1, np.nan))) assert_(np.isnan(stats.t.sf(1, np.nan))) assert_(np.isnan(stats.t.pdf(1, np.nan))) assert_(np.isnan(stats.t.logpdf(1, np.nan))) assert_(np.isnan(stats.t.ppf(1, np.nan))) assert_(np.isnan(stats.t.isf(1, np.nan))) assert_(np.isnan(stats.bernoulli.logcdf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.cdf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.logsf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.sf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.pmf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.logpmf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.ppf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.isf(np.nan, 0.5)))
Example #2
Source File: draw_pmf.py From machine-learning-note with MIT License | 6 votes |
def bernoulli_pmf(p=0.0): """ 伯努利分布,只有一个参数 https://docs.scipy.org/doc/scipy/reference/generated/scipy.stats.bernoulli.html#scipy.stats.bernoulli :param p: 试验成功的概率,或结果为1的概率 :return: """ ber_dist = stats.bernoulli(p) x = [0, 1] x_name = ['0', '1'] pmf = [ber_dist.pmf(x[0]), ber_dist.pmf(x[1])] plt.bar(x, pmf, width=0.15) plt.xticks(x, x_name) plt.ylabel('Probability') plt.title('PMF of bernoulli distribution') plt.show() # bernoulli_pmf(p=0.3)
Example #3
Source File: test_bernoulli.py From chainer with MIT License | 6 votes |
def setUp_configure(self): from scipy import stats self.dist = distributions.Bernoulli self.scipy_dist = stats.bernoulli self.options = {'binary_check': self.binary_check} self.test_targets = set([ 'batch_shape', 'entropy', 'log_prob', 'mean', 'prob', 'sample', 'stddev', 'support', 'variance']) if self.extreme_values: p = numpy.random.randint(0, 2, self.shape).astype(numpy.float32) else: p = numpy.random.uniform(0, 1, self.shape).astype(numpy.float32) self.params = {'p': p} self.scipy_params = {'p': p} self.support = '{0, 1}' self.continuous = False self.old_settings = None if self.extreme_values: self.old_settings = numpy.seterr(divide='ignore', invalid='ignore')
Example #4
Source File: discretemodels.py From abcpy with BSD 3-Clause Clear License | 6 votes |
def pmf(self, input_values, x): """Evaluates the probability mass function at point x. Parameters ---------- input_values: list List of input parameters, in the same order as specified in the InputConnector passed to the init function x: float The point at which the pmf should be evaluated. Returns ------- float: The pmf evaluated at point x. """ probability = input_values[0] pmf = bernoulli(probability).pmf(x) self.calculated_pmf = pmf return pmf
Example #5
Source File: discretemodels.py From abcpy with BSD 3-Clause Clear License | 6 votes |
def forward_simulate(self, input_values, k, rng=np.random.RandomState(), mpi_comm=None): """ Samples from the bernoulli distribution associtated with the probabilistic model. Parameters ---------- input_values: list List of input parameters, in the same order as specified in the InputConnector passed to the init function k: integer The number of samples to be drawn. rng: random number generator The random number generator to be used. Returns ------- list: [np.ndarray] A list containing the sampled values as np-array. """ result = np.array(rng.binomial(1, input_values[0], k)) return [np.array([x]) for x in result]
Example #6
Source File: discretemodels.py From abcpy with BSD 3-Clause Clear License | 6 votes |
def __init__(self, parameters, name='Bernoulli'): """This class implements a probabilistic model following a bernoulli distribution. Parameters ---------- parameters: list A list containing one entry, the probability of the distribution. name: string The name that should be given to the probabilistic model in the journal file. """ if not isinstance(parameters, list): raise TypeError('Input for Bernoulli has to be of type list.') if len(parameters)!=1: raise ValueError('Input for Bernoulli has to be of length 1.') self._dimension = len(parameters) input_parameters = InputConnector.from_list(parameters) super(Bernoulli, self).__init__(input_parameters, name) self.visited = False
Example #7
Source File: test_distributions.py From GraphicDesignPatternByPython with MIT License | 6 votes |
def test_nan_arguments_gh_issue_1362(): with np.errstate(invalid='ignore'): assert_(np.isnan(stats.t.logcdf(1, np.nan))) assert_(np.isnan(stats.t.cdf(1, np.nan))) assert_(np.isnan(stats.t.logsf(1, np.nan))) assert_(np.isnan(stats.t.sf(1, np.nan))) assert_(np.isnan(stats.t.pdf(1, np.nan))) assert_(np.isnan(stats.t.logpdf(1, np.nan))) assert_(np.isnan(stats.t.ppf(1, np.nan))) assert_(np.isnan(stats.t.isf(1, np.nan))) assert_(np.isnan(stats.bernoulli.logcdf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.cdf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.logsf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.sf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.pmf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.logpmf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.ppf(np.nan, 0.5))) assert_(np.isnan(stats.bernoulli.isf(np.nan, 0.5)))
Example #8
Source File: test_distributions.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_docstrings(self): # See ticket #761 if stats.rayleigh.__doc__ is not None: assert_("rayleigh" in stats.rayleigh.__doc__.lower()) if stats.bernoulli.__doc__ is not None: assert_("bernoulli" in stats.bernoulli.__doc__.lower())
Example #9
Source File: test_grid_search.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_parameters_sampler_replacement(): # raise error if n_iter too large params = {'first': [0, 1], 'second': ['a', 'b', 'c']} sampler = ParameterSampler(params, n_iter=7) assert_raises(ValueError, list, sampler) # degenerates to GridSearchCV if n_iter the same as grid_size sampler = ParameterSampler(params, n_iter=6) samples = list(sampler) assert_equal(len(samples), 6) for values in ParameterGrid(params): assert_true(values in samples) # test sampling without replacement in a large grid params = {'a': range(10), 'b': range(10), 'c': range(10)} sampler = ParameterSampler(params, n_iter=99, random_state=42) samples = list(sampler) assert_equal(len(samples), 99) hashable_samples = ["a%db%dc%d" % (p['a'], p['b'], p['c']) for p in samples] assert_equal(len(set(hashable_samples)), 99) # doesn't go into infinite loops params_distribution = {'first': bernoulli(.5), 'second': ['a', 'b', 'c']} sampler = ParameterSampler(params_distribution, n_iter=7) samples = list(sampler) assert_equal(len(samples), 7)
Example #10
Source File: test_search.py From twitter-stock-recommendation with MIT License | 5 votes |
def test_parameters_sampler_replacement(): # raise error if n_iter too large params = {'first': [0, 1], 'second': ['a', 'b', 'c']} sampler = ParameterSampler(params, n_iter=7) assert_raises(ValueError, list, sampler) # degenerates to GridSearchCV if n_iter the same as grid_size sampler = ParameterSampler(params, n_iter=6) samples = list(sampler) assert_equal(len(samples), 6) for values in ParameterGrid(params): assert_true(values in samples) # test sampling without replacement in a large grid params = {'a': range(10), 'b': range(10), 'c': range(10)} sampler = ParameterSampler(params, n_iter=99, random_state=42) samples = list(sampler) assert_equal(len(samples), 99) hashable_samples = ["a%db%dc%d" % (p['a'], p['b'], p['c']) for p in samples] assert_equal(len(set(hashable_samples)), 99) # doesn't go into infinite loops params_distribution = {'first': bernoulli(.5), 'second': ['a', 'b', 'c']} sampler = ParameterSampler(params_distribution, n_iter=7) samples = list(sampler) assert_equal(len(samples), 7)
Example #11
Source File: discrete_distributions.py From machine-learning-note with MIT License | 5 votes |
def bernoulli_distribution(): # 伯努利分布 # 只有一个参数:p,实验成功的概率 p = 0.6 bernoulli_dist = stats.bernoulli(p) # 伯努利分布的概率质量分布函数pmf p_heads = bernoulli_dist.pmf(1) # 试验结果为1的概率, 规定为正面, 概率为0.6 p_tails = bernoulli_dist.pmf(0) # 试验结果为0的概率, 规定为反面, 概率为0.4 # 取100个服从参数为0.6的伯努利分布的随机变量 trials = bernoulli_dist.rvs(100) print(np.sum(trials)) # 63, 相当于1的个数 # 100个随机变量的直方图, 相当于取出来的100个随机变量的概率质量分布 plt.hist(trials/len(trials)) # plt.show() plt.savefig('bernoulli_pmf.png', dpi=200) plt.close() # 0-2之间均匀的取100个点 x = np.linspace(0, 2, 100) cdf = bernoulli_dist.cdf # 相当于取出来的100个随机变量的累积分布函数(cdf) plt.plot(x, cdf(x)) # 上述伯努利分布在区间[0, 2]上的cdf图像 # plt.show() plt.savefig('bernoulli_cdf.png', dpi=200) plt.close()
Example #12
Source File: test_distributions.py From numpyro with Apache License 2.0 | 5 votes |
def gen_values_outside_bounds(constraint, size, key=random.PRNGKey(11)): if isinstance(constraint, constraints._Boolean): return random.bernoulli(key, shape=size) - 2 elif isinstance(constraint, constraints._GreaterThan): return constraint.lower_bound - jnp.exp(random.normal(key, size)) elif isinstance(constraint, constraints._IntegerInterval): lower_bound = jnp.broadcast_to(constraint.lower_bound, size) return random.randint(key, size, lower_bound - 1, lower_bound) elif isinstance(constraint, constraints._IntegerGreaterThan): return constraint.lower_bound - random.poisson(key, np.array(5), shape=size) elif isinstance(constraint, constraints._Interval): upper_bound = jnp.broadcast_to(constraint.upper_bound, size) return random.uniform(key, size, minval=upper_bound, maxval=upper_bound + 1.) elif isinstance(constraint, (constraints._Real, constraints._RealVector)): return lax.full(size, jnp.nan) elif isinstance(constraint, constraints._Simplex): return osp.dirichlet.rvs(alpha=jnp.ones((size[-1],)), size=size[:-1]) + 1e-2 elif isinstance(constraint, constraints._Multinomial): n = size[-1] return multinomial(key, p=jnp.ones((n,)) / n, n=constraint.upper_bound, shape=size[:-1]) + 1 elif isinstance(constraint, constraints._CorrCholesky): return signed_stick_breaking_tril( random.uniform(key, size[:-2] + (size[-1] * (size[-1] - 1) // 2,), minval=-1, maxval=1)) + 1e-2 elif isinstance(constraint, constraints._CorrMatrix): cholesky = 1e-2 + signed_stick_breaking_tril( random.uniform(key, size[:-2] + (size[-1] * (size[-1] - 1) // 2,), minval=-1, maxval=1)) return jnp.matmul(cholesky, jnp.swapaxes(cholesky, -2, -1)) elif isinstance(constraint, constraints._LowerCholesky): return random.uniform(key, size) elif isinstance(constraint, constraints._PositiveDefinite): return random.normal(key, size) elif isinstance(constraint, constraints._OrderedVector): x = jnp.cumsum(random.exponential(key, size), -1) return x[..., ::-1] else: raise NotImplementedError('{} not implemented.'.format(constraint))
Example #13
Source File: test_distributions.py From numpyro with Apache License 2.0 | 5 votes |
def gen_values_within_bounds(constraint, size, key=random.PRNGKey(11)): eps = 1e-6 if isinstance(constraint, constraints._Boolean): return random.bernoulli(key, shape=size) elif isinstance(constraint, constraints._GreaterThan): return jnp.exp(random.normal(key, size)) + constraint.lower_bound + eps elif isinstance(constraint, constraints._IntegerInterval): lower_bound = jnp.broadcast_to(constraint.lower_bound, size) upper_bound = jnp.broadcast_to(constraint.upper_bound, size) return random.randint(key, size, lower_bound, upper_bound + 1) elif isinstance(constraint, constraints._IntegerGreaterThan): return constraint.lower_bound + random.poisson(key, np.array(5), shape=size) elif isinstance(constraint, constraints._Interval): lower_bound = jnp.broadcast_to(constraint.lower_bound, size) upper_bound = jnp.broadcast_to(constraint.upper_bound, size) return random.uniform(key, size, minval=lower_bound, maxval=upper_bound) elif isinstance(constraint, (constraints._Real, constraints._RealVector)): return random.normal(key, size) elif isinstance(constraint, constraints._Simplex): return osp.dirichlet.rvs(alpha=jnp.ones((size[-1],)), size=size[:-1]) elif isinstance(constraint, constraints._Multinomial): n = size[-1] return multinomial(key, p=jnp.ones((n,)) / n, n=constraint.upper_bound, shape=size[:-1]) elif isinstance(constraint, constraints._CorrCholesky): return signed_stick_breaking_tril( random.uniform(key, size[:-2] + (size[-1] * (size[-1] - 1) // 2,), minval=-1, maxval=1)) elif isinstance(constraint, constraints._CorrMatrix): cholesky = signed_stick_breaking_tril( random.uniform(key, size[:-2] + (size[-1] * (size[-1] - 1) // 2,), minval=-1, maxval=1)) return jnp.matmul(cholesky, jnp.swapaxes(cholesky, -2, -1)) elif isinstance(constraint, constraints._LowerCholesky): return jnp.tril(random.uniform(key, size)) elif isinstance(constraint, constraints._PositiveDefinite): x = random.normal(key, size) return jnp.matmul(x, jnp.swapaxes(x, -2, -1)) elif isinstance(constraint, constraints._OrderedVector): x = jnp.cumsum(random.exponential(key, size), -1) return x - random.normal(key, size[:-1]) else: raise NotImplementedError('{} not implemented.'.format(constraint))
Example #14
Source File: test_estimation.py From grove with Apache License 2.0 | 5 votes |
def test_get_parity(): """ Check if our way to compute parity is correct """ single_qubit_results = [[0]] * 50 + [[1]] * 50 single_qubit_parity_results = list(map(lambda x: -2 * x[0] + 1, single_qubit_results)) # just making sure I constructed my test properly assert np.allclose(np.array([1] * 50 + [-1] * 50), single_qubit_parity_results) test_results = get_parity([sZ(5)], single_qubit_results) assert np.allclose(single_qubit_parity_results, test_results[0, :]) np.random.seed(87655678) brv1 = bernoulli(p=0.25) brv2 = bernoulli(p=0.4) n = 500 two_qubit_measurements = list(zip(brv1.rvs(size=n), brv2.rvs(size=n))) pauli_terms = [sZ(0), sZ(1), sZ(0) * sZ(1)] parity_results = np.zeros((len(pauli_terms), n)) parity_results[0, :] = [-2 * x[0] + 1 for x in two_qubit_measurements] parity_results[1, :] = [-2 * x[1] + 1 for x in two_qubit_measurements] parity_results[2, :] = [-2 * (sum(x) % 2) + 1 for x in two_qubit_measurements] test_parity_results = get_parity(pauli_terms, two_qubit_measurements) assert np.allclose(test_parity_results, parity_results)
Example #15
Source File: test_distributions.py From Computable with MIT License | 5 votes |
def test_rvs(self): vals = stats.bernoulli.rvs(0.75, size=(2, 50)) assert_(numpy.all(vals >= 0) & numpy.all(vals <= 1)) assert_(numpy.shape(vals) == (2, 50)) assert_(vals.dtype.char in typecodes['AllInteger']) val = stats.bernoulli.rvs(0.75) assert_(isinstance(val, int)) val = stats.bernoulli(0.75).rvs(3) assert_(isinstance(val, numpy.ndarray)) assert_(val.dtype.char in typecodes['AllInteger'])
Example #16
Source File: test_distributions.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_entropy(self): # Simple tests of entropy. b = stats.bernoulli(0.25) expected_h = -0.25*np.log(0.25) - 0.75*np.log(0.75) h = b.entropy() assert_allclose(h, expected_h) b = stats.bernoulli(0.0) h = b.entropy() assert_equal(h, 0.0) b = stats.bernoulli(1.0) h = b.entropy() assert_equal(h, 0.0)
Example #17
Source File: test_distributions.py From GraphicDesignPatternByPython with MIT License | 5 votes |
def test_rvs(self): vals = stats.bernoulli.rvs(0.75, size=(2, 50)) assert_(numpy.all(vals >= 0) & numpy.all(vals <= 1)) assert_(numpy.shape(vals) == (2, 50)) assert_(vals.dtype.char in typecodes['AllInteger']) val = stats.bernoulli.rvs(0.75) assert_(isinstance(val, int)) val = stats.bernoulli(0.75).rvs(3) assert_(isinstance(val, numpy.ndarray)) assert_(val.dtype.char in typecodes['AllInteger'])
Example #18
Source File: test_bernoulli.py From chainer with MIT License | 5 votes |
def test_backward_where_logit_has_infinite_values(self): self.logit[...] = numpy.inf with numpy.errstate(invalid='ignore'): log_prob = distributions.bernoulli._bernoulli_log_prob( self.logit, self.x) # just confirm that the backward method runs without raising error. log_prob.backward()
Example #19
Source File: test_bernoulli.py From chainer with MIT License | 5 votes |
def check_double_backward(self, logit_data, x_data, y_grad, x_grad_grad): def f(logit): return distributions.bernoulli._bernoulli_log_prob( logit, x_data) gradient_check.check_double_backward( f, logit_data, y_grad, x_grad_grad, dtype=numpy.float64, **self.backward_options)
Example #20
Source File: test_bernoulli.py From chainer with MIT License | 5 votes |
def check_backward(self, logit_data, x_data, y_grad): def f(logit): return distributions.bernoulli._bernoulli_log_prob( logit, x_data) gradient_check.check_backward( f, logit_data, y_grad, **self.backward_options)
Example #21
Source File: test_bernoulli.py From chainer with MIT License | 5 votes |
def check_forward(self, logit_data, x_data): distributions.bernoulli._bernoulli_log_prob(logit_data, x_data)
Example #22
Source File: test_search.py From Mastering-Elasticsearch-7.0 with MIT License | 5 votes |
def test_parameters_sampler_replacement(): # raise warning if n_iter is bigger than total parameter space params = {'first': [0, 1], 'second': ['a', 'b', 'c']} sampler = ParameterSampler(params, n_iter=7) n_iter = 7 grid_size = 6 expected_warning = ('The total space of parameters %d is smaller ' 'than n_iter=%d. Running %d iterations. For ' 'exhaustive searches, use GridSearchCV.' % (grid_size, n_iter, grid_size)) assert_warns_message(UserWarning, expected_warning, list, sampler) # degenerates to GridSearchCV if n_iter the same as grid_size sampler = ParameterSampler(params, n_iter=6) samples = list(sampler) assert_equal(len(samples), 6) for values in ParameterGrid(params): assert values in samples # test sampling without replacement in a large grid params = {'a': range(10), 'b': range(10), 'c': range(10)} sampler = ParameterSampler(params, n_iter=99, random_state=42) samples = list(sampler) assert_equal(len(samples), 99) hashable_samples = ["a%db%dc%d" % (p['a'], p['b'], p['c']) for p in samples] assert_equal(len(set(hashable_samples)), 99) # doesn't go into infinite loops params_distribution = {'first': bernoulli(.5), 'second': ['a', 'b', 'c']} sampler = ParameterSampler(params_distribution, n_iter=7) samples = list(sampler) assert_equal(len(samples), 7)
Example #23
Source File: test_distributions.py From Computable with MIT License | 5 votes |
def test_docstrings(self): # See ticket #761 if stats.rayleigh.__doc__ is not None: self.assertTrue("rayleigh" in stats.rayleigh.__doc__.lower()) if stats.bernoulli.__doc__ is not None: self.assertTrue("bernoulli" in stats.bernoulli.__doc__.lower())
Example #24
Source File: test_distributions.py From Computable with MIT License | 5 votes |
def test_entropy(self): # Simple tests of entropy. b = stats.bernoulli(0.25) expected_h = -0.25*np.log(0.25) - 0.75*np.log(0.75) h = b.entropy() assert_allclose(h, expected_h) b = stats.bernoulli(0.0) h = b.entropy() assert_equal(h, 0.0) b = stats.bernoulli(1.0) h = b.entropy() assert_equal(h, 0.0)