V
- Vector type.@Reference(authors="Y. Cheng, G. M. Church", title="Biclustering of expression data", booktitle="Proc. 8th Int. Conf. on Intelligent Systems for Molecular Biology (ISMB)", url="http://www.aaai.org/Library/ISMB/2000/ismb00-010.php", bibkey="DBLP:conf/ismb/ChengC00") public class ChengAndChurch<V extends NumberVector> extends AbstractBiclustering<V,BiclusterWithInversionsModel>
Reference:
Y. Cheng and G. M. Church.
Biclustering of expression data.
Proc. 8th Int. Conf. on Intelligent Systems for Molecular Biology (ISMB)
Modifier and Type | Class and Description |
---|---|
protected static class |
ChengAndChurch.BiclusterCandidate
Bicluster candidate.
|
protected static interface |
ChengAndChurch.CellVisitor
Visitor pattern for processing cells.
|
static class |
ChengAndChurch.Parameterizer<V extends NumberVector>
Parameterization class.
|
Modifier and Type | Field and Description |
---|---|
private double |
alpha
The parameter for multiple node deletion.
|
private double |
delta
Threshold for the score.
|
private Distribution |
dist
Distribution to sample random replacement values from.
|
private static Logging |
LOG
The logger for this class.
|
private static int |
MIN_COLUMN_REMOVE_THRESHOLD
The minimum number of columns that the database must have so that a removal
of columns is performed in
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate) . |
private static int |
MIN_ROW_REMOVE_THRESHOLD
The minimum number of rows that the database must have so that a removal of
rows is performed in
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate) . |
private int |
n
Number of biclusters to be found.
|
private boolean |
useinverted
Allow inversion of rows in the last phase.
|
relation, rowIDs
ALGORITHM_ID
Constructor and Description |
---|
ChengAndChurch(double delta,
double alpha,
int n,
Distribution dist)
Constructor.
|
Modifier and Type | Method and Description |
---|---|
Clustering<BiclusterWithInversionsModel> |
biclustering()
Run the actual biclustering algorithm.
|
TypeInformation[] |
getInputTypeRestriction()
Get the input type restriction used for negotiating the data query.
|
protected Logging |
getLogger()
Get the (STATIC) logger for this class.
|
private void |
multipleNodeDeletion(double[][] mat,
ChengAndChurch.BiclusterCandidate cand)
Algorithm 2 of Cheng and Church.
|
private void |
nodeAddition(double[][] mat,
ChengAndChurch.BiclusterCandidate cand)
Algorithm 3 of Cheng and Church.
|
private void |
singleNodeDeletion(double[][] mat,
ChengAndChurch.BiclusterCandidate cand)
Algorithm 1 of Cheng and Church:
Remove single rows or columns.
|
colsBitsetToIDs, colsBitsetToIDs, defineBicluster, defineBicluster, getColDim, getDatabase, getRelation, getRowDBID, getRowDim, rowsBitsetToIDs, rowsBitsetToIDs, run, valueAt
run
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
run
private static final Logging LOG
private static final int MIN_COLUMN_REMOVE_THRESHOLD
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.
Just start deleting multiple columns when more than 100 columns are in the data matrix.
private static final int MIN_ROW_REMOVE_THRESHOLD
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
.
Just start deleting multiple rows when more than 100 rows are in the data matrix.
private double delta
private double alpha
It is used to magnify the delta
value in the
multipleNodeDeletion(double[][], de.lmu.ifi.dbs.elki.algorithm.clustering.biclustering.ChengAndChurch.BiclusterCandidate)
method.
private int n
private boolean useinverted
private Distribution dist
public ChengAndChurch(double delta, double alpha, int n, Distribution dist)
delta
- Delta parameter: desired qualityalpha
- Alpha parameter: controls switching to single node deletion
approachn
- Number of clusters to detectdist
- Distribution of random values to insertpublic Clustering<BiclusterWithInversionsModel> biclustering()
AbstractBiclustering
This method is supposed to be called only from the method AbstractBiclustering.run(de.lmu.ifi.dbs.elki.database.relation.Relation<V>)
.
biclustering
in class AbstractBiclustering<V extends NumberVector,BiclusterWithInversionsModel>
private void singleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Remove single rows or columns.
Inverted rows are not supported in this method.
mat
- Data matrixcand
- Bicluster candidateprivate void multipleNodeDeletion(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Remove all rows and columns that reduce the residue by alpha.
Inverted rows are not supported in this method.
mat
- Data matrixcand
- Bicluster candidateprivate void nodeAddition(double[][] mat, ChengAndChurch.BiclusterCandidate cand)
Try to re-add rows or columns that decrease the overall score.
Also try adding inverted rows.
mat
- Data matrixcand
- Bicluster candidatepublic TypeInformation[] getInputTypeRestriction()
AbstractAlgorithm
getInputTypeRestriction
in interface Algorithm
getInputTypeRestriction
in class AbstractAlgorithm<Clustering<BiclusterWithInversionsModel>>
protected Logging getLogger()
AbstractAlgorithm
getLogger
in class AbstractAlgorithm<Clustering<BiclusterWithInversionsModel>>
Copyright © 2019 ELKI Development Team. License information.