class_docstr: Base class for managing data issues of a particular type in a Datalab.
  
  For each example in a dataset, the IssueManager for a particular type of issue should compute:
  - A numeric severity score between 0 and 1,
      with values near 0 indicating severe instances of the issue.
  - A boolean `is_issue` value, which is True
      if we believe this example suffers from the issue in question.
    `is_issue` may be determined by thresholding the severity score
      (with an a priori determined reasonable threshold value),
      or via some other means (e.g. Confident Learning for flagging label issues).
  
  The IssueManager should also report:
  - A global value between 0 and 1 summarizing how severe this issue is in the dataset overall
      (e.g. the average severity across all examples in dataset
      or count of examples where `is_issue=True`).
  - Other interesting `info` about the issue and examples in the dataset,
    and statistics estimated from current dataset that may be reused
    to score this issue in future data.
    For example, `info` for label issues could contain the:
    confident_thresholds, confident_joint, predicted label for each example, etc.
    Another example is for (near)-duplicate detection issue, where `info` could contain:
    which set of examples in the dataset are all (nearly) identical.
  
  Implementing a new IssueManager:
  - Define the `issue_name` class attribute, e.g. "label", "duplicate", "outlier", etc.
  - Implement the abstract methods `find_issues` and `collect_info`.
    - `find_issues` is responsible for computing computing the `issues` and `summary` dataframes.
    - `collect_info` is responsible for computing the `info` dict. It is called by `find_issues`,
      once the manager has set the `issues` and `summary` dataframes as instance attributes.
class_docstr_tok: ["Base","class","for","managing","data","issues","of","a","particular","type","in","a","Datalab",".","For","each","example","in","a","dataset",",","the","IssueManager","for","a","particular","type","of","issue","should","compute",":","-","A","numeric","severity","score","between","0","and","1",",","with","values","near","0","indicating","severe","instances","of","the","issue",".","-","A","boolean","`","is_issue","`","value",",","which","is","True","if","we","believe","this","example","suffers","from","the","issue","in","question",".","`","is_issue","`","may","be","determined","by","thresholding","the","severity","score","(","with","an","a","priori","determined","reasonable","threshold","value",")",",","or","via","some","other","means","(","e.g",".","Confident","Learning","for","flagging","label","issues",")",".","The","IssueManager","should","also","report",":","-","A","global","value","between","0","and","1","summarizing","how","severe","this","issue","is","in","the","dataset","overall","(","e.g",".","the","average","severity","across","all","examples","in","dataset","or","count","of","examples","where","`","is_issue=True","`",")",".","-","Other","interesting","`","info","`","about","the","issue","and","examples","in","the","dataset",",","and","statistics","estimated","from","current","dataset","that","may","be","reused","to","score","this","issue","in","future","data",".","For","example",",","`","info","`","for","label","issues","could","contain","the",":","confident_thresholds",",","confident_joint",",","predicted","label","for","each","example",",","etc",".","Another","example","is","for","(","near",")","-duplicate","detection","issue",",","where","`","info","`","could","contain",":","which","set","of","examples","in","the","dataset","are","all","(","nearly",")","identical",".","Implementing","a","new","IssueManager",":","-","Define","the","`","issue_name","`","class","attribute",",","e.g",".","``","label","''",",","``","duplicate","''",",","``","outlier","''",",","etc",".","-","Implement","the","abstract","methods","`","find_issues","`","and","`","collect_info","`",".","-","`","find_issues","`","is","responsible","for","computing","computing","the","`","issues","`","and","`","summary","`","dataframes",".","-","`","collect_info","`","is","responsible","for","computing","the","`","info","`","dict",".","It","is","called","by","`","find_issues","`",",","once","the","manager","has","set","the","`","issues","`","and","`","summary","`","dataframes","as","instance","attributes","."]
docstr: Finds occurrences of this particular issue in the dataset.
  
  Computes the `issues` and `summary` dataframes. Calls `collect_info` to compute the `info` dict.
docstr_tok: ["Finds","occurrences","of","this","particular","issue","in","the","dataset",".","Computes","the","`","issues","`","and","`","summary","`","dataframes",".","Calls","`","collect_info","`","to","compute","the","`","info","`","dict","."]
code: def find_issues(self, *args, **kwargs) -> None:
      """Finds occurrences of this particular issue in the dataset.
  
      Computes the `issues` and `summary` dataframes. Calls `collect_info` to compute the `info` dict.
      """
      raise NotImplementedError
  
file_path: cleanlab/cleanlab/datalab/internal/issue_manager/issue_manager.py
imports: from __future__ import annotations
  from abc import ABC, ABCMeta, abstractmethod
  from itertools import chain
  from typing import TYPE_CHECKING, Any, ClassVar, Dict, List, Optional, Set, Tuple, Type, TypeVar
  import json
  import numpy
  import pandas
label_desc: Use image node_id 4 for calling the IssueManager obj's underlying member method code with example usage: obj.find_issues() without return types