class_docstr: Method from Chen et al., 2018 performing poisoning detection based on activations clustering.
  
  | Paper link: https://arxiv.org/abs/1811.03728
  
  | Please keep in mind the limitations of defences. For more information on the limitations of this
      defence, see https://arxiv.org/abs/1905.13409 . For details on how to evaluate classifier security
      in general, see https://arxiv.org/abs/1902.06705
docstr: Returns segmented data according to specified features.
  
  :param data: Data to be segmented.
  :param features: Features used to segment data, e.g., segment according to predicted label or to `y_train`.
  :return: Segmented data according to specified features.
docstr_tok: ["Returns","segmented","data","according","to","specified","features",".",":","param","data",":","Data","to","be","segmented",".",":","param","features",":","Features","used","to","segment","data",",","e.g.",",","segment","according","to","predicted","label","or","to","`","y_train","`",".",":","return",":","Segmented","data","according","to","specified","features","."]
code: def _segment_by_class(
      self, data: np.ndarray, features: np.ndarray
  ) -> List[np.ndarray]:
      """
      Returns segmented data according to specified features.
  
      :param data: Data to be segmented.
      :param features: Features used to segment data, e.g., segment according to predicted label or to `y_train`.
      :return: Segmented data according to specified features.
      """
      n_classes = self.classifier.nb_classes
      return segment_by_class(data, features, n_classes)
  
imports: from __future__ import absolute_import, division, print_function, unicode_literals
  import logging
  import os
  import pickle
  import time
  from typing import Any, Dict, List, Optional, Tuple, TYPE_CHECKING
  import numpy
  from sklearn.cluster import KMeans, MiniBatchKMeans
  from art import config
  from art.data_generators import DataGenerator
  from art.defences.detector.poison.clustering_analyzer import ClusteringAnalyzer
  from art.defences.detector.poison.ground_truth_evaluator import GroundTruthEvaluator
  from art.defences.detector.poison.poison_filtering_defence import PoisonFilteringDefence
  from art.utils import segment_by_class
  from art.visualization import create_sprite, save_image, plot_3d
label_desc: Use image node_id 16 for calling the ActivationDefence obj's underlying member method code with example usage: obj._segment_by_class(data, features) and returns: segment_by_class