package de.lmu.ifi.dbs.elki.datasource.filter;
/*
This file is part of ELKI:
Environment for Developing KDD-Applications Supported by Index-Structures
Copyright (C) 2011
Ludwig-Maximilians-Universität München
Lehr- und Forschungseinheit für Datenbanksysteme
ELKI Development Team
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU Affero General Public License as published by
the Free Software Foundation, either version 3 of the License, or
(at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU Affero General Public License for more details.
You should have received a copy of the GNU Affero General Public License
along with this program. If not, see
* A RandomProjectionParser selects a subset of attributes randomly for * projection of a ParsingResult. *
* * The cardinality of the subset of attributes is specified as a parameter. * * * @author Arthur Zimek * @author Erich Schubert * * @param
* Key: -randomprojection.numberselected
*
* Default: 1
*
* Constraint: ≥1 *
*/ public static final OptionID NUMBER_SELECTED_ATTRIBUTES_ID = OptionID.getOrCreateOptionID("randomprojection.numberselected", "number of selected attributes"); /** * Holds the desired cardinality of the subset of attributes selected for * projection. */ protected int k; /** * Holds a random object. */ protected final Random random = new Random(); /** * Constructor. * * @param dim dimensionality */ public AbstractRandomFeatureSelectionFilter(int dim) { super(); this.k = dim; } @Override protected boolean prepareStart(SimpleTypeInformation