def cinter_DTW_features(pcg, transitions, templates='random_templates', pre=None, constraint='sakoe_chiba', k=0.1, suf=None, sigma=None):
k = float(k)
if sigma is not None:
sigma = float(sigma)
templates = custom_loadmat(TEMPLATE_FOLDER + templates)
inter_DTW_features.names = ["%s_d%02d" % (q, i) for q in ['mean', 'std'] for i, _ in enumerate(templates)]
pcg = dtw_preprocess(pcg, pre=pre)
distances = []
for interval in ['RR', 'S1', 'Sys', 'S2', 'Dia']:
templates_i = templates[interval]
intervals = get_intervals(pcg, transitions, interval=interval, resize=ALENGTH[interval] // interDTW_down)
intervals = [resample(i, ALENGTH[interval] // interDTW_down) for i in intervals][:50]
dist_matrix = dtw_distances(intervals, templates_i, n_jobs=-1, constraint=constraint, k=k)
dist_matrix = finite_matrix(dist_matrix)
if sigma:
dist_matrix = -affinity(dist_matrix, sigma)
distances.append(dist_matrix)
RR_mean, S1_mean, Sys_mean, S2_mean, Dia_mean = [np.mean(d) for d in distances]
RR_std, S1_std, Sys_std, S2_std, Dia_std = [np.std(d) for d in distances]
features = [RR_mean, S1_mean, Sys_mean, S2_mean, Dia_mean, RR_std, S1_std, Sys_std, S2_std, Dia_std]
return features
评论列表
文章目录