def run(self, data):
"""Compute biclustering.
Parameters
----------
data : numpy.ndarray
"""
data = check_array(data, dtype=np.double, copy=True)
self._validate_parameters()
data = scale(data)
if self.transform:
data = np.sign(data) * np.log(1 + np.abs(data))
data = scale(data)
biclusters = []
for i in range(self.num_biclusters):
best, avg, score = max((self._find_bicluster(data) for i in range(self.randomized_searches)), key=itemgetter(-1))
if score < self.score_threshold:
break
data[np.ix_(best.rows, best.cols)] -= avg
biclusters.append(best)
return Biclustering(biclusters)
评论列表
文章目录