16 using namespace shogun;
28 for ( int32_t i = 0 ; i < m_num_states-1 ; ++i )
52 for ( int32_t i = 0 ; i < loss_mat.
num_cols ; ++i )
54 for ( int32_t s = 0 ; s < loss_mat.
num_rows ; ++s )
69 for ( int32_t i = 0 ; i < state_seq_lhs.
vlen ; ++i )
84 for ( int32_t i = 1 ; i < state_seq.vlen-1 ; ++i )
87 state_seq[i] = seq_data[i] + 2;
93 state_seq[state_seq.vlen-1] = 1;
109 for ( int32_t i = 0 ; i < state_seq.
vlen ; ++i )
111 if ( state_seq[i] == 3 )
123 emission_weights.
zero();
136 for ( int32_t f = 0 ; f < num_feats ; ++f )
138 for ( int32_t o = 0 ; o < num_obs ; ++o )
140 em_idx = s*num_feats*num_obs + f*num_obs + o;
141 emission_weights[em_idx] = w[w_idx++];
154 for ( int32_t f = 0 ; f < num_feats ; ++f )
159 for ( int32_t i = 0 ; i < num_plif_nodes ; ++i )
160 penalties[p_idx++] = w[w_idx++];
181 transmission_weights(0,2) = 0;
182 transmission_weights(0,3) = 0;
184 transmission_weights(2,1) = 0;
185 transmission_weights(2,2) = w[0];
186 transmission_weights(2,3) = w[1];
188 transmission_weights(3,1) = 0;
189 transmission_weights(3,2) = w[3];
190 transmission_weights(3,3) = w[2];
196 int32_t num_feats, int32_t num_obs)
const
203 psi[0] = transmission_weights(2,2);
204 psi[1] = transmission_weights(2,3);
205 psi[2] = transmission_weights(3,3);
206 psi[3] = transmission_weights(3,2);
212 for ( int32_t f = 0 ; f < num_feats ; ++f )
214 for ( int32_t o = 0 ; o < num_obs ; ++o )
216 obs_idx = s*num_feats*num_obs + f*num_obs + o;
217 psi[psi_idx++] = emission_weights[obs_idx];
227 int32_t num_free_states = 2;
230 weights_to_vector(vec, transmission_weights, emission_weights, num_feats, num_obs);
235 int32_t num_feats)
const
237 REQUIRE(num_free_states == 2,
"Using the TwoStateModel only two states are free\n")
241 for ( int32_t i = 0 ; i < num_feats ; ++i )
242 monotonicity[i] = -1;
243 for ( int32_t i = num_feats ; i < 2*num_feats ; ++i )
244 monotonicity[i] = +1;
250 int32_t num_features, int32_t num_noise_features)
253 int32_t num_states = 2;
255 int32_t block_len[] = {10, 100};
257 int32_t num_blocks[] = {0, 3};
273 for ( int32_t i = 0 ; i < num_exm ; ++i)
277 rnb = num_blocks[0] +
CMath::ceil((num_blocks[1]-num_blocks[0])*
280 for ( int32_t j = 0 ; j < rnb ; ++j )
282 rl = block_len[0] +
CMath::ceil((block_len[1]-block_len[0])*
286 for ( int32_t idx = rp-1 ; idx < rp+rl ; ++idx )
289 ll[i*exm_len + idx] = 1;
307 for ( int32_t i = 0 ; i < num_features ; ++i )
312 for ( int32_t j = 0 ; j < d1.
vlen ; ++j )
315 for ( int32_t j = 0 ; j < d2.
vlen ; ++j )
316 d2[j] = distort[ distort.
vlen-d2.
vlen+j ];
318 for ( int32_t j = 0 ; j < d1.
vlen ; ++j )
319 lf[ d1[j] ] = lf[ d2[j] ];
322 for ( int32_t j = 0 ; j < signal.
num_cols ; ++j )
329 for ( int32_t i = 0 ; i < num_noise_features ; ++i )
332 for ( int32_t j = 0 ; j < signal.
num_cols ; ++j )
340 bool use_plifs =
true;