def get_grid(self, max_size=2048):
import itertools
possible_combos = self.get_combinations_size()
#print "possible combos:",possible_combos
assert possible_combos > 0
num_columns = int(np.log2(possible_combos))
if possible_combos > max_size:
# Grid too large so sample instead
combo_grid = np.random.binomial(1, 0.5, (max_size, num_columns))
else:
# Get entire grid
combo_grid = list(itertools.product([0, 1], repeat=num_columns))
assert len(combo_grid) == possible_combos
combo_grid = np.array(combo_grid)
# Scale the grid
cat_mask = ~self.get_numerical_mask()
X_scaler_cat = copy.deepcopy(self.scaler_)
X_scaler_cat.mean_ = X_scaler_cat.mean_[cat_mask]
X_scaler_cat.scale_ = X_scaler_cat.scale_[cat_mask]
X_scaler_cat.var_ = X_scaler_cat.var_[cat_mask]
combo_grid = X_scaler_cat.transform(combo_grid)
return combo_grid
评论列表
文章目录