def parameter_distance(params, dist_metric='canberra', scale='minmax', return_scaled=False):
"""
Computes distances between subjects' respective parameter estimates
Parameters
----------
params : ndarray(shape=(nsubjects, nsubjects))
Array of parameter estimates
dist_metric : str (default='canberra')
Distance metric to be used. Can take any value acceptable by ``sklearn.metrics.pairwise_distances``.
scale : {'minmax', 'standard', 'none'}
How to scale the parameters for distance computation
return_scaled : bool
Whether to return scaled parameters
"""
if scale != 'none':
if scale == 'minmax':
scaler = MinMaxScaler()
if scale == 'standard':
scaler = StandardScaler()
nparams = np.shape(params)[1]
for j in range(nparams):
scaledparam = scaler.fit_transform(params[:, j].reshape(-1, 1))
params[:, j] = scaledparam.flatten()
if return_scaled is True:
D = (pairwise_distances(params, metric=dist_metric), params)
else:
D = pairwise_distances(params, metric=dist_metric)
return D
评论列表
文章目录