From a129ab49f1b398c0d9ba47e725163daa64f39ca0 Mon Sep 17 00:00:00 2001 From: Pardeep Singh Date: Sat, 6 Jun 2020 23:40:11 +0530 Subject: [PATCH 1/6] Add example to ConfusionMatrixDisplay class documentation --- sklearn/metrics/_plot/confusion_matrix.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sklearn/metrics/_plot/confusion_matrix.py b/sklearn/metrics/_plot/confusion_matrix.py index c858ac3950f86..1fbf3e087cd37 100644 --- a/sklearn/metrics/_plot/confusion_matrix.py +++ b/sklearn/metrics/_plot/confusion_matrix.py @@ -40,6 +40,25 @@ class ConfusionMatrixDisplay: figure_ : matplotlib Figure Figure containing the confusion matrix. + + Examples + -------- + >>> import matplotlib.pyplot as plt + >>> from sklearn.datasets import make_classification + >>> from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay + >>> from sklearn.model_selection import train_test_split + >>> from sklearn.svm import SVC + >>> X, y = make_classification(random_state=0) + >>> X_train, X_test, y_train, y_test = train_test_split(X, + >>> y, + >>> random_state=0) + >>> clf = SVC(random_state=0) + >>> clf.fit(X_train, y_train) + >>> predictions = clf.predict(X_test) + >>> cm = confusion_matrix(y_test, predictions, labels=clf.classes_) + >>> disp = ConfusionMatrixDisplay(confusion_matrix=cm, + >>> display_labels=clf.classes_) + >>> disp.plot() """ def __init__(self, confusion_matrix, *, display_labels=None): self.confusion_matrix = confusion_matrix From 5e342ce443a94937ac9e368d10247c0847311d3f Mon Sep 17 00:00:00 2001 From: Pardeep Singh Date: Sat, 6 Jun 2020 23:54:16 +0530 Subject: [PATCH 2/6] Add example to PrecisionRecallDisplay class documentation --- .../metrics/_plot/precision_recall_curve.py | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/sklearn/metrics/_plot/precision_recall_curve.py b/sklearn/metrics/_plot/precision_recall_curve.py index bb2a91c198c41..c6722344e3a0a 100644 --- a/sklearn/metrics/_plot/precision_recall_curve.py +++ b/sklearn/metrics/_plot/precision_recall_curve.py @@ -40,6 +40,25 @@ class PrecisionRecallDisplay: figure_ : matplotlib Figure Figure containing the curve. + + Examples + -------- + >>> import matplotlib.pyplot as plt + >>> from sklearn.datasets import make_classification + >>> from sklearn.metrics import (precision_recall_curve, + >>> PrecisionRecallDisplay) + >>> from sklearn.model_selection import train_test_split + >>> from sklearn.svm import SVC + >>> X, y = make_classification(random_state=0) + >>> X_train, X_test, y_train, y_test = train_test_split(X, + >>> y, + >>> random_state=0) + >>> clf = SVC(random_state=0) + >>> clf.fit(X_train, y_train) + >>> predictions = clf.predict(X_test) + >>> precision, recall, _ = precision_recall_curve(y_test, predictions) + >>> viz = PrecisionRecallDisplay(precision=precision, recall=recall) + >>> viz.plot() """ def __init__(self, precision, recall, *, average_precision=None, estimator_name=None): From 5a61323d3f4485a70e34b512b71b2938e6cfeb1b Mon Sep 17 00:00:00 2001 From: Pardeep Singh Date: Sun, 7 Jun 2020 21:51:24 +0530 Subject: [PATCH 3/6] Make Code Review Fixes --- sklearn/metrics/_plot/confusion_matrix.py | 3 +-- sklearn/metrics/_plot/precision_recall_curve.py | 5 ++--- 2 files changed, 3 insertions(+), 5 deletions(-) diff --git a/sklearn/metrics/_plot/confusion_matrix.py b/sklearn/metrics/_plot/confusion_matrix.py index 1fbf3e087cd37..7646e840be6c2 100644 --- a/sklearn/metrics/_plot/confusion_matrix.py +++ b/sklearn/metrics/_plot/confusion_matrix.py @@ -43,7 +43,6 @@ class ConfusionMatrixDisplay: Examples -------- - >>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import confusion_matrix, ConfusionMatrixDisplay >>> from sklearn.model_selection import train_test_split @@ -58,7 +57,7 @@ class ConfusionMatrixDisplay: >>> cm = confusion_matrix(y_test, predictions, labels=clf.classes_) >>> disp = ConfusionMatrixDisplay(confusion_matrix=cm, >>> display_labels=clf.classes_) - >>> disp.plot() + >>> disp.plot() # doctest: +SKIP """ def __init__(self, confusion_matrix, *, display_labels=None): self.confusion_matrix = confusion_matrix diff --git a/sklearn/metrics/_plot/precision_recall_curve.py b/sklearn/metrics/_plot/precision_recall_curve.py index c6722344e3a0a..b49412def5a4e 100644 --- a/sklearn/metrics/_plot/precision_recall_curve.py +++ b/sklearn/metrics/_plot/precision_recall_curve.py @@ -43,7 +43,6 @@ class PrecisionRecallDisplay: Examples -------- - >>> import matplotlib.pyplot as plt >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import (precision_recall_curve, >>> PrecisionRecallDisplay) @@ -57,8 +56,8 @@ class PrecisionRecallDisplay: >>> clf.fit(X_train, y_train) >>> predictions = clf.predict(X_test) >>> precision, recall, _ = precision_recall_curve(y_test, predictions) - >>> viz = PrecisionRecallDisplay(precision=precision, recall=recall) - >>> viz.plot() + >>> disp = PrecisionRecallDisplay(precision=precision, recall=recall) + >>> disp.plot() # doctest: +SKIP """ def __init__(self, precision, recall, *, average_precision=None, estimator_name=None): From cdcff011a89862e553451ab3ee5f81a17a3e78e8 Mon Sep 17 00:00:00 2001 From: Pardeep Singh Date: Sun, 7 Jun 2020 23:18:31 +0530 Subject: [PATCH 4/6] Refactor Metrics examples based on Code Review --- sklearn/metrics/_plot/confusion_matrix.py | 3 +-- sklearn/metrics/_plot/precision_recall_curve.py | 3 +-- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/sklearn/metrics/_plot/confusion_matrix.py b/sklearn/metrics/_plot/confusion_matrix.py index 7646e840be6c2..b8bb1f8129c93 100644 --- a/sklearn/metrics/_plot/confusion_matrix.py +++ b/sklearn/metrics/_plot/confusion_matrix.py @@ -48,8 +48,7 @@ class ConfusionMatrixDisplay: >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) - >>> X_train, X_test, y_train, y_test = train_test_split(X, - >>> y, + >>> X_train, X_test, y_train, y_test = train_test_split(X, y, >>> random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) diff --git a/sklearn/metrics/_plot/precision_recall_curve.py b/sklearn/metrics/_plot/precision_recall_curve.py index b49412def5a4e..8fcf3127885a2 100644 --- a/sklearn/metrics/_plot/precision_recall_curve.py +++ b/sklearn/metrics/_plot/precision_recall_curve.py @@ -49,8 +49,7 @@ class PrecisionRecallDisplay: >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) - >>> X_train, X_test, y_train, y_test = train_test_split(X, - >>> y, + >>> X_train, X_test, y_train, y_test = train_test_split(X, y, >>> random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) From 085a1e0576d86cfd39f3a92d6038589553487f0e Mon Sep 17 00:00:00 2001 From: Pardeep Singh Date: Sun, 7 Jun 2020 23:27:57 +0530 Subject: [PATCH 5/6] Fix formatting issues in metrics examples --- sklearn/metrics/_plot/confusion_matrix.py | 4 ++-- sklearn/metrics/_plot/precision_recall_curve.py | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/sklearn/metrics/_plot/confusion_matrix.py b/sklearn/metrics/_plot/confusion_matrix.py index b8bb1f8129c93..9895bde220ca3 100644 --- a/sklearn/metrics/_plot/confusion_matrix.py +++ b/sklearn/metrics/_plot/confusion_matrix.py @@ -49,13 +49,13 @@ class ConfusionMatrixDisplay: >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, - >>> random_state=0) + ... random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) >>> predictions = clf.predict(X_test) >>> cm = confusion_matrix(y_test, predictions, labels=clf.classes_) >>> disp = ConfusionMatrixDisplay(confusion_matrix=cm, - >>> display_labels=clf.classes_) + ... display_labels=clf.classes_) >>> disp.plot() # doctest: +SKIP """ def __init__(self, confusion_matrix, *, display_labels=None): diff --git a/sklearn/metrics/_plot/precision_recall_curve.py b/sklearn/metrics/_plot/precision_recall_curve.py index 8fcf3127885a2..5ae46904793d1 100644 --- a/sklearn/metrics/_plot/precision_recall_curve.py +++ b/sklearn/metrics/_plot/precision_recall_curve.py @@ -45,12 +45,12 @@ class PrecisionRecallDisplay: -------- >>> from sklearn.datasets import make_classification >>> from sklearn.metrics import (precision_recall_curve, - >>> PrecisionRecallDisplay) + ... PrecisionRecallDisplay) >>> from sklearn.model_selection import train_test_split >>> from sklearn.svm import SVC >>> X, y = make_classification(random_state=0) >>> X_train, X_test, y_train, y_test = train_test_split(X, y, - >>> random_state=0) + ... random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) >>> predictions = clf.predict(X_test) From 776bea7994172e2436a4b7384053e70c4e230907 Mon Sep 17 00:00:00 2001 From: Pardeep Singh Date: Sun, 7 Jun 2020 23:31:25 +0530 Subject: [PATCH 6/6] Add return value to metrics doc examples --- sklearn/metrics/_plot/confusion_matrix.py | 1 + sklearn/metrics/_plot/precision_recall_curve.py | 1 + 2 files changed, 2 insertions(+) diff --git a/sklearn/metrics/_plot/confusion_matrix.py b/sklearn/metrics/_plot/confusion_matrix.py index 9895bde220ca3..f3c380962f9f4 100644 --- a/sklearn/metrics/_plot/confusion_matrix.py +++ b/sklearn/metrics/_plot/confusion_matrix.py @@ -52,6 +52,7 @@ class ConfusionMatrixDisplay: ... random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) + SVC(random_state=0) >>> predictions = clf.predict(X_test) >>> cm = confusion_matrix(y_test, predictions, labels=clf.classes_) >>> disp = ConfusionMatrixDisplay(confusion_matrix=cm, diff --git a/sklearn/metrics/_plot/precision_recall_curve.py b/sklearn/metrics/_plot/precision_recall_curve.py index 5ae46904793d1..7a04ce02f3ef6 100644 --- a/sklearn/metrics/_plot/precision_recall_curve.py +++ b/sklearn/metrics/_plot/precision_recall_curve.py @@ -53,6 +53,7 @@ class PrecisionRecallDisplay: ... random_state=0) >>> clf = SVC(random_state=0) >>> clf.fit(X_train, y_train) + SVC(random_state=0) >>> predictions = clf.predict(X_test) >>> precision, recall, _ = precision_recall_curve(y_test, predictions) >>> disp = PrecisionRecallDisplay(precision=precision, recall=recall)