docstr: Fit method for clustering task
  
  :param train_data: data used for model training
  :return:
docstr_tok: ["Fit","method","for","clustering","task",":","param","train_data",":","data","used","for","model","training",":","return",":"]
code: def fit(self, train_data: InputData):
      """
      Fit method for clustering task
  
      :param train_data: data used for model training
      :return:
      """
  
      warnings.filterwarnings("ignore", category=RuntimeWarning)
      if self.params_for_fit:
          operation_implementation = self.operation_impl(
              **self.params_for_fit.to_dict()
          )
      else:
          operation_implementation = self.operation_impl(n_clusters=2)
  
      features = cudf.DataFrame(train_data.features.astype("float32"))
      with ImplementationRandomStateHandler(
          implementation=operation_implementation
      ):
          operation_implementation.fit(features)
      return operation_implementation
  
file_path: FEDOT/fedot/core/operations/evaluation/gpu/clustering.py
imports: import warnings
  from golem.utilities.requirements_notificator import warn_requirement
  from fedot.core.operations.operation_parameters import OperationParameters
  from typing import Optional
  from fedot.core.data.data import InputData, OutputData
  from fedot.core.operations.evaluation.gpu.common import CuMLEvaluationStrategy
  from fedot.utilities.random import ImplementationRandomStateHandler
label_desc: Use image node_id 2 for calling the CumlClusteringStrategy obj's underlying member method code with example usage: obj.fit(train_data) and returns: operation_implementation