@@ -364,53 +364,7 @@ def apply(self, X):
364364 yield list (range (0 , len (X )))
365365
366366
367- class _MapperAlgorithm :
368-
369- def __init__ (
370- self ,
371- cover = None ,
372- clustering = None ,
373- failsafe = True ,
374- verbose = True ,
375- n_jobs = 1 ,
376- ):
377- self .cover = cover
378- self .clustering = clustering
379- self .failsafe = failsafe
380- self .verbose = verbose
381- self .n_jobs = n_jobs
382-
383- def fit (self , X , y = None ):
384- self .__cover = TrivialCover () if self .cover is None \
385- else self .cover
386- self .__clustering = TrivialClustering () if self .clustering is None \
387- else self .clustering
388- self .__verbose = self .verbose
389- self .__failsafe = self .failsafe
390- if self .__failsafe :
391- self .__clustering = FailSafeClustering (
392- clustering = self .__clustering ,
393- verbose = self .__verbose ,
394- )
395- self .__cover = clone (self .__cover )
396- self .__clustering = clone (self .__clustering )
397- self .__n_jobs = self .n_jobs
398- y = X if y is None else y
399- self .graph_ = mapper_graph (
400- X ,
401- y ,
402- self .__cover ,
403- self .__clustering ,
404- n_jobs = self .__n_jobs ,
405- )
406- return self
407-
408- def fit_transform (self , X , y ):
409- self .fit (X , y )
410- return self .graph_
411-
412-
413- class MapperAlgorithm (EstimatorMixin , _MapperAlgorithm , ParamsMixin ):
367+ class MapperAlgorithm (EstimatorMixin , ParamsMixin ):
414368 """
415369 A class for creating and analyzing Mapper graphs.
416370
@@ -458,13 +412,11 @@ def __init__(
458412 verbose = True ,
459413 n_jobs = 1 ,
460414 ):
461- super ().__init__ (
462- cover = cover ,
463- clustering = clustering ,
464- failsafe = failsafe ,
465- verbose = verbose ,
466- n_jobs = n_jobs ,
467- )
415+ self .cover = cover
416+ self .clustering = clustering
417+ self .failsafe = failsafe
418+ self .verbose = verbose
419+ self .n_jobs = n_jobs
468420
469421 def fit (self , X , y = None ):
470422 """
@@ -479,7 +431,31 @@ def fit(self, X, y=None):
479431 :type y: array-like of shape (n, k) or list-like of length n
480432 :return: The object itself.
481433 """
482- return super ().fit (X , y )
434+ X , y = self ._validate_X_y (X , y )
435+ self .__cover = TrivialCover () if self .cover is None \
436+ else self .cover
437+ self .__clustering = TrivialClustering () if self .clustering is None \
438+ else self .clustering
439+ self .__verbose = self .verbose
440+ self .__failsafe = self .failsafe
441+ if self .__failsafe :
442+ self .__clustering = FailSafeClustering (
443+ clustering = self .__clustering ,
444+ verbose = self .__verbose ,
445+ )
446+ self .__cover = clone (self .__cover )
447+ self .__clustering = clone (self .__clustering )
448+ self .__n_jobs = self .n_jobs
449+ y = X if y is None else y
450+ self .graph_ = mapper_graph (
451+ X ,
452+ y ,
453+ self .__cover ,
454+ self .__clustering ,
455+ n_jobs = self .__n_jobs ,
456+ )
457+ self ._set_n_features_in (X )
458+ return self
483459
484460 def fit_transform (self , X , y ):
485461 """
@@ -495,7 +471,8 @@ def fit_transform(self, X, y):
495471 :return: The Mapper graph.
496472 :rtype: :class:`networkx.Graph`
497473 """
498- return super ().fit_transform (X , y )
474+ self .fit (X , y )
475+ return self .graph_
499476
500477
501478class FailSafeClustering (ParamsMixin ):
0 commit comments