15 using namespace shogun;
27 for ( int32_t i = 0 ; i < m_num_states-1 ; ++i )
51 for ( int32_t i = 0 ; i < loss_mat.
num_cols ; ++i )
53 for ( int32_t s = 0 ; s < loss_mat.
num_rows ; ++s )
68 for ( int32_t i = 0 ; i < state_seq_lhs.
vlen ; ++i )
83 for ( int32_t i = 1 ; i < state_seq.vlen-1 ; ++i )
86 state_seq[i] = seq_data[i] + 2;
92 state_seq[state_seq.vlen-1] = 1;
108 for ( int32_t i = 0 ; i < state_seq.
vlen ; ++i )
110 if ( state_seq[i] == 3 )
122 emission_weights.
zero();
135 for ( int32_t f = 0 ; f < num_feats ; ++f )
137 for ( int32_t o = 0 ; o < num_obs ; ++o )
139 em_idx = s*num_feats*num_obs + f*num_obs + o;
140 emission_weights[em_idx] = w[w_idx++];
158 transmission_weights(0,2) = 0;
159 transmission_weights(0,3) = 0;
161 transmission_weights(2,1) = 0;
162 transmission_weights(2,2) = w[0];
163 transmission_weights(2,3) = w[1];
165 transmission_weights(3,1) = 0;
166 transmission_weights(3,2) = w[3];
167 transmission_weights(3,3) = w[2];
173 int32_t num_feats, int32_t num_obs)
const
180 psi[0] = transmission_weights(2,2);
181 psi[1] = transmission_weights(2,3);
182 psi[2] = transmission_weights(3,3);
183 psi[3] = transmission_weights(3,2);
189 for ( int32_t f = 0 ; f < num_feats ; ++f )
191 for ( int32_t o = 0 ; o < num_obs ; ++o )
193 obs_idx = s*num_feats*num_obs + f*num_obs + o;
194 psi[psi_idx++] = emission_weights[obs_idx];
202 int32_t num_feats)
const
204 REQUIRE(num_free_states == 2,
"Using the TwoStateModel only two states are free\n");
208 for ( int32_t i = 0 ; i < num_feats ; ++i )
209 monotonicity[i] = -1;
210 for ( int32_t i = num_feats ; i < 2*num_feats ; ++i )
211 monotonicity[i] = +1;
219 int32_t num_exm = 1000;
221 int32_t exm_len = 250;
223 int32_t num_states = 2;
225 int32_t num_features = 10;
227 int32_t num_noise_features = 2;
229 int32_t block_len[] = {10, 100};
231 int32_t num_blocks[] = {0, 3};
247 for ( int32_t i = 0 ; i < num_exm ; ++i)
251 rnb = num_blocks[0] +
CMath::ceil((num_blocks[1]-num_blocks[0])*
254 for ( int32_t j = 0 ; j < rnb ; ++j )
256 rl = block_len[0] +
CMath::ceil((block_len[1]-block_len[0])*
260 for ( int32_t idx = rp-1 ; idx < rp+rl ; ++idx )
263 ll[i*exm_len + idx] = 1;
281 for ( int32_t i = 0 ; i < num_features ; ++i )
286 for ( int32_t j = 0 ; j < d1.
vlen ; ++j )
289 for ( int32_t j = 0 ; j < d2.
vlen ; ++j )
290 d2[j] = distort[ distort.
vlen-d2.
vlen+j ];
292 for ( int32_t j = 0 ; j < d1.
vlen ; ++j )
293 lf[ d1[j] ] = lf[ d2[j] ];
296 for ( int32_t j = 0 ; j < signal.
num_cols ; ++j )
303 for ( int32_t i = 0 ; i < num_noise_features ; ++i )
306 for ( int32_t j = 0 ; j < signal.
num_cols ; ++j )