code: def fit_logistic_regression(X, y, data_random_seed=1, repeat=1):
      # transform targets to one-hot vector
      one_hot_encoder = OneHotEncoder(categories="auto", sparse=False)
  
      y = one_hot_encoder.fit_transform(y.reshape(-1, 1)).astype(
          np.bool_
      )
  
      # normalize x
      X = normalize(X, norm="l2")
  
      # set random state, this will ensure the dataset will be split exactly the same throughout training
      rng = np.random.RandomState(data_random_seed)
  
      accuracies = []
      for _ in range(repeat):
          # different random split after each repeat
          X_train, X_test, y_train, y_test = train_test_split(
              X, y, test_size=0.8, random_state=rng
          )
  
          # grid search with one-vs-rest classifiers
          logreg = LogisticRegression(solver="liblinear")
          c = 2.0 ** np.arange(-10, 11)
          cv = ShuffleSplit(n_splits=5, test_size=0.5)
          clf = GridSearchCV(
              estimator=OneVsRestClassifier(logreg),
              param_grid=dict(estimator__C=c),
              n_jobs=5,
              cv=cv,
              verbose=0,
          )
          clf.fit(X_train, y_train)
  
          y_pred = clf.predict_proba(X_test)
          y_pred = np.argmax(y_pred, axis=1)
          y_pred = one_hot_encoder.transform(
              y_pred.reshape(-1, 1)
          ).astype(np.bool_)
  
          test_acc = metrics.accuracy_score(y_test, y_pred)
          accuracies.append(test_acc)
      return accuracies
  
file_path: dgl/examples/pytorch/bgrl/eval_function.py
imports: import numpy
  import torch
  from sklearn import metrics
  from sklearn.linear_model import LogisticRegression
  from sklearn.model_selection import GridSearchCV, ShuffleSplit, train_test_split
  from sklearn.multiclass import OneVsRestClassifier
  from sklearn.preprocessing import normalize, OneHotEncoder
label_desc: Use image node_id 1 for calling a global function with example usage: fit_logistic_regression(X, y, data_random_seed, repeat) and returns: accuracies