def __init__(self, f_weight, pars_w, f_dens, pars_d): """The interpolator container. It is the minimum container for interpolation tasks. Parameters ---------- f_weight: function the function which defines the weights from distances. pars_w: dict the parameters of the weights definition from distances. f_dens: function the function definition of the density assignation kernel. pars_d: dict the parameters for assigning the kernel. """ characterizer = create_weighted_function(f_weight, pars_w, f_dens, pars_d) ## Specific class settings self.compute = characterizer ## Initial function set self._out_formatter = null_out_formatter self._f_default_names = array_featurenames self._defult_add2result = sum_addresult_function self._assert_correctness()
def test(): n = 100 locs = np.random.random((n, 2))*100 locs1 = random_transformed_space_points(n/10, 2, None)*100 feats0 = np.random.random((n/10, 4)) feats1 = np.random.random(n/10) kneighs4 = np.ones(len(locs)).astype(int)*4 ret = KRetriever(locs1, 4, ifdistance=True) ret1 = KRetriever(locs1, ifdistance=True) f_dens0, f_dens1, f_dens2 = 'weighted_count', 'weighted_avg', 'null' pars_d = {} f_weights = ['null', 'linear', 'Trapezoid', 'inverse_prop', 'inverse_prop', 'exponential', 'exponential', 'gaussian', 'gaussian', 'surgaussian', 'surgaussian', 'surgaussian', 'sigmoid', 'sigmoid'] pars_w1 = {'max_r': 0.2, 'max_w': 1, 'min_w': 0} pars_w2 = {'max_r': 0.2, 'r2': 0.4, 'max_w': 1, 'min_w': 0} pars_w3 = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-8, 'rescale': True} pars_w3b = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-8, 'rescale': False} pars_w5 = {'max_r': 0.2, 'max_w': 1, 'min_w': 0, 'S': None, 'rescale': True} pars_w5b = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-3, 'S': None, 'rescale': False} pars_w6 = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-3, 'S': 0.5, 'rescale': True} pars_w7 = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-3, 'r_char': 0, 'B': None, 'rescale': True} pars_w7b = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-3, 'r_char': 0, 'B': 2, 'rescale': False} pars_w = [{}, pars_w1, pars_w2, pars_w3, pars_w3b, pars_w3, pars_w3b, pars_w5, pars_w5b, pars_w5, pars_w5b, pars_w6, pars_w7, pars_w7b] values, dists = np.random.random((10, 4)), np.random.random(10) pars_now = {'max_r': 0.2, 'max_w': 1, 'min_w': 1e-3, 'r_char': 0} set_scales_kernel('surgaussian', **pars_now) set_scales_kernel('gaussian', **pars_now) set_scales_kernel('sigmoid', **pars_now) for i in range(len(f_weights)): f = create_weighted_function(f_weights[i], pars_w[i], f_dens0, pars_d) f(values, dists) f = create_weighted_function(f_weights[i], pars_w[i], f_dens1, pars_d) f(values, dists) f = create_weighted_function(f_weights[i], pars_w[i], characterizer_summer, pars_d) f(values, dists) M = general_density_assignation(locs, ret, kneighs4, feats0, f_weights[1], pars_w[1], f_dens1, pars_d) M = general_density_assignation(locs, ret, kneighs4, feats1, f_weights[1], pars_w[1], f_dens1, pars_d) M = general_density_assignation(locs, ret1, kneighs4, feats1, f_weights[1], pars_w[1], f_dens1, pars_d) M = general_density_assignation(locs, ret1, kneighs4, feats1, f_weights[1], pars_w[1], f_dens0, pars_d) interpolator = Interpolator(f_weights[1], pars_w[1], f_dens1, pars_d) ########################################################################### ########################################################################### #### Density assignation testing ################################ logfile = Logger('logfile.log') pars_dens_asign = {'f_weights': f_weights[1], 'params_w': pars_w[1], 'f_dens': f_dens1, 'params_d': pars_d} locs_data = locs pop_data = feats1 retriever = KRetriever dens_asign = DensityAssign_Process(logfile, retriever) dens_asign.compute_density(locs1, locs_data, pop_data, kneighs4, pars_dens_asign) os.remove('logfile.log') ########################################################################### ########################################################################### #### Interpolation utils testing ################################ density0 = np.random.random(50)*2 density1 = np.random.random(50)*2 clustering_by_comparison(density0, density1)