From 1f402f94ccd44617c497448f8bd80d3c2e467758 Mon Sep 17 00:00:00 2001 From: nuka137 Date: Fri, 5 Jun 2020 18:27:34 +0900 Subject: [PATCH 1/5] [WIP]: Add examples to linear_model.PoissonRegressor --- sklearn/linear_model/_glm/glm.py | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/sklearn/linear_model/_glm/glm.py b/sklearn/linear_model/_glm/glm.py index 8607d6a1828ab..a4bd4515220a8 100644 --- a/sklearn/linear_model/_glm/glm.py +++ b/sklearn/linear_model/_glm/glm.py @@ -430,6 +430,19 @@ class PoissonRegressor(GeneralizedLinearRegressor): n_iter_ : int Actual number of iterations used in the solver. + + Examples + ---------- + >>> from sklearn import linear_model + >>> clf = linear_model.PoissonRegressor(alpha=0.95) + >>> X = [[0, 0], [1, 1], [2, 2]] + >>> y = [0, 1, 2] + >>> clf.fit(X, y) + PoissonRegressor(alpha=0.95) + >>> print(clf.coef_) + [0.30189415 0.30189415] + >>> print(clf.intercept_) + -0.7218104894636085 """ def __init__(self, *, alpha=1.0, fit_intercept=True, max_iter=100, tol=1e-4, warm_start=False, verbose=0): From 519941c1b6c3ea54ca18e3d2fac211b5043df64f Mon Sep 17 00:00:00 2001 From: nuka137 Date: Sun, 7 Jun 2020 09:42:57 +0900 Subject: [PATCH 2/5] Address review --- sklearn/linear_model/_glm/glm.py | 18 ++++++++++++------ 1 file changed, 12 insertions(+), 6 deletions(-) diff --git a/sklearn/linear_model/_glm/glm.py b/sklearn/linear_model/_glm/glm.py index a4bd4515220a8..fab652dac1875 100644 --- a/sklearn/linear_model/_glm/glm.py +++ b/sklearn/linear_model/_glm/glm.py @@ -433,16 +433,22 @@ class PoissonRegressor(GeneralizedLinearRegressor): Examples ---------- + >>> import numpy as np >>> from sklearn import linear_model - >>> clf = linear_model.PoissonRegressor(alpha=0.95) - >>> X = [[0, 0], [1, 1], [2, 2]] - >>> y = [0, 1, 2] + >>> clf = linear_model.PoissonRegressor() + >>> X = [[1, 2], [2, 3], [3, 4], [4, 3]] + >>> # y = 2 * x_0 + 3 * x_1 + 4 + ... y = np.dot(X, np.array([2, 3])) + 4 >>> clf.fit(X, y) - PoissonRegressor(alpha=0.95) + PoissonRegressor() + >>> print(clf.score(X, y)) + 0.9904855148891633 >>> print(clf.coef_) - [0.30189415 0.30189415] + [0.12109212 0.15836976] >>> print(clf.intercept_) - -0.7218104894636085 + 2.0885914156053205 + >>> print(clf.predict([[1, 1], [3, 4]])) + [10.67658784 21.87505182] """ def __init__(self, *, alpha=1.0, fit_intercept=True, max_iter=100, tol=1e-4, warm_start=False, verbose=0): From c8eb89c97ea426209457fe1ca48695ac589abd02 Mon Sep 17 00:00:00 2001 From: nuka137 Date: Sun, 7 Jun 2020 09:51:39 +0900 Subject: [PATCH 3/5] Address review --- sklearn/linear_model/_glm/glm.py | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/sklearn/linear_model/_glm/glm.py b/sklearn/linear_model/_glm/glm.py index fab652dac1875..915bc9313277e 100644 --- a/sklearn/linear_model/_glm/glm.py +++ b/sklearn/linear_model/_glm/glm.py @@ -442,13 +442,13 @@ class PoissonRegressor(GeneralizedLinearRegressor): >>> clf.fit(X, y) PoissonRegressor() >>> print(clf.score(X, y)) - 0.9904855148891633 + 0.990... >>> print(clf.coef_) - [0.12109212 0.15836976] + [0.121... 0.158...] >>> print(clf.intercept_) - 2.0885914156053205 + 2.088... >>> print(clf.predict([[1, 1], [3, 4]])) - [10.67658784 21.87505182] + [10.676... 21.875...] """ def __init__(self, *, alpha=1.0, fit_intercept=True, max_iter=100, tol=1e-4, warm_start=False, verbose=0): From 3110ad65d3176705432b2f935ba1a6149c7b5211 Mon Sep 17 00:00:00 2001 From: Atsushi Nukariya Date: Sun, 7 Jun 2020 11:21:17 +0900 Subject: [PATCH 4/5] Apply suggestions from code review Co-authored-by: Thomas J. Fan --- sklearn/linear_model/_glm/glm.py | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/sklearn/linear_model/_glm/glm.py b/sklearn/linear_model/_glm/glm.py index 915bc9313277e..475e31c015864 100644 --- a/sklearn/linear_model/_glm/glm.py +++ b/sklearn/linear_model/_glm/glm.py @@ -437,18 +437,17 @@ class PoissonRegressor(GeneralizedLinearRegressor): >>> from sklearn import linear_model >>> clf = linear_model.PoissonRegressor() >>> X = [[1, 2], [2, 3], [3, 4], [4, 3]] - >>> # y = 2 * x_0 + 3 * x_1 + 4 - ... y = np.dot(X, np.array([2, 3])) + 4 + >>> y = [12, 17, 22, 21] >>> clf.fit(X, y) PoissonRegressor() - >>> print(clf.score(X, y)) + >>> clf.score(X, y) 0.990... - >>> print(clf.coef_) - [0.121... 0.158...] - >>> print(clf.intercept_) + >>> clf.coef_ + array([0.121..., 0.158...]) + >>> clf.intercept_ 2.088... - >>> print(clf.predict([[1, 1], [3, 4]])) - [10.676... 21.875...] + >>> clf.predict([[1, 1], [3, 4]]) + array([10.676..., 21.875...]) """ def __init__(self, *, alpha=1.0, fit_intercept=True, max_iter=100, tol=1e-4, warm_start=False, verbose=0): From 9dc077b101d770e33f8015729e16de0d4fcc3c88 Mon Sep 17 00:00:00 2001 From: nuka137 Date: Sun, 7 Jun 2020 11:32:07 +0900 Subject: [PATCH 5/5] Remove numpy import --- sklearn/linear_model/_glm/glm.py | 1 - 1 file changed, 1 deletion(-) diff --git a/sklearn/linear_model/_glm/glm.py b/sklearn/linear_model/_glm/glm.py index 475e31c015864..fd755f2af781b 100644 --- a/sklearn/linear_model/_glm/glm.py +++ b/sklearn/linear_model/_glm/glm.py @@ -433,7 +433,6 @@ class PoissonRegressor(GeneralizedLinearRegressor): Examples ---------- - >>> import numpy as np >>> from sklearn import linear_model >>> clf = linear_model.PoissonRegressor() >>> X = [[1, 2], [2, 3], [3, 4], [4, 3]]