本文整理汇总了Python中msmbuilder.MSMLib.estimate_transition_matrix方法的典型用法代码示例。如果您正苦于以下问题:Python MSMLib.estimate_transition_matrix方法的具体用法?Python MSMLib.estimate_transition_matrix怎么用?Python MSMLib.estimate_transition_matrix使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类msmbuilder.MSMLib
的用法示例。
在下文中一共展示了MSMLib.estimate_transition_matrix方法的4个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: test_estimate_rate_matrix_2
# 需要导入模块: from msmbuilder import MSMLib [as 别名]
# 或者: from msmbuilder.MSMLib import estimate_transition_matrix [as 别名]
def test_estimate_rate_matrix_2():
np.random.seed(42)
counts_dense = np.random.randint(100, size=(4, 4))
counts_sparse = scipy.sparse.csr_matrix(counts_dense)
t_mat_dense = MSMLib.estimate_transition_matrix(counts_dense)
t_mat_sparse = MSMLib.estimate_transition_matrix(counts_sparse)
correct = np.array([[0.22368421, 0.40350877, 0.06140351, 0.31140351],
[0.24193548, 0.08064516, 0.33064516, 0.34677419],
[0.22155689, 0.22155689, 0.26047904, 0.29640719],
[0.23469388, 0.02040816, 0.21428571, 0.53061224]])
eq(t_mat_dense, correct)
eq(t_mat_dense, np.array(t_mat_sparse.todense()))
示例2: test_estimate_transition_matrix_1
# 需要导入模块: from msmbuilder import MSMLib [as 别名]
# 或者: from msmbuilder.MSMLib import estimate_transition_matrix [as 别名]
def test_estimate_transition_matrix_1():
np.random.seed(42)
count_matrix = np.array([[6, 3, 7], [4, 6, 9], [2, 6, 7]])
t = MSMLib.estimate_transition_matrix(count_matrix)
eq(t, np.array([[0.375, 0.1875, 0.4375],
[0.21052632, 0.31578947, 0.47368421],
[0.13333333, 0.4, 0.46666667]]))
示例3: __init__
# 需要导入模块: from msmbuilder import MSMLib [as 别名]
# 或者: from msmbuilder.MSMLib import estimate_transition_matrix [as 别名]
def __init__(self):
self.epsilon = 1E-7
self.alpha = 0.001 # Confidence for uncertainty estimate
# Testing is stochastic; we expect errors 0.1 % of the time.
self.max_lag = 100
self.times = np.arange(self.max_lag)
self.num_steps = 100000
self.C = np.array([[500, 2], [2, 50]])
self.T = MSMLib.estimate_transition_matrix(self.C)
self.state_traj = np.array(msm_analysis.sample(self.T, 0, self.num_steps))
示例4: _run_trial
# 需要导入模块: from msmbuilder import MSMLib [as 别名]
# 或者: from msmbuilder.MSMLib import estimate_transition_matrix [as 别名]
def _run_trial(arg_dict):
# inject the arg_dict into the local namespace - may be a bad idea...
for key in arg_dict.keys():
exec(key + " = arg_dict['" + key + "']")
# initialize data structures to hold output
distance_to_target = np.zeros(rounds_of_sampling)
obs_distance = np.zeros(rounds_of_sampling)
# the assignments array will hold all of the output of all simulations
assignments = -1.0 * np.ones((rounds_of_sampling * simultaneous_samplers + 1,
max(size_of_intial_data, length_of_sampling_trajs+1) ))
# initialize the "true" transition matrix
if not transition_matrix:
assert num_states > 0
C_rand = np.random.randint( 0, 100, (num_states, num_states) )
C_rand += C_rand.T
T = MSMLib.estimate_transition_matrix( C_rand )
else:
T = transition_matrix
num_states = T.shape[0]
T = sparse.csr_matrix(T)
msm_analysis.check_transition(T)
if observable_function:
try:
obs_goal = observable_function(T)
except Exception as e:
print >> sys.stderr, e
raise Exception("Error evaluating function: %s" % observable_function.__name__)
assignments[0,:size_of_intial_data] = msm_analysis.sample(T, None, size_of_intial_data)
# iterate, adding simulation time
for sampling_round in range(rounds_of_sampling):
# apply the adaptive sampling method - we need to be true to what a
# real simulation would actually see for the counts matrix
mod_assignments = assignments.copy()
mapping = MSMLib.renumber_states( mod_assignments )
C_mod = MSMLib.get_count_matrix_from_assignments( mod_assignments )
T_mod = MSMLib.estimate_transition_matrix(C_mod)
adaptive_sampling_multivariate = SamplerObject.sample(C_mod)
# choose the states to sample from (in the original indexing)
state_inds = np.arange(len(adaptive_sampling_multivariate))
sampler = stats.rv_discrete(name='sampler',
values=[state_inds, adaptive_sampling_multivariate])
starting_states = sampler.rvs( size=simultaneous_samplers )
starting_states = mapping[starting_states]
# start new 'simulations' in each of those states
for i,init_state in enumerate(starting_states):
a_ind = sampling_round * simultaneous_samplers + i + 1
s_ind = length_of_sampling_trajs + 1
assignments[a_ind,:s_ind] = msm_analysis.sample(T, init_state, s_ind)
# build a new MSM from all the simulation so far
C_raw = MSMLib.get_count_matrix_from_assignments( assignments, n_states=num_states )
C_raw = C_raw + C_raw.T # might want to add trimming, etc.
T_pred = MSMLib.estimate_transition_matrix(C_raw)
# calculate the error between the real transition matrix and our best prediction
assert T.shape == T_pred.shape
distance_to_target[sampling_round] = np.sqrt( ((T_pred - T).data ** 2).sum() ) \
/ float(num_states)
if observable_function:
obs_distance[sampling_round] = np.abs(observable_function(T_mod) - obs_goal)
return distance_to_target, obs_distance