コード例 #1
0
from electromorpho.core.gaussian import sample_from_gn, to_mvn

seeds = list(range(101, 200))
rng = RandomState()
variables = list(range(5))

gen_mean = np.zeros(len(variables))
gen_var = np.zeros(len(variables)) + 0.2
gen_weight = 2

diff_norm_mean = 0
diff_norm_cov = 0

for i, s in enumerate(seeds):
    print('Test {0}/{1}'.format(i + 1, len(seeds)))
    graph = random_dag(variables, rng=rng)

    beta = graph.T * gen_weight

    mvn = to_mvn(gen_mean, gen_var, beta, return_mvn=True)

    n_samples = 200
    sample_seed = rng.randint(0, 2**32 - 1)

    data_gn = sample_from_gn(graph, gen_mean, gen_var, beta, n_samples,
                             sample_seed)
    data_mvn = mvn.rvs(n_samples, sample_seed)

    mean_gn = np.mean(data_gn, axis=0)
    mean_mvn = np.mean(data_mvn, axis=0)
コード例 #2
0
from electromorpho.mcmc.graphs.checks import check_consistency
from electromorpho.mcmc.graphs.proposal import get_parent_set_distributions, basic_move, rev_move

n_variables = 15
seeds = list(range(101, 200))
rng = RandomState(19023)
variables = list(range(n_variables))
n_samples = 200

# Data generation parameters
gen_mean = np.zeros(n_variables)
gen_var = np.zeros(n_variables) + 0.2
gen_weight = 2

# Generate some data form a GN
graph = random_dag(variables, rng=rng)
beta = graph.A.T * gen_weight

sample_seed = rng.randint(0, 2**32 - 1)
data_gn = sample_from_gn(graph, gen_mean, gen_var, beta, n_samples,
                         sample_seed)

# Fit the score and create the parent set distributions
fan_in = 5

bge = BGe(data_gn)
ps_dist = get_parent_set_distributions(variables, fan_in, bge, rng=rng)

# Some random state to start
state = DAGState(random_dag(variables, fan_in, rng=rng))
コード例 #3
0
 def random_state(self):
     return DAGState(random_dag(list(range(self.n_variables_)), self.fan_in, self.rng), fan_in=self.fan_in)
コード例 #4
0
sns.set(color_codes=True)
SAVE = False

n_variables = 15
seeds = list(range(101, 200))
rng = RandomState(1802)
variables = list(range(n_variables))
n_samples = 200

# Data generation parameters
gen_mean = np.zeros(n_variables)
gen_var = np.zeros(n_variables) + 0.2
gen_weight = 2

# Generate some data form a GN
graph = random_dag(variables, rng=rng, fan_in=5)
beta = graph.A.T * gen_weight

sample_seed = rng.randint(0, 2**32 - 1)
data_gn = sample_from_gn(graph, gen_mean, gen_var, beta, n_samples,
                         sample_seed)

graph_score = BGe(data_gn)(graph)

print(
    'Graph created with {} variables. Dataset with {} samples. Graphs bge score = {:.2f}'
    .format(n_variables, n_samples, graph_score))

# plot_digraph(graph)

# Fit the score and create the parent set distributions