class_docstr: Adjusted Rand Index.
  
  The Adjusted Rand Index is the corrected-for-chance version of the Rand Index [^1] [^2].
  Such a correction for chance establishes a baseline by using the expected similarity
  of all pair-wise comparisions between clusterings specified by a random model.
  
  Traditionally, the Rand Index was corrected using the Permutation Model for Clustering.
  However, the premises of the permutation model are frequently violated; in many
  clustering scenarios, either the number of clusters or the size distribution of those
  clusters vary drastically. Variations of the adjusted Rand Index account for different
  models of random clusterings.
  
  Though the Rand Index may only yield a value between 0 and 1, the Adjusted Rand index
  can yield negative values if the index is less than the expected index.
  
  Parameters
  ----------
  cm
      This parameter allows sharing the same confusion
      matrix between multiple metrics. Sharing a confusion matrix reduces the amount of storage
      and computation time.
  
  Examples
  --------
  >>> from river import metrics
  
  >>> y_true = [0, 0, 0, 1, 1, 1]
  >>> y_pred = [0, 0, 1, 1, 2, 2]
  
  >>> metric = metrics.AdjustedRand()
  
  >>> for yt, yp in zip(y_true, y_pred):
  ...     metric.update(yt, yp)
  ...     print(metric.get())
  1.0
  1.0
  0.0
  0.0
  0.09090909090909091
  0.24242424242424243
  
  >>> metric
  AdjustedRand: 0.242424
  
  References
  ----------
  [^1]: Wikipedia contributors. (2021, January 13). Rand index.
        In Wikipedia, The Free Encyclopedia,
        from https://en.wikipedia.org/w/index.php?title=Rand_index&oldid=1000098911
  [^2]: W. M. Rand (1971). "Objective criteria for the evaluation of clustering methods".
        Journal of the American Statistical Association. American Statistical Association.
        66 (336): 846–850. arXiv:1704.01036. doi:10.2307/2284239. JSTOR 2284239.
class_docstr_tok: ["Adjusted","Rand","Index",".","The","Adjusted","Rand","Index","is","the","corrected-for-chance","version","of","the","Rand","Index","[","^1","]","[","^2","]",".","Such","a","correction","for","chance","establishes","a","baseline","by","using","the","expected","similarity","of","all","pair-wise","comparisions","between","clusterings","specified","by","a","random","model",".","Traditionally",",","the","Rand","Index","was","corrected","using","the","Permutation","Model","for","Clustering",".","However",",","the","premises","of","the","permutation","model","are","frequently","violated",";","in","many","clustering","scenarios",",","either","the","number","of","clusters","or","the","size","distribution","of","those","clusters","vary","drastically",".","Variations","of","the","adjusted","Rand","Index","account","for","different","models","of","random","clusterings",".","Though","the","Rand","Index","may","only","yield","a","value","between","0","and","1",",","the","Adjusted","Rand","index","can","yield","negative","values","if","the","index","is","less","than","the","expected","index",".","Parameters","--","--","--","--","--","cm","This","parameter","allows","sharing","the","same","confusion","matrix","between","multiple","metrics",".","Sharing","a","confusion","matrix","reduces","the","amount","of","storage","and","computation","time",".","Examples","--","--","--","--",">",">",">","from","river","import","metrics",">",">",">","y_true","=","[","0",",","0",",","0",",","1",",","1",",","1","]",">",">",">","y_pred","=","[","0",",","0",",","1",",","1",",","2",",","2","]",">",">",">","metric","=","metrics.AdjustedRand","(",")",">",">",">","for","yt",",","yp","in","zip","(","y_true",",","y_pred",")",":","...","metric.update","(","yt",",","yp",")","...","print","(","metric.get","(",")",")","1.0","1.0","0.0","0.0","0.09090909090909091","0.24242424242424243",">",">",">","metric","AdjustedRand",":","0.242424","References","--","--","--","--","--","[","^1","]",":","Wikipedia","contributors",".","(","2021",",","January","13",")",".","Rand","index",".","In","Wikipedia",",","The","Free","Encyclopedia",",","from","https",":","\/\/en.wikipedia.org\/w\/index.php","?","title=Rand_index","&","oldid=1000098911","[","^2","]",":","W.","M.","Rand","(","1971",")",".","``","Objective","criteria","for","the","evaluation","of","clustering","methods","''",".","Journal","of","the","American","Statistical","Association",".","American","Statistical","Association",".","66","(","336",")",":","846\u2013850",".","arXiv:1704.01036.","doi:10.2307\/2284239",".","JSTOR","2284239","."]
code: def get(self):
      pair_confusion_matrix = _pair_confusion(self.cm)
  
      true_negatives, false_positives = pair_confusion_matrix[
          0
      ].values()
      false_negatives, true_positives = pair_confusion_matrix[
          1
      ].values()
  
      try:
          return (
              2.0
              * (
                  true_positives * true_negatives
                  - false_negatives * false_positives
              )
              / (
                  (true_positives + false_negatives)
                  * (false_negatives + true_negatives)
                  + (true_positives + false_positives)
                  * (false_positives + true_negatives)
              )
          )
      except ZeroDivisionError:
          return 1.0
  
file_path: river/river/metrics/rand.py
imports: from __future__ import annotations
  import collections
  from river import metrics
label_desc: Use image node_id 2 for calling the AdjustedRand obj's underlying member method code with example usage: obj.get() and returns: unknown, int