diff --git a/doc/pub/week45/html/._week45-bs000.html b/doc/pub/week45/html/._week45-bs000.html index 66ca17b1f..e7b68b882 100644 --- a/doc/pub/week45/html/._week45-bs000.html +++ b/doc/pub/week45/html/._week45-bs000.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -209,7 +208,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 6, 2020

    +

    Nov 12, 2020


    @@ -233,7 +232,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs001.html b/doc/pub/week45/html/._week45-bs001.html index b10092d64..aef9da7ec 100644 --- a/doc/pub/week45/html/._week45-bs001.html +++ b/doc/pub/week45/html/._week45-bs001.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -219,7 +218,7 @@ Geron's chapter 7. See also lecture from 10
  • 11
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs002.html b/doc/pub/week45/html/._week45-bs002.html index 4862718e8..18ed4e4ce 100644 --- a/doc/pub/week45/html/._week45-bs002.html +++ b/doc/pub/week45/html/._week45-bs002.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -215,7 +214,7 @@ We repeat here the voting approach since this will serve as a motivation for boo
  • 11
  • 12
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs003.html b/doc/pub/week45/html/._week45-bs003.html index 851c855b6..41295d2ad 100644 --- a/doc/pub/week45/html/._week45-bs003.html +++ b/doc/pub/week45/html/._week45-bs003.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -229,7 +228,7 @@ Decision trees play an important role as our weak classifier. They serve as the
  • 12
  • 13
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs004.html b/doc/pub/week45/html/._week45-bs004.html index 61e367add..89a456069 100644 --- a/doc/pub/week45/html/._week45-bs004.html +++ b/doc/pub/week45/html/._week45-bs004.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -237,7 +236,7 @@ numbers kicking in.
  • 13
  • 14
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs005.html b/doc/pub/week45/html/._week45-bs005.html index ee1082533..9a2c61f38 100644 --- a/doc/pub/week45/html/._week45-bs005.html +++ b/doc/pub/week45/html/._week45-bs005.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -254,7 +253,7 @@ DATA_ID = "
  • 14
  • 15
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs006.html b/doc/pub/week45/html/._week45-bs006.html index 4837d5436..d2cc7b9f9 100644 --- a/doc/pub/week45/html/._week45-bs006.html +++ b/doc/pub/week45/html/._week45-bs006.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -239,7 +238,7 @@ plt.show()
  • 15
  • 16
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs007.html b/doc/pub/week45/html/._week45-bs007.html index f35ff68ea..fbd12a730 100644 --- a/doc/pub/week45/html/._week45-bs007.html +++ b/doc/pub/week45/html/._week45-bs007.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -263,7 +262,7 @@ voting_clf.fit(X_train, y_train)
  • 16
  • 17
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs008.html b/doc/pub/week45/html/._week45-bs008.html index 03aba3eec..043f2f5ed 100644 --- a/doc/pub/week45/html/._week45-bs008.html +++ b/doc/pub/week45/html/._week45-bs008.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -270,7 +269,7 @@ voting_clf.fit(X_train, y_train)
  • 17
  • 18
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs009.html b/doc/pub/week45/html/._week45-bs009.html index a790c31d7..9dcfcb606 100644 --- a/doc/pub/week45/html/._week45-bs009.html +++ b/doc/pub/week45/html/._week45-bs009.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -256,7 +255,7 @@ this setting.
  • 18
  • 19
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs010.html b/doc/pub/week45/html/._week45-bs010.html index 3b7e93421..d56f013be 100644 --- a/doc/pub/week45/html/._week45-bs010.html +++ b/doc/pub/week45/html/._week45-bs010.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -239,7 +238,7 @@ We will grow of forest of say \( B \) trees.
  • 19
  • 20
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs011.html b/doc/pub/week45/html/._week45-bs011.html index 898c2c9f3..6f4831bf8 100644 --- a/doc/pub/week45/html/._week45-bs011.html +++ b/doc/pub/week45/html/._week45-bs011.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -297,7 +296,7 @@ discrimination threshold is varied. It plots the true positive rate against the
  • 20
  • 21
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs012.html b/doc/pub/week45/html/._week45-bs012.html index 6573c5d96..d1279f72a 100644 --- a/doc/pub/week45/html/._week45-bs012.html +++ b/doc/pub/week45/html/._week45-bs012.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -235,7 +234,7 @@ np.sum(y_pred =
  • 21
  • 22
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs013.html b/doc/pub/week45/html/._week45-bs013.html index fd7fb6fd1..b7bd9d263 100644 --- a/doc/pub/week45/html/._week45-bs013.html +++ b/doc/pub/week45/html/._week45-bs013.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -230,7 +229,7 @@ them with a factor.
  • 22
  • 23
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs014.html b/doc/pub/week45/html/._week45-bs014.html index 6fd2f97f5..0d1a2d9a9 100644 --- a/doc/pub/week45/html/._week45-bs014.html +++ b/doc/pub/week45/html/._week45-bs014.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -265,7 +264,7 @@ In iterative fitting or additive modeling, we minimize the cost function with re
  • 23
  • 24
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs015.html b/doc/pub/week45/html/._week45-bs015.html index 475d4db6d..3efc1085c 100644 --- a/doc/pub/week45/html/._week45-bs015.html +++ b/doc/pub/week45/html/._week45-bs015.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -238,7 +237,7 @@ at the internal nodes, and the predictions at the terminal nodes.
  • 24
  • 25
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs016.html b/doc/pub/week45/html/._week45-bs016.html index 357648bba..3b79e3d0f 100644 --- a/doc/pub/week45/html/._week45-bs016.html +++ b/doc/pub/week45/html/._week45-bs016.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -261,7 +260,7 @@ The solution to these two equations gives us in turn \( \beta_1 \) and \( \gamma
  • 25
  • 26
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs017.html b/doc/pub/week45/html/._week45-bs017.html index 7cdb8c515..e861b1ffb 100644 --- a/doc/pub/week45/html/._week45-bs017.html +++ b/doc/pub/week45/html/._week45-bs017.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -248,7 +247,7 @@ $$
  • 26
  • 27
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs018.html b/doc/pub/week45/html/._week45-bs018.html index 990e8e4cd..ae2ebef7d 100644 --- a/doc/pub/week45/html/._week45-bs018.html +++ b/doc/pub/week45/html/._week45-bs018.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -241,7 +240,7 @@ where we have defined \( w_i^m= \exp{(-y_if_{m-1}(x_i))} \).
  • 27
  • 28
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs019.html b/doc/pub/week45/html/._week45-bs019.html index ec48d8323..0c2f3ee1c 100644 --- a/doc/pub/week45/html/._week45-bs019.html +++ b/doc/pub/week45/html/._week45-bs019.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -257,7 +256,7 @@ $$
  • 28
  • 29
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs020.html b/doc/pub/week45/html/._week45-bs020.html index 1ebf157b4..a5ba56690 100644 --- a/doc/pub/week45/html/._week45-bs020.html +++ b/doc/pub/week45/html/._week45-bs020.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -235,7 +234,7 @@ where the function \( I() \) is one if we misclassify and zero if we classify co
  • 29
  • 30
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs021.html b/doc/pub/week45/html/._week45-bs021.html index a1dd7046f..334514915 100644 --- a/doc/pub/week45/html/._week45-bs021.html +++ b/doc/pub/week45/html/._week45-bs021.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -253,7 +252,7 @@ observations that are missed in the previous iterations.
  • 30
  • 31
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs022.html b/doc/pub/week45/html/._week45-bs022.html index 765b81d29..bcb5a6b48 100644 --- a/doc/pub/week45/html/._week45-bs022.html +++ b/doc/pub/week45/html/._week45-bs022.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -245,8 +244,6 @@ plt.show()
  • 30
  • 31
  • 32
  • -
  • ...
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs023.html b/doc/pub/week45/html/._week45-bs023.html index 258746535..bf8234981 100644 --- a/doc/pub/week45/html/._week45-bs023.html +++ b/doc/pub/week45/html/._week45-bs023.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,30 +189,17 @@ MathJax.Hub.Config({ -

    Additive boosting for Regression

    +

    Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent

    -Here we present Drucker's AdaBoost tailored for regression. +Gradient boosting is again a similar technique to Adaptive boosting, +it combines so-called weak classifiers or regressors into a strong +method via a series of iterations.

    -In bagging, each training example is equally likely to be -picked. In boosting, the probability of a particular -example being in the training set of a particular machine -depends on the performance of the prior machines on -that example. The following is a modification of -Adaboost by Drucker. - -

    -Start by selecting a set of training data \( n \) and assign to each entry a weight \( w_i=1 \) for \( i=1,2,\dots,n \). As we have done earlier, we could pick say \( 80\% \) of the data set for training. The algorithm runs as follows: - -

      -
    1. We define the probability that the training sample \( i \) is in the set by \( p_i = w_i/\sum_iw_i \). We pick \( n \) samples (with replacement) to form our training set. We pick a number uniformly in the range \( [0,\sum_iw_i] \).
    2. -
    3. We choose then a regression machine (for example plain linear regression or a simple decision tree). A given regression machine makes then a hypothesis.
    4. -
    5. Using every member of the training set with the chosen regression machine we obtain then a prediction \( \tilde{y}_i \).
    6. -
    7. We calculate then the loss function \( L_i \) for each training sample. We can use various types of loss function as long as we have a value
    8. -
    - -\( L_i\in [0,1] \). +In order to understand the method, let us illustrate its basics by +bringing back the essential steps in linear regression, where our cost +function was the least squares function.

    @@ -239,7 +225,6 @@ Start by selecting a set of training data \( n \) and assign to each entry a wei

  • 30
  • 31
  • 32
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs024.html b/doc/pub/week45/html/._week45-bs024.html index 70cf531a9..959fb9ff8 100644 --- a/doc/pub/week45/html/._week45-bs024.html +++ b/doc/pub/week45/html/._week45-bs024.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,17 +189,37 @@ MathJax.Hub.Config({ -

    Gradient boosting: Basics with Steepest Descent

    +

    The Squared-Error again! Steepest Descent

    -Gradient boosting is again a similar technique to Adaptive boosting, -it combines so-called weak classifiers or regressors into a strong -method via a series of iterations. +We start again with our cost function \( {\cal C}(\boldsymbol{y}m\boldsymbol{f})=\sum_{i=0}^{n-1}{\cal L}(y_i, f(x_i)) \) where we want to minimize +This means that for every iteration, we need to optimize + +$$ +(\hat{\boldsymbol{f}}) = \mathrm{argmin}_{\boldsymbol{f}}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i-f(x_i))^2. +$$

    -In order to understand the method, let us illustrate its basics by -bringing back the essential steps in linear regression, where our cost -function was the least squares function. +We define a real function \( h_m(x) \) that defines our final function \( f_M(x) \) as +$$ +f_M(x) = \sum_{m=0}^M h_m(x). +$$ + +

    +In the steepest decent approach we approximate \( h_m(x) = -\rho_m g_m(x) \), where \( \rho_m \) is a scalar and \( g_m(x) \) the gradient defined as +$$ +g_m(x_i) = \left[ \frac{\partial {\cal L}(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x_i)=f_{m-1}(x_i)}. +$$ + +

    +With the new gradient we can update \( f_m(x) = f_{m-1}(x) -\rho_m g_m(x) \). Using the above squared-error function we see that +the gradient is \( g_m(x_i) = -2(y_i-f(x_i)) \). + +

    +Choosing \( f_0(x)=0 \) we obtain \( g_m(x) = -2y_i \) and inserting this into the minimization problem for the cost function we have +$$ +(\rho_1) = \mathrm{argmin}_{\rho}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i+2\rho y_i)^2. +$$

    @@ -225,7 +244,6 @@ function was the least squares function.

  • 30
  • 31
  • 32
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs025.html b/doc/pub/week45/html/._week45-bs025.html index ba4c69d07..bf85aefff 100644 --- a/doc/pub/week45/html/._week45-bs025.html +++ b/doc/pub/week45/html/._week45-bs025.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,37 +189,20 @@ MathJax.Hub.Config({ -

    The Squared-Error again! Steepest Descent

    +

    Steepest Descent Example

    -We start again with our cost function \( {\cal C}(\boldsymbol{y}m\boldsymbol{f})=\sum_{i=0}^{n-1}{\cal L}(y_i, f(x_i)) \) where we want to minimize -This means that for every iteration, we need to optimize - +Optimizing with respect to \( \rho \) we obtain (taking the derivative) that \( \rho_1 = -1/2 \). We have then that $$ -(\hat{\boldsymbol{f}}) = \mathrm{argmin}_{\boldsymbol{f}}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i-f(x_i))^2. +f_1(x) = f_{0}(x) -\rho_1 g_1(x)=-y_i. $$ -

    -We define a real function \( h_m(x) \) that defines our final function \( f_M(x) \) as +We can then proceed and compute $$ -f_M(x) = \sum_{m=0}^M h_m(x). +g_2(x_i) = \left[ \frac{\partial {\cal L}(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x_i)=f_{1}(x_i)=y_i}=-4y_i, $$ -

    -In the steepest decent approach we approximate \( h_m(x) = -\rho_m g_m(x) \), where \( \rho_m \) is a scalar and \( g_m(x) \) the gradient defined as -$$ -g_m(x_i) = \left[ \frac{\partial {\cal L}(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x_i)=f_{m-1}(x_i)}. -$$ - -

    -With the new gradient we can update \( f_m(x) = f_{m-1}(x) -\rho_m g_m(x) \). Using the above squared-error function we see that -the gradient is \( g_m(x_i) = -2(y_i-f(x_i)) \). - -

    -Choosing \( f_0(x)=0 \) we obtain \( g_m(x) = -2y_i \) and inserting this into the minimization problem for the cost function we have -$$ -(\rho_1) = \mathrm{argmin}_{\rho}\hspace{0.1cm} \sum_{i=0}^{n-1}(y_i+2\rho y_i)^2. -$$ +and find a new value for \( \rho_2=-1/2 \) and continue till we have reached \( m=M \). We can modify the steepest descent method, or steepest boosting, by introducing what is called gradient boosting.

    @@ -244,7 +226,6 @@ $$

  • 30
  • 31
  • 32
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs026.html b/doc/pub/week45/html/._week45-bs026.html index 2597d985b..be848eb83 100644 --- a/doc/pub/week45/html/._week45-bs026.html +++ b/doc/pub/week45/html/._week45-bs026.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,22 +189,35 @@ MathJax.Hub.Config({ -

    Steepest Descent Example

    +

    Gradient Boosting, algorithm

    -Optimizing with respect to \( \rho \) we obtain (taking the derivative) that \( \rho_1 = -1/2 \). We have then that -$$ -f_1(x) = f_{0}(x) -\rho_1 g_1(x)=-y_i. -$$ - -We can then proceed and compute -$$ -g_2(x_i) = \left[ \frac{\partial {\cal L}(y_i, f(x_i))}{\partial f(x_i)}\right]_{f(x_i)=f_{1}(x_i)=y_i}=-4y_i, -$$ - -and find a new value for \( \rho_2=-1/2 \) and continue till we have reached \( m=M \). We can modify the steepest descent method, or steepest boosting, by introducing what is called gradient boosting. +Steepest descent is however not much used, since it only optimizes \( f \) at a fixed set of \( n \) points, +so we do not learn a function that can generalize. However, we can modify the algorithm by +fitting a weak learner to approximate the negative gradient signal.

    +Suppose we have a cost function \( C(f)=\sum_{i=0}^{n-1}L(y_i, f(x_i)) \) where \( y_i \) is our target and \( f(x_i) \) the function which is meant to model \( y_i \). The above cost function could be our standard squared-error function +$$ +C(\boldsymbol{y},\boldsymbol{f})=\sum_{i=0}^{n-1}(y_i-f(x_i))^2. +$$ + +

    +The way we proceed in an iterative fashion is to + +

      +
    1. Initialize our estimate \( f_0(x) \).
    2. +
    3. For \( m=1:M \), we + +
        +
      1. compute the negative gradient vector \( \boldsymbol{u}_m = -\partial C(\boldsymbol{y},\boldsymbol{f})/\partial \boldsymbol{f}(x) \) at \( f(x) = f_{m-1}(x) \);
      2. +
      3. fit the so-called base-learner to the negative gradient \( h_m(u_m,x) \);
      4. +
      5. update the estimate \( f_m(x) = f_{m-1}(x)+h_m(u_m,x) \);
      6. +
      + +
    4. The final estimate is then \( f_M(x) = \sum_{m=1}^M h_m(u_m,x) \).
    5. +
    +

    diff --git a/doc/pub/week45/html/._week45-bs027.html b/doc/pub/week45/html/._week45-bs027.html index b2d8221a3..78b890691 100644 --- a/doc/pub/week45/html/._week45-bs027.html +++ b/doc/pub/week45/html/._week45-bs027.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,35 +189,58 @@ MathJax.Hub.Config({ -

    Gradient Boosting, algorithm

    - +

    Gradient Boosting, Examples of Regression

    -Steepest descent is however not much used, since it only optimizes \( f \) at a fixed set of \( n \) points, -so we do not learn a function that can generalize. However, we can modify the algorithm by -fitting a weak learner to approximate the negative gradient signal. + +

    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn.model_selection import train_test_split
    +from sklearn.ensemble import GradientBoostingRegressor
    +from sklearn.preprocessing import StandardScaler
    +import scikitplot as skplt
    +from sklearn.metrics import mean_squared_error
    +
    +n = 100
    +maxdegree = 6
    +
    +# Make data set.
    +x = np.linspace(-3, 3, n).reshape(-1, 1)
    +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    +
    +error = np.zeros(maxdegree)
    +bias = np.zeros(maxdegree)
    +variance = np.zeros(maxdegree)
    +polydegree = np.zeros(maxdegree)
    +X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    +scaler = StandardScaler()
    +scaler.fit(X_train)
    +X_train_scaled = scaler.transform(X_train)
    +X_test_scaled = scaler.transform(X_test)
    +
    +for degree in range(1,maxdegree):
    +    model = GradientBoostingRegressor(max_depth=degree, n_estimators=100, learning_rate=1.0)  
    +    model.fit(X_train_scaled,y_train)
    +    y_pred = model.predict(X_test_scaled)
    +    polydegree[degree] = degree
    +    error[degree] = np.mean( np.mean((y_test - y_pred)**2) )
    +    bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )
    +    variance[degree] = np.mean( np.var(y_pred) )
    +    print('Max depth:', degree)
    +    print('Error:', error[degree])
    +    print('Bias^2:', bias[degree])
    +    print('Var:', variance[degree])
    +    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    +
    +plt.xlim(1,maxdegree-1)
    +plt.plot(polydegree, error, label='Error')
    +plt.plot(polydegree, bias, label='bias')
    +plt.plot(polydegree, variance, label='Variance')
    +plt.legend()
    +save_fig("gdregression")
    +plt.show()
    +

    -Suppose we have a cost function \( C(f)=\sum_{i=0}^{n-1}L(y_i, f(x_i)) \) where \( y_i \) is our target and \( f(x_i) \) the function which is meant to model \( y_i \). The above cost function could be our standard squared-error function -$$ -C(\boldsymbol{y},\boldsymbol{f})=\sum_{i=0}^{n-1}(y_i-f(x_i))^2. -$$ - -

    -The way we proceed in an iterative fashion is to - -

      -
    1. Initialize our estimate \( f_0(x) \).
    2. -
    3. For \( m=1:M \), we - -
        -
      1. compute the negative gradient vector \( \boldsymbol{u}_m = -\partial C(\boldsymbol{y},\boldsymbol{f})/\partial \boldsymbol{f}(x) \) at \( f(x) = f_{m-1}(x) \);
      2. -
      3. fit the so-called base-learner to the negative gradient \( h_m(u_m,x) \);
      4. -
      5. update the estimate \( f_m(x) = f_{m-1}(x)+\nu h_m(u_m,x) \);
      6. -
      - -
    4. The final estimate is then \( f_M(x) = \sum_{m=1}^M\nu h_m(u_m,x) \).
    5. -
    -

    diff --git a/doc/pub/week45/html/._week45-bs028.html b/doc/pub/week45/html/._week45-bs028.html index f2f492f43..283bfe1a3 100644 --- a/doc/pub/week45/html/._week45-bs028.html +++ b/doc/pub/week45/html/._week45-bs028.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,55 +189,49 @@ MathJax.Hub.Config({ -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Classification Example

    import matplotlib.pyplot as plt
     import numpy as np
    -from sklearn.model_selection import train_test_split
    -from sklearn.ensemble import GradientBoostingRegressor
    -from sklearn.preprocessing import StandardScaler
    +from sklearn.model_selection import  train_test_split 
    +from sklearn.datasets import load_breast_cancer
     import scikitplot as skplt
    -from sklearn.metrics import mean_squared_error
    +from sklearn.ensemble import GradientBoostingClassifier
    +from sklearn.model_selection import cross_validate
     
    -n = 100
    -maxdegree = 6
    +# Load the data
    +cancer = load_breast_cancer()
     
    -# Make data set.
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -
    -error = np.zeros(maxdegree)
    -bias = np.zeros(maxdegree)
    -variance = np.zeros(maxdegree)
    -polydegree = np.zeros(maxdegree)
    -X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)
    +print(X_train.shape)
    +print(X_test.shape)
    +#now scale the data
    +from sklearn.preprocessing import StandardScaler
     scaler = StandardScaler()
     scaler.fit(X_train)
     X_train_scaled = scaler.transform(X_train)
     X_test_scaled = scaler.transform(X_test)
     
    -for degree in range(1,maxdegree):
    -    model = GradientBoostingRegressor(max_depth=degree, n_estimators=100, learning_rate=1.0)  
    -    model.fit(X_train_scaled,y_train)
    -    y_pred = model.predict(X_test_scaled)
    -    polydegree[degree] = degree
    -    error[degree] = np.mean( np.mean((y_test - y_pred)**2) )
    -    bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )
    -    variance[degree] = np.mean( np.var(y_pred) )
    -    print('Max depth:', degree)
    -    print('Error:', error[degree])
    -    print('Bias^2:', bias[degree])
    -    print('Var:', variance[degree])
    -    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    +gd_clf = GradientBoostingClassifier(max_depth=3, n_estimators=100, learning_rate=1.0)  
    +gd_clf.fit(X_train_scaled, y_train)
    +#Cross validation
    +accuracy = cross_validate(gd_clf,X_test_scaled,y_test,cv=10)['test_score']
    +print(accuracy)
    +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(gd_clf.score(X_test_scaled,y_test)))
     
    -plt.xlim(1,maxdegree-1)
    -plt.plot(polydegree, error, label='Error')
    -plt.plot(polydegree, bias, label='bias')
    -plt.plot(polydegree, variance, label='Variance')
    -plt.legend()
    -save_fig("gdregression")
    +import scikitplot as skplt
    +y_pred = gd_clf.predict(X_test_scaled)
    +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
    +save_fig("gdclassiffierconfusion")
    +plt.show()
    +y_probas = gd_clf.predict_proba(X_test_scaled)
    +skplt.metrics.plot_roc(y_test, y_probas)
    +save_fig("gdclassiffierroc")
    +plt.show()
    +skplt.metrics.plot_cumulative_gain(y_test, y_probas)
    +save_fig("gdclassiffiercgain")
     plt.show()
     

    @@ -260,7 +253,6 @@ plt.show()

  • 30
  • 31
  • 32
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs029.html b/doc/pub/week45/html/._week45-bs029.html index 519f438e2..73bb055cd 100644 --- a/doc/pub/week45/html/._week45-bs029.html +++ b/doc/pub/week45/html/._week45-bs029.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,51 +189,24 @@ MathJax.Hub.Config({ -

    Gradient Boosting, Classification Example

    +

    XGBoost: Extreme Gradient Boosting

    +

    +XGBoost or Extreme Gradient +Boosting, is an optimized distributed gradient boosting library +designed to be highly efficient, flexible and portable. It implements +machine learning algorithms under the Gradient Boosting +framework. XGBoost provides a parallel tree boosting that solve many +data science problems in a fast and accurate way. See the article by Chen and Guestrin. - -

    import matplotlib.pyplot as plt
    -import numpy as np
    -from sklearn.model_selection import  train_test_split 
    -from sklearn.datasets import load_breast_cancer
    -import scikitplot as skplt
    -from sklearn.ensemble import GradientBoostingClassifier
    -from sklearn.model_selection import cross_validate
    +

    +The authors design and build a highly scalable end-to-end tree +boosting system. It has a theoretically justified weighted quantile +sketch for efficient proposal calculation. It introduces a novel sparsity-aware algorithm for parallel tree learning and an effective cache-aware block structure for out-of-core tree learning. -# Load the data -cancer = load_breast_cancer() +

    +It is now the algorithm which wins essentially all ML competitions!!! -X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0) -print(X_train.shape) -print(X_test.shape) -#now scale the data -from sklearn.preprocessing import StandardScaler -scaler = StandardScaler() -scaler.fit(X_train) -X_train_scaled = scaler.transform(X_train) -X_test_scaled = scaler.transform(X_test) - -gd_clf = GradientBoostingClassifier(max_depth=3, n_estimators=100, learning_rate=1.0) -gd_clf.fit(X_train_scaled, y_train) -#Cross validation -accuracy = cross_validate(gd_clf,X_test_scaled,y_test,cv=10)['test_score'] -print(accuracy) -print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(gd_clf.score(X_test_scaled,y_test))) - -import scikitplot as skplt -y_pred = gd_clf.predict(X_test_scaled) -skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) -save_fig("gdclassiffierconfusion") -plt.show() -y_probas = gd_clf.predict_proba(X_test_scaled) -skplt.metrics.plot_roc(y_test, y_probas) -save_fig("gdclassiffierroc") -plt.show() -skplt.metrics.plot_cumulative_gain(y_test, y_probas) -save_fig("gdclassiffiercgain") -plt.show() -

    @@ -253,7 +225,6 @@ plt.show()

  • 30
  • 31
  • 32
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs030.html b/doc/pub/week45/html/._week45-bs030.html index 917909f36..20016b5f9 100644 --- a/doc/pub/week45/html/._week45-bs030.html +++ b/doc/pub/week45/html/._week45-bs030.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,24 +189,58 @@ MathJax.Hub.Config({ -

    XGBoost: Extreme Gradient Boosting

    +

    Regression Case

    -XGBoost or Extreme Gradient -Boosting, is an optimized distributed gradient boosting library -designed to be highly efficient, flexible and portable. It implements -machine learning algorithms under the Gradient Boosting -framework. XGBoost provides a parallel tree boosting that solve many -data science problems in a fast and accurate way. See the article by Chen and Guestrin. -

    -The authors design and build a highly scalable end-to-end tree -boosting system. It has a theoretically justified weighted quantile -sketch for efficient proposal calculation. It introduces a novel sparsity-aware algorithm for parallel tree learning and an effective cache-aware block structure for out-of-core tree learning. + +

    import matplotlib.pyplot as plt
    +import numpy as np
    +from sklearn.model_selection import train_test_split
    +import xgboost as xgb
    +from sklearn.preprocessing import StandardScaler
    +import scikitplot as skplt
    +from sklearn.metrics import mean_squared_error
     
    -

    -It is now the algorithm which wins essentially all ML competitions!!! +n = 100 +maxdegree = 6 +# Make data set. +x = np.linspace(-3, 3, n).reshape(-1, 1) +y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape) + +error = np.zeros(maxdegree) +bias = np.zeros(maxdegree) +variance = np.zeros(maxdegree) +polydegree = np.zeros(maxdegree) +X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2) +scaler = StandardScaler() +scaler.fit(X_train) +X_train_scaled = scaler.transform(X_train) +X_test_scaled = scaler.transform(X_test) + +for degree in range(maxdegree): + model = xgb.XGBRegressor(objective ='reg:squarederror', colsaobjective ='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1,max_depth = degree, alpha = 10, n_estimators = 200) + + model.fit(X_train_scaled,y_train) + y_pred = model.predict(X_test_scaled) + polydegree[degree] = degree + error[degree] = np.mean( np.mean((y_test - y_pred)**2) ) + bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 ) + variance[degree] = np.mean( np.var(y_pred) ) + print('Max depth:', degree) + print('Error:', error[degree]) + print('Bias^2:', bias[degree]) + print('Var:', variance[degree]) + print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree])) + +plt.xlim(1,maxdegree-1) +plt.plot(polydegree, error, label='Error') +plt.plot(polydegree, bias, label='bias') +plt.plot(polydegree, variance, label='Variance') +plt.legend() +plt.show() +

    @@ -225,7 +258,6 @@ It is now the algorithm which wins essentially all ML competitions!!!

  • 30
  • 31
  • 32
  • -
  • 33
  • »
  • diff --git a/doc/pub/week45/html/._week45-bs031.html b/doc/pub/week45/html/._week45-bs031.html index 0f83fe67c..9a5e1fa60 100644 --- a/doc/pub/week45/html/._week45-bs031.html +++ b/doc/pub/week45/html/._week45-bs031.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -190,59 +189,67 @@ MathJax.Hub.Config({ -

    Regression Case

    +

    Xgboost on the Cancer Data

    +

    +As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now.

    import matplotlib.pyplot as plt
     import numpy as np
    -from sklearn.model_selection import train_test_split
    -import xgboost as xgb
    -from sklearn.preprocessing import StandardScaler
    +from sklearn.model_selection import  train_test_split 
    +from sklearn.datasets import load_breast_cancer
    +from sklearn.preprocessing import LabelEncoder
    +from sklearn.model_selection import cross_validate
     import scikitplot as skplt
    -from sklearn.metrics import mean_squared_error
    +import xgboost as xgb
    +# Load the data
    +cancer = load_breast_cancer()
     
    -n = 100
    -maxdegree = 6
    -
    -# Make data set.
    -x = np.linspace(-3, 3, n).reshape(-1, 1)
    -y = np.exp(-x**2) + 1.5 * np.exp(-(x-2)**2)+ np.random.normal(0, 0.1, x.shape)
    -
    -error = np.zeros(maxdegree)
    -bias = np.zeros(maxdegree)
    -variance = np.zeros(maxdegree)
    -polydegree = np.zeros(maxdegree)
    -X_train, X_test, y_train, y_test = train_test_split(x, y, test_size=0.2)
    +X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)
    +print(X_train.shape)
    +print(X_test.shape)
    +#now scale the data
    +from sklearn.preprocessing import StandardScaler
     scaler = StandardScaler()
     scaler.fit(X_train)
     X_train_scaled = scaler.transform(X_train)
     X_test_scaled = scaler.transform(X_test)
     
    -for degree in range(maxdegree):
    -    model =  xgb.XGBRegressor(objective ='reg:squarederror', colsaobjective ='reg:squarederror', colsample_bytree = 0.3, learning_rate = 0.1,max_depth = degree, alpha = 10, n_estimators = 200)
    +xg_clf = xgb.XGBClassifier()
    +xg_clf.fit(X_train_scaled,y_train)
     
    -    model.fit(X_train_scaled,y_train)
    -    y_pred = model.predict(X_test_scaled)
    -    polydegree[degree] = degree
    -    error[degree] = np.mean( np.mean((y_test - y_pred)**2) )
    -    bias[degree] = np.mean( (y_test - np.mean(y_pred))**2 )
    -    variance[degree] = np.mean( np.var(y_pred) )
    -    print('Max depth:', degree)
    -    print('Error:', error[degree])
    -    print('Bias^2:', bias[degree])
    -    print('Var:', variance[degree])
    -    print('{} >= {} + {} = {}'.format(error[degree], bias[degree], variance[degree], bias[degree]+variance[degree]))
    +y_test = xg_clf.predict(X_test_scaled)
     
    -plt.xlim(1,maxdegree-1)
    -plt.plot(polydegree, error, label='Error')
    -plt.plot(polydegree, bias, label='bias')
    -plt.plot(polydegree, variance, label='Variance')
    -plt.legend()
    +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(xg_clf.score(X_test_scaled,y_test)))
    +
    +import scikitplot as skplt
    +y_pred = xg_clf.predict(X_test_scaled)
    +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
    +save_fig("xdclassiffierconfusion")
    +plt.show()
    +y_probas = xg_clf.predict_proba(X_test_scaled)
    +skplt.metrics.plot_roc(y_test, y_probas)
    +save_fig("xdclassiffierroc")
    +plt.show()
    +skplt.metrics.plot_cumulative_gain(y_test, y_probas)
    +save_fig("gdclassiffiercgain")
    +plt.show()
    +
    +
    +xgb.plot_tree(xg_clf,num_trees=0)
    +plt.rcParams['figure.figsize'] = [50, 10]
    +save_fig("xgtree")
    +plt.show()
    +
    +xgb.plot_importance(xg_clf)
    +plt.rcParams['figure.figsize'] = [5, 5]
    +save_fig("xgparams")
     plt.show()
     

    +

    diff --git a/doc/pub/week45/html/week45-bs.html b/doc/pub/week45/html/week45-bs.html index 66ca17b1f..e7b68b882 100644 --- a/doc/pub/week45/html/week45-bs.html +++ b/doc/pub/week45/html/week45-bs.html @@ -84,28 +84,28 @@ Automatically generated HTML file from DocOnce source '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -165,16 +165,15 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Additive boosting for Regression
  • -
  • Gradient boosting: Basics with Steepest Descent
  • -
  • The Squared-Error again! Steepest Descent
  • -
  • Steepest Descent Example
  • -
  • Gradient Boosting, algorithm
  • -
  • Gradient Boosting, Examples of Regression
  • -
  • Gradient Boosting, Classification Example
  • -
  • XGBoost: Extreme Gradient Boosting
  • -
  • Regression Case
  • -
  • Xgboost on the Cancer Data
  • +
  • Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Steepest Descent Example
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -209,7 +208,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 6, 2020

    +

    Nov 12, 2020


    @@ -233,7 +232,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 33
  • +
  • 32
  • »
  • diff --git a/doc/pub/week45/html/week45-reveal.html b/doc/pub/week45/html/week45-reveal.html index dce2a4a7c..84f0ff983 100644 --- a/doc/pub/week45/html/week45-reveal.html +++ b/doc/pub/week45/html/week45-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

     
    -

    Nov 6, 2020

    +

    Nov 12, 2020


    @@ -1007,36 +1007,7 @@ plt.show()

    -

    Additive boosting for Regression

    - -

    -Here we present Drucker's AdaBoost tailored for regression. - -

    -In bagging, each training example is equally likely to be -picked. In boosting, the probability of a particular -example being in the training set of a particular machine -depends on the performance of the prior machines on -that example. The following is a modification of -Adaboost by Drucker. - -

    -Start by selecting a set of training data \( n \) and assign to each entry a weight \( w_i=1 \) for \( i=1,2,\dots,n \). As we have done earlier, we could pick say \( 80\% \) of the data set for training. The algorithm runs as follows: - -

      -

    1. We define the probability that the training sample \( i \) is in the set by \( p_i = w_i/\sum_iw_i \). We pick \( n \) samples (with replacement) to form our training set. We pick a number uniformly in the range \( [0,\sum_iw_i] \).
    2. -

    3. We choose then a regression machine (for example plain linear regression or a simple decision tree). A given regression machine makes then a hypothesis.
    4. -

    5. Using every member of the training set with the chosen regression machine we obtain then a prediction \( \tilde{y}_i \).
    6. -

    7. We calculate then the loss function \( L_i \) for each training sample. We can use various types of loss function as long as we have a value
    8. -
    -

    - -\( L_i\in [0,1] \). -

    - - -
    -

    Gradient boosting: Basics with Steepest Descent

    +

    Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -1051,7 +1022,7 @@ function was the least squares function.

    -

    The Squared-Error again! Steepest Descent

    +

    The Squared-Error again! Steepest Descent

    We start again with our cost function \( {\cal C}(\boldsymbol{y}m\boldsymbol{f})=\sum_{i=0}^{n-1}{\cal L}(y_i, f(x_i)) \) where we want to minimize @@ -1094,7 +1065,7 @@ $$

    -

    Steepest Descent Example

    +

    Steepest Descent Example

    Optimizing with respect to \( \rho \) we obtain (taking the derivative) that \( \rho_1 = -1/2 \). We have then that @@ -1116,7 +1087,7 @@ and find a new value for \( \rho_2=-1/2 \) and continue till we have reached \(

    -

    Gradient Boosting, algorithm

    +

    Gradient Boosting, algorithm

    Steepest descent is however not much used, since it only optimizes \( f \) at a fixed set of \( n \) points, @@ -1141,15 +1112,15 @@ The way we proceed in an iterative fashion is to

    1. compute the negative gradient vector \( \boldsymbol{u}_m = -\partial C(\boldsymbol{y},\boldsymbol{f})/\partial \boldsymbol{f}(x) \) at \( f(x) = f_{m-1}(x) \);
    2. fit the so-called base-learner to the negative gradient \( h_m(u_m,x) \);
    3. -

    4. update the estimate \( f_m(x) = f_{m-1}(x)+\nu h_m(u_m,x) \);
    5. +

    6. update the estimate \( f_m(x) = f_{m-1}(x)+h_m(u_m,x) \);
    -

  • The final estimate is then \( f_M(x) = \sum_{m=1}^M\nu h_m(u_m,x) \).
  • +

  • The final estimate is then \( f_M(x) = \sum_{m=1}^M h_m(u_m,x) \).
  • -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Examples of Regression

    @@ -1204,7 +1175,7 @@ plt.show()

    -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Classification Example

    @@ -1253,7 +1224,7 @@ plt.show()

    -

    XGBoost: Extreme Gradient Boosting

    +

    XGBoost: Extreme Gradient Boosting

    XGBoost or Extreme Gradient @@ -1274,7 +1245,7 @@ It is now the algorithm which wins essentially all ML competitions!!!

    -

    Regression Case

    +

    Regression Case

    @@ -1330,7 +1301,7 @@ plt.show()

    -

    Xgboost on the Cancer Data

    +

    Xgboost on the Cancer Data

    As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now. diff --git a/doc/pub/week45/html/week45-solarized.html b/doc/pub/week45/html/week45-solarized.html index d0c53209e..8bac88399 100644 --- a/doc/pub/week45/html/week45-solarized.html +++ b/doc/pub/week45/html/week45-solarized.html @@ -78,28 +78,28 @@ div { text-align: justify; text-justify: inter-word; } '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -141,7 +141,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 6, 2020

    +

    Nov 12, 2020












    @@ -932,35 +932,7 @@ plt.show()











    -

    Additive boosting for Regression

    - -

    -Here we present Drucker's AdaBoost tailored for regression. - -

    -In bagging, each training example is equally likely to be -picked. In boosting, the probability of a particular -example being in the training set of a particular machine -depends on the performance of the prior machines on -that example. The following is a modification of -Adaboost by Drucker. - -

    -Start by selecting a set of training data \( n \) and assign to each entry a weight \( w_i=1 \) for \( i=1,2,\dots,n \). As we have done earlier, we could pick say \( 80\% \) of the data set for training. The algorithm runs as follows: - -

      -
    1. We define the probability that the training sample \( i \) is in the set by \( p_i = w_i/\sum_iw_i \). We pick \( n \) samples (with replacement) to form our training set. We pick a number uniformly in the range \( [0,\sum_iw_i] \).
    2. -
    3. We choose then a regression machine (for example plain linear regression or a simple decision tree). A given regression machine makes then a hypothesis.
    4. -
    5. Using every member of the training set with the chosen regression machine we obtain then a prediction \( \tilde{y}_i \).
    6. -
    7. We calculate then the loss function \( L_i \) for each training sample. We can use various types of loss function as long as we have a value
    8. -
    - -\( L_i\in [0,1] \). - -

    -









    - -

    Gradient boosting: Basics with Steepest Descent

    +

    Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -975,7 +947,7 @@ function was the least squares function.











    -

    The Squared-Error again! Steepest Descent

    +

    The Squared-Error again! Steepest Descent

    We start again with our cost function \( {\cal C}(\boldsymbol{y}m\boldsymbol{f})=\sum_{i=0}^{n-1}{\cal L}(y_i, f(x_i)) \) where we want to minimize @@ -1010,7 +982,7 @@ $$











    -

    Steepest Descent Example

    +

    Steepest Descent Example

    Optimizing with respect to \( \rho \) we obtain (taking the derivative) that \( \rho_1 = -1/2 \). We have then that @@ -1028,7 +1000,7 @@ and find a new value for \( \rho_2=-1/2 \) and continue till we have reached \(











    -

    Gradient Boosting, algorithm

    +

    Gradient Boosting, algorithm

    Steepest descent is however not much used, since it only optimizes \( f \) at a fixed set of \( n \) points, @@ -1051,15 +1023,15 @@ The way we proceed in an iterative fashion is to

    1. compute the negative gradient vector \( \boldsymbol{u}_m = -\partial C(\boldsymbol{y},\boldsymbol{f})/\partial \boldsymbol{f}(x) \) at \( f(x) = f_{m-1}(x) \);
    2. fit the so-called base-learner to the negative gradient \( h_m(u_m,x) \);
    3. -
    4. update the estimate \( f_m(x) = f_{m-1}(x)+\nu h_m(u_m,x) \);
    5. +
    6. update the estimate \( f_m(x) = f_{m-1}(x)+h_m(u_m,x) \);
    -
  • The final estimate is then \( f_M(x) = \sum_{m=1}^M\nu h_m(u_m,x) \).
  • +
  • The final estimate is then \( f_M(x) = \sum_{m=1}^M h_m(u_m,x) \).










  • -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Examples of Regression

    @@ -1113,7 +1085,7 @@ plt.show()











    -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Classification Example

    @@ -1161,7 +1133,7 @@ plt.show()











    -

    XGBoost: Extreme Gradient Boosting

    +

    XGBoost: Extreme Gradient Boosting

    XGBoost or Extreme Gradient @@ -1182,7 +1154,7 @@ It is now the algorithm which wins essentially all ML competitions!!!











    -

    Regression Case

    +

    Regression Case

    @@ -1237,7 +1209,7 @@ plt.show()











    -

    Xgboost on the Cancer Data

    +

    Xgboost on the Cancer Data

    As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now. diff --git a/doc/pub/week45/html/week45.html b/doc/pub/week45/html/week45.html index 2419732b3..920dd8dce 100644 --- a/doc/pub/week45/html/week45.html +++ b/doc/pub/week45/html/week45.html @@ -83,28 +83,28 @@ div { text-align: justify; text-justify: inter-word; } '___sec19'), ('Basic Steps of AdaBoost', 2, None, '___sec20'), ('AdaBoost Examples', 2, None, '___sec21'), - ('Additive boosting for Regression', 2, None, '___sec22'), - ('Gradient boosting: Basics with Steepest Descent', + ('Gradient boosting: Basics with Steepest Descent/Functional ' + 'Gradient Descent', 2, None, - '___sec23'), + '___sec22'), ('The Squared-Error again! Steepest Descent', 2, None, - '___sec24'), - ('Steepest Descent Example', 2, None, '___sec25'), - ('Gradient Boosting, algorithm', 2, None, '___sec26'), + '___sec23'), + ('Steepest Descent Example', 2, None, '___sec24'), + ('Gradient Boosting, algorithm', 2, None, '___sec25'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec27'), + '___sec26'), ('Gradient Boosting, Classification Example', 2, None, - '___sec28'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec29'), - ('Regression Case', 2, None, '___sec30'), - ('Xgboost on the Cancer Data', 2, None, '___sec31')]} + '___sec27'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec28'), + ('Regression Case', 2, None, '___sec29'), + ('Xgboost on the Cancer Data', 2, None, '___sec30')]} end of tocinfo --> @@ -146,7 +146,7 @@ MathJax.Hub.Config({

    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 6, 2020

    +

    Nov 12, 2020












    @@ -937,35 +937,7 @@ plt.show()











    -

    Additive boosting for Regression

    - -

    -Here we present Drucker's AdaBoost tailored for regression. - -

    -In bagging, each training example is equally likely to be -picked. In boosting, the probability of a particular -example being in the training set of a particular machine -depends on the performance of the prior machines on -that example. The following is a modification of -Adaboost by Drucker. - -

    -Start by selecting a set of training data \( n \) and assign to each entry a weight \( w_i=1 \) for \( i=1,2,\dots,n \). As we have done earlier, we could pick say \( 80\% \) of the data set for training. The algorithm runs as follows: - -

      -
    1. We define the probability that the training sample \( i \) is in the set by \( p_i = w_i/\sum_iw_i \). We pick \( n \) samples (with replacement) to form our training set. We pick a number uniformly in the range \( [0,\sum_iw_i] \).
    2. -
    3. We choose then a regression machine (for example plain linear regression or a simple decision tree). A given regression machine makes then a hypothesis.
    4. -
    5. Using every member of the training set with the chosen regression machine we obtain then a prediction \( \tilde{y}_i \).
    6. -
    7. We calculate then the loss function \( L_i \) for each training sample. We can use various types of loss function as long as we have a value
    8. -
    - -\( L_i\in [0,1] \). - -

    -









    - -

    Gradient boosting: Basics with Steepest Descent

    +

    Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -980,7 +952,7 @@ function was the least squares function.











    -

    The Squared-Error again! Steepest Descent

    +

    The Squared-Error again! Steepest Descent

    We start again with our cost function \( {\cal C}(\boldsymbol{y}m\boldsymbol{f})=\sum_{i=0}^{n-1}{\cal L}(y_i, f(x_i)) \) where we want to minimize @@ -1015,7 +987,7 @@ $$











    -

    Steepest Descent Example

    +

    Steepest Descent Example

    Optimizing with respect to \( \rho \) we obtain (taking the derivative) that \( \rho_1 = -1/2 \). We have then that @@ -1033,7 +1005,7 @@ and find a new value for \( \rho_2=-1/2 \) and continue till we have reached \(











    -

    Gradient Boosting, algorithm

    +

    Gradient Boosting, algorithm

    Steepest descent is however not much used, since it only optimizes \( f \) at a fixed set of \( n \) points, @@ -1056,15 +1028,15 @@ The way we proceed in an iterative fashion is to

    1. compute the negative gradient vector \( \boldsymbol{u}_m = -\partial C(\boldsymbol{y},\boldsymbol{f})/\partial \boldsymbol{f}(x) \) at \( f(x) = f_{m-1}(x) \);
    2. fit the so-called base-learner to the negative gradient \( h_m(u_m,x) \);
    3. -
    4. update the estimate \( f_m(x) = f_{m-1}(x)+\nu h_m(u_m,x) \);
    5. +
    6. update the estimate \( f_m(x) = f_{m-1}(x)+h_m(u_m,x) \);
    -
  • The final estimate is then \( f_M(x) = \sum_{m=1}^M\nu h_m(u_m,x) \).
  • +
  • The final estimate is then \( f_M(x) = \sum_{m=1}^M h_m(u_m,x) \).










  • -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Examples of Regression

    @@ -1118,7 +1090,7 @@ plt.show()











    -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Classification Example

    @@ -1166,7 +1138,7 @@ plt.show()











    -

    XGBoost: Extreme Gradient Boosting

    +

    XGBoost: Extreme Gradient Boosting

    XGBoost or Extreme Gradient @@ -1187,7 +1159,7 @@ It is now the algorithm which wins essentially all ML competitions!!!











    -

    Regression Case

    +

    Regression Case

    @@ -1242,7 +1214,7 @@ plt.show()











    -

    Xgboost on the Cancer Data

    +

    Xgboost on the Cancer Data

    As you will see from the confusion matrix below, XGBoots does an excellent job on the Wisconsin cancer data and outperforms essentially all agorithms we have discussed till now. diff --git a/doc/pub/week45/ipynb/ipynb-week45-src.tar.gz b/doc/pub/week45/ipynb/ipynb-week45-src.tar.gz index 123bc0208..6c4948678 100644 Binary files a/doc/pub/week45/ipynb/ipynb-week45-src.tar.gz and b/doc/pub/week45/ipynb/ipynb-week45-src.tar.gz differ diff --git a/doc/pub/week45/ipynb/week45.ipynb b/doc/pub/week45/ipynb/week45.ipynb index 316a9c68a..60faab4e4 100644 --- a/doc/pub/week45/ipynb/week45.ipynb +++ b/doc/pub/week45/ipynb/week45.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Nov 6, 2020**\n", + "Date: **Nov 12, 2020**\n", "\n", "Copyright 1999-2020, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -77,7 +77,9 @@ { "cell_type": "code", "execution_count": 1, - "metadata": {}, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "%matplotlib inline\n", @@ -131,21 +133,10 @@ { "cell_type": "code", "execution_count": 2, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "

    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "\n", "# Common imports\n", @@ -184,23 +175,10 @@ { "cell_type": "code", "execution_count": 3, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.872\n", - "SVC 0.888\n", - "VotingClassifier 0.896\n", - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.872\n", - "SVC 0.888\n", - "VotingClassifier 0.912\n" - ] - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import make_moons\n", @@ -256,21 +234,10 @@ { "cell_type": "code", "execution_count": 4, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", - " ('rf', RandomForestClassifier(random_state=42)),\n", - " ('svc', SVC(random_state=42))])" - ] - }, - "execution_count": 4, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import make_moons\n", @@ -295,19 +262,10 @@ { "cell_type": "code", "execution_count": 5, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.896\n", - "SVC 0.896\n", - "VotingClassifier 0.912\n" - ] - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", @@ -320,22 +278,10 @@ { "cell_type": "code", "execution_count": 6, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "VotingClassifier(estimators=[('lr', LogisticRegression(random_state=42)),\n", - " ('rf', RandomForestClassifier(random_state=42)),\n", - " ('svc', SVC(probability=True, random_state=42))],\n", - " voting='soft')" - ] - }, - "execution_count": 6, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "log_clf = LogisticRegression(random_state=42)\n", "rnd_clf = RandomForestClassifier(random_state=42)\n", @@ -350,19 +296,10 @@ { "cell_type": "code", "execution_count": 7, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.896\n", - "SVC 0.896\n", - "VotingClassifier 0.92\n" - ] - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", @@ -449,82 +386,10 @@ { "cell_type": "code", "execution_count": 8, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(426, 30)\n", - "(143, 30)\n", - "Test set accuracy with Logistic Regression: 0.95\n", - "Test set accuracy with SVM: 0.63\n", - "Test set accuracy with Decision Trees: 0.89\n", - "Test set accuracy Logistic Regression with scaled data: 0.96\n", - "Test set accuracy SVM with scaled data: 0.96\n", - "Test set accuracy with Decision Trees and scaled data: 0.89\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/linear_model/_logistic.py:762: ConvergenceWarning: lbfgs failed to converge (status=1):\n", - "STOP: TOTAL NO. of ITERATIONS REACHED LIMIT.\n", - "\n", - "Increase the number of iterations (max_iter) or scale the data as shown in:\n", - " https://scikit-learn.org/stable/modules/preprocessing.html\n", - "Please also refer to the documentation for alternative solver options:\n", - " https://scikit-learn.org/stable/modules/linear_model.html#logistic-regression\n", - " extra_warning_msg=_LOGISTIC_SOLVER_CONVERGENCE_MSG)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[1. 0.73333333 0.93333333 1. 1. 0.92857143\n", - " 1. 0.92857143 0.92857143 1. ]\n", - "Test set accuracy with Random Forests and scaled data: 0.98\n" - ] - }, - { - "data": { - "image/png": "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YBgzHvouL42/gm+eddgGx3t268z915/LlPv/g7+O/Sa77Nh33bGvjjmUZ3/3baaN+09++6Mz2bST/61pC09OeILdhw9h+NDB/PTaH29wPCK47NJLGD50MCP32p3npk8HYMGCBRz+uUPZc7dh7L3HcG7875+3ddHbldaabF9qJQ1wkkZJmi1prqTLS3mutlZVJW64/CSOu/hm9jrhGkaP2oehg7ZZL823zj6cGbMXsu/JP+Ls747lun87EYB+vXtw4akHc+CYaxkx+odUV1Ux+vB9ynEZHUp9fT2XXnIR4x95nOdemMW4++7l5Vmz1ksz4YnH+cfcV3np5Ve58ZbbueTiCwCoqanhx9dez/Mvvsz/TZrMbbfetMFrO4pCg1umA5ykapKVAo4guRnvVEl5J8dWipG7bs8/FixjXu1yPlpTz7gJ0zn6kN3XSzN00DZMnDIbgDnzlrBdv15s3SuZhVJTXU3nTTehurqKzpt1YvHSxjNWrLVNnTKFHXcczA6DBtGpUydGn3wKf3xk/Hpp/vjweE774peQxH7778+KFe+yePFi+vbty1577w1At27dGDp0GIsW1ZbjMtqFDh/ggH2Buens/9Ukk2WPK+H52lS/rXuwcMk767Zrl7xD/9491kvz4pxajvvsngCMGL4dA/v2on+fnixauoIb7nyKOY9fzet/+gHv1a3iqcmvtGn5O6JFi2oZMGDbddv9+w+gtrY2b5pFjdLMnzeP559/jpH77lfaArdjqlJBj3IrZYDrTzIhtsHCdN96JH2lYaWBWLOqhMVpXWqilzUabV/36z/Rs1sXJt93OReccjAzZi9kTf1aenbrzNGH7Mawo69g0Oe/TdfOnTjlyJFtU/AOLKLxJ7ThaGC+NHV1dZx60gn89Pob6N698TTKjqNSanCl7Nlu6uo2+PZExO3A7QBVXbbe8NvVTtW+9S4D+myxbrt/ny1Y1KiZ+f7KDznv+3et237l0SuZV7ucwz41jHmLlrPsnToA/vDnGey/xw7c99jUtil8B9W//wAWLvz439za2oX069cvb5q+aZqPPvqIU086gZNPHcPxX/jXtil0e6TKuU2klDW4hSQz/xsMABaV8HxtatrM+Qwe2Jvt+m3JJjXVjD58bx6d+MJ6aXps3plNaqoBOOsLBzBp+lzeX/khC958m31324HOm20CwKH7DmH260va/Bo6mhEjRzJ37qvMe/11Vq9ezbj77+Ooo49dL81RxxzLPXfdSUTw98mT6d69B3379iUiOP/csxkydBhf+/plZbqC9kGAVNij3EpZg5sK7CRpB6AWOAVocr31SlRfv5av/+QBHrn5IqqrxG/HT+bl197knBP/BYA7fjeJoYO24Y6rT6e+fi2vvPYm5195NwBTX5rPQ//vOZ65599ZU7+WGa8s5Je/f7qcl9Mh1NTU8LOf38gxRx1OfX09Z5z5ZXYZPpxf3HYrAOeedz6jjjiSCY8/xvChg+nSuQu33fFrAP729NPcc/dYdt11N/bbJ+lXvfKaHzLqiCPLdj3l0z6an4VQU30OrZa5dCRwA1AN/CoiftBS+qouW8emQ04qWXms9b0z9cZyF8GKcOB+I3j22WkbFZ0222bn2O6M/yko7ZxrRz3bwoKXJVfSu0sj4jHgsVKew8zaWDtpfhbCt8+bWVFEcqN7JXCAM7OiuQZnZplVKYMMDnBmVhz3wZlZVgl5wUszyy7X4Mwss9wHZ2bZ5D44M8uqZC5qZUQ4BzgzK1qFxDcHODMrnmcymFk2VdB6cA5wZlaUhvXgKoEDnJkVqXLWg3OAM7OiVUh8c4AzsyLJgwxmllG+D87MMs0Bzswyq0LimwOcmRXPNTgzyyZPtjezrEoWvKyMCFcZy3KaWbtSJRX0yEdSL0kPSVopab6kZn8cXtIgSX+U9L6kZZKuzZe/a3BmVrRWbKLeBKwG+gB7Ao9KmhERM9c/nzoBf0rTnwzUAzvny9wBzsyKolaabC+pK3ACsGtE1AGTJD0MnA5c3ij5mcCiiPivnH0v5DuHm6hmVrQqFfYAtpI0LefxlZxsdgbqI2JOzr4ZwPAmTrk/ME/S42nzdKKk3fKVs9kanKT/AaK54xFxSb7MzSybihhkWBYRI5o5tjmwotG+FUC3JtIOAA4FjgWeAr4GjJc0NCJWN3fylpqo01o4ZmYdlEhGUltBHdC90b7uwPtNpF0FTIqIxwEkXQd8BxhGUutrUrMBLiJ+m7stqWtErCys3GaWZa10l8gcoEbSThHxarpvD2BmE2lfAA4s9gR5++AkfUrSLODldHsPSTcXeyIzywgl68EV8mhJWmF6ELhKUldJBwLHAWObSH4XsL+kz0mqBi4FlpHGpeYUMshwA3A4sDwt1AzgoAJeZ2YZJRX2KMCFQGfgLeBe4IKImClpoKQ6SQMBImI28EXgVuAdkkB4bEv9b1DgbSIRsaBRNK4vqOhmljmCgm7iLUREvA0c38T+N0gGIXL3PUhS4ytYIQFugaQDgEhvtruEPNVCM8u2LE3VOh+4COgP1JLcbXxRKQtlZu1Xoc3T9jAhP28NLiKWAWPaoCxmViFaq4laaoWMog6S9IikpZLekjRe0qC2KJyZtU8q8FFuhTRR7wEeAPoC/YBxJKMdZtZBtcZtIm2hkACniBgbEWvSx120MIXLzLItGUUteC5qWbU0F7VX+vR/JV0O3EcS2E4GHm2DsplZe6TKWfCypUGGZ0kCWsOVnJdzLICrS1UoM2vf2kPzsxAtzUXdoS0LYmaVoaGJWgkKmskgaVdgF2Czhn0RcWepCmVm7VvF1+AaSLoCOIQkwD0GHAFMAhzgzDqoyghvhY2ingh8FngzIs4iWc5k05KWyszaLQmqq1TQo9wKaaKuioi1ktZI6k4y6983+pp1YJlpogLTJPUEfkEysloHTClpqcysXauQ+FbQXNQL06e3SnoC6B4ReX/NxsyySRT2m6ftQUs3+u7d0rGImF6aIplZu9ZOVgopREs1uOtbOBbAZ1q5LOw1bCBP//3G1s7WSmiLkReXuwhWhH/OfqNV8qn4PriIOLQtC2JmlUFAdaUHODOz5rSDO0AK4gBnZkVzgDOzTEqWI6+MCFfIir6S9EVJ30u3B0rat/RFM7P2qlLWgytkqtbNwKeAU9Pt94GbSlYiM2v3MvOjM8B+EbG3pOcAIuKd9OcDzawDElDTHqJXAQoJcB9JqiZdplxSb2BtSUtlZu1ahcS3ggLcfwMPAVtL+gHJ6iLfKWmpzKzdkjIwVatBRNwt6VmSJZMEHB8R/mV7sw6sQuJbQQteDgQ+AB7J3RcRrTPnw8wqTnsYIS1EIU3UR/n4x2c2A3YAZgPDS1guM2unBO1iMctCFNJE3S13O11l5LxmkptZ1rWTe9wKUfRMhoiYLmlkKQpjZpVBFfKrDIX0wV2Ws1kF7A0sLVmJzKxdy9rPBnbLeb6GpE/u96UpjplVgkwEuPQG380j4t/aqDxmVgEqZbJ9S0uW10TEmpaWLjezjif52cByl6IwLdXgppD0tz0v6WFgHLCy4WBEPFjisplZO1UpMxkKicO9gOUkv8FwNHBM+n8z64AaBhlaY7kkSb0kPSRppaT5kk4r4DV/lhSS8o4htJRg63QE9SU+vtG3QeQtuZllVitW4G4CVgN9gD2BRyXNiIiZTZ9XYyji9raWElYDm0OTN7w4wJl1WKKqFe6Dk9QVOAHYNSLqgElpd9jpwOVNpO8BXAF8CXimkHO0FOAWR8RVRZfazDJNFFWD20rStJzt2yPi9vT5zkB9RMzJOT4DOLiZvH4I3AK8WejJWwpwldGLaGZtS1BT+I1wyyJiRDPHNgdWNNq3gvXvvU1OKY0ADgS+Bgwo9OQtBbjPFpqJmXUcRdbgWlIHdG+0rzvJzyJ8fD6piuSnE76W3rpW8AmaHUWNiLcLL6eZdSRV6aKX+R55zAFqJO2Us28PoPEAQ3dgBHC/pDeBqen+hZI+3dIJ/LOBZla01qjBRcRKSQ8CV0k6h2QU9TjggEZJVwD9cra3JblPdx/yzIt3gDOzoojCbqAt0IXAr4C3SO63vSAiZqYL7c4CdkkX1103sCBps/TpkohY01LmDnBmVhy13kyGtCvs+Cb2v0EyCNHUa+ZR4CCoA5yZFSWZyVAZN1k4wJlZ0SojvDnAmdknUCEVOAc4MyuWKn89ODOzprTyKGpJOcCZWdE8yGBm2aQMLFluZtYUN1HNLNNcgzOzzKqM8OYAZ2ZFElDtGpyZZVWFxDcHODMrllCFNFId4MysaK7BmVkmJbeJVEaEc4Azs+LINTgzyzBP1TKzTEoWvCx3KQrjAGdmRfMoqpllVoW0UCtmzmy79OSEJ9h9+BCGDx3MT6/98QbHI4LLLr2E4UMHM3Kv3Xlu+nQAFixYwOGfO5Q9dxvG3nsM58b//nlbF73DOuyAYcx46Lu8NP4KvnnWYRsc79mtM/dffy5T7v8P/jr2m+yyY991x7465lCe/d23mTbuP/ntj85k004dt36gAv8rt5IFOEm/kvSWpJdKdY5yqq+v59JLLmL8I4/z3AuzGHffvbw8a9Z6aSY88Tj/mPsqL738KjfecjuXXHwBADU1Nfz42ut5/sWX+b9Jk7nt1ps2eK21vqoqccPlJ3HcxTez1wnXMHrUPgwdtM16ab519uHMmL2QfU/+EWd/dyzX/duJAPTr3YMLTz2YA8dcy4jRP6S6qorRh+9Tjssou4Y+uEIe5VbKGtxvgFElzL+spk6Zwo47DmaHQYPo1KkTo08+hT8+Mn69NH98eDynffFLSGK//fdnxYp3Wbx4MX379mWvvfcGoFu3bgwdOoxFi2rLcRkdyshdt+cfC5Yxr3Y5H62pZ9yE6Rx9yO7rpRk6aBsmTpkNwJx5S9iuXy+27tUNgJrqajpvugnV1VV03qwTi5euaPNraBcK/FX79jDSWrIAFxF/Ad4uVf7ltmhRLQMGbLtuu3//AdTW1uZNs6hRmvnz5vH8888xct/9Sltgo9/WPVi45J1127VL3qF/7x7rpXlxTi3HfXZPAEYM346BfXvRv09PFi1dwQ13PsWcx6/m9T/9gPfqVvHU5FfatPztiQp8lFvZ++AkfUXSNEnTli5bWu7iFCwiNtjXeI2sfGnq6uo49aQT+On1N9C9e/fWL6Stp6k+ocaf0HW//hM9u3Vh8n2Xc8EpBzNj9kLW1K+lZ7fOHH3Ibgw7+goGff7bdO3ciVOOHNk2BW9nGn4XtRJqcGXvJY2I24HbAfbZZ8SGEaGd6t9/AAsXLli3XVu7kH79+uVN0zdN89FHH3HqSSdw8qljOP4L/9o2he7gat96lwF9tli33b/PFixq1Mx8f+WHnPf9u9Ztv/LolcyrXc5hnxrGvEXLWfZOHQB/+PMM9t9jB+57bGrbFL6dKX/oKkzZa3CVasTIkcyd+yrzXn+d1atXM+7++zjq6GPXS3PUMcdyz113EhH8ffJkunfvQd++fYkIzj/3bIYMHcbXvn5Zma6g45k2cz6DB/Zmu35bsklNNaMP35tHJ76wXpoem3dmk5pqAM76wgFMmj6X91d+yII332bf3Xag82abAHDovkOY/fqSNr+GdqNC2qhlr8FVqpqaGn728xs55qjDqa+v54wzv8wuw4fzi9tuBeDc885n1BFHMuHxxxg+dDBdOnfhtjt+DcDfnn6ae+4ey6677sZ++yT9PVde80NGHXFk2a6nI6ivX8vXf/IAj9x8EdVV4rfjJ/Pya29yzon/AsAdv5vE0EHbcMfVp1Nfv5ZXXnuT86+8G4CpL83nof/3HM/c8++sqV/LjFcW8svfP13Oyymr9tD8LISa6idqlYyle4FDgK2AJcAVEfHLll6zzz4j4um/TytJeaw0thh5cbmLYEX45+wHWPvBWxsVnYbttlfcOX5iQWn33bHnsxExYmPOtzFKVoOLiFNLlbeZlVllVODcRDWz4iTda5UR4RzgzKw4Xg/OzLKsQuKbA5yZFUv+4Wczy64KiW++0dfMilPoPb6FxEBJvSQ9JGmlpPmSTmsm3RmSnpX0nqSFkq6VlLeC5gBnZsVrvZkMNwGrgT7AGOAWScObSNcFuJTkvtr9gM8C38yXuZuoZla01rhNRFJX4ARg14ioAyZJehg4Hbg8N21E3JKzWSvpbuDQfOdwgDOzohXRB7eVpNzpSbenC2wA7AzUR8ScnOMzgIMLyPcgYGa+RA5wZlac4u6DW9bCVK3Ngcarhq4AurV4euksYARwTr6TO8CZWdFaaSZDHdB4IcTuwPvNnlc6Hvgx8LmIWJbvBB5kMLOiiKQGV8gjjzlAjaSdcvbtQTNNT0mjgF8Ax0TEi4WU1QHOzIrWGoOoEbESeBC4SlJXSQcCxwFjNzif9BngbuCEiJhSaDkd4MyseK13m8iFQGfgLeBe4IKImClpoKQ6SQPTdN8FegCPpfvrJD2eL3P3wZlZ0VprwcuIeBs4von9b5AMQjRs570lpCkOcGZWtAqZqeUAZ2afQIVEOAc4MyuKF7w0s+zygpdmlmUVEt8c4MysWF7w0swyrELimwOcmRWnnfxofUEc4MyseBUS4RzgzKxovk3EzDLLfXBmlk2CKgc4M8uuyohwDnBmVpSGBS8rgQOcmRWtQuKbA5yZFc81ODPLLE/VMrPMqozw5gBnZkUq8Bez2gUHODMrmmcymFl2VUZ8c4Azs+JVSHxzgDOzYqnVfjaw1BzgzKwolTSTwb9sb2aZ5RqcmRWtUmpwDnBmVjTfJmJm2eQbfc0sqyppkMEBzsyK5iaqmWWWa3BmllkVEt8c4MzsE6iQCOcAZ2ZFEVTMVC1FRLnLsI6kpcD8cpejBLYClpW7EFaUrH5m20VE743JQNITJO9PIZZFxKiNOd/GaFcBLqskTYuIEeUuhxXOn1k2eC6qmWWWA5yZZZYDXNu4vdwFsKL5M8sA98GZWWa5BmdmmeUAZ2aZ5QBXQpJGSZotaa6ky8tdHstP0q8kvSXppXKXxTaeA1yJSKoGbgKOAHYBTpW0S3lLZQX4DVC2G1OtdTnAlc6+wNyIeC0iVgP3AceVuUyWR0T8BXi73OWw1uEAVzr9gQU52wvTfWbWRhzgSqep2ci+J8esDTnAlc5CYNuc7QHAojKVxaxDcoArnanATpJ2kNQJOAV4uMxlMutQHOBKJCLWABcDE4CXgQciYmZ5S2X5SLoXeAYYImmhpLPLXSb75DxVy8wyyzU4M8ssBzgzyywHODPLLAc4M8ssBzgzyywHuAoiqV7S85JekjROUpeNyOs3kk5Mn9/R0kIAkg6RdMAnOMc8SRv8+lJz+xulqSvyXN+X9M1iy2jZ5gBXWVZFxJ4RsSuwGjg/92C6gknRIuKciJjVQpJDgKIDnFm5OcBVrr8Cg9Pa1f9Kugd4UVK1pJ9KmirpBUnnAShxo6RZkh4Ftm7ISNJESSPS56MkTZc0Q9JTkrYnCaRfT2uPn5bUW9Lv03NMlXRg+totJT0p6TlJt1HA759L+oOkZyXNlPSVRseuT8vylPnBp68AAAJISURBVKTe6b4dJT2Rvuavkoa2xptp2eRftq9AkmpI1pl7It21L7BrRLyeBokVETFS0qbA05KeBPYChgC7AX2AWcCvGuXbG/gFcFCaV6+IeFvSrUBdRFyXprsH+FlETJI0kGS2xjDgCmBSRFwl6ShgvYDVjC+n5+gMTJX0+4hYDnQFpkfENyR9L837YpIfgzk/Il6VtB9wM/CZT/A2WgfgAFdZOkt6Pn3+V+CXJE3HKRHxerr/88DuDf1rQA9gJ+Ag4N6IqAcWSfpzE/nvD/ylIa+IaG5dtM8Bu0jrKmjdJXVLz/Gv6WsflfROAdd0iaQvpM+3Tcu6HFgL3J/uvwt4UNLm6fWOyzn3pgWcwzooB7jKsioi9szdkf6hr8zdBXw1IiY0Snck+ZdrUgFpIOna+FRErGqiLAXP/ZN0CEmw/FREfCBpIrBZM8kjPe+7jd8Ds+a4Dy57JgAXSNoEQNLOkroCfwFOSfvo+gKHNvHaZ4CDJe2QvrZXuv99oFtOuidJmouk6RoCzl+AMem+I4At8pS1B/BOGtyGktQgG1QBDbXQ00iavu8Br0sanZ5DkvbIcw7rwBzgsucOkv616ekPp9xGUlN/CHgVeBG4Bfi/xi+MiKUk/WYPSprBx03ER4AvNAwyAJcAI9JBjFl8PJp7JXCQpOkkTeU38pT1CaBG0gvA1cDknGMrgeGSniXpY7sq3T8GODst30y8DLy1wKuJmFlmuQZnZpnlAGdmmeUAZ2aZ5QBnZpnlAGdmmeUAZ2aZ5QBnZpn1/wEi9pATJBbd8QAAAABJRU5ErkJggg==\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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ThGSTie5n3PqdFXXrXt/9evq+tV91PeeOKGqqufOndNly5ZVq33VIf/dp08fRzY9WGVeDllZWXrgwAEdOHCgZmRk+ExTXFysnTt31iNHjuj58+c1Pj5ev/32W1VVfeaZZzQtLU1VVdPS0nT69OnOcbfddpseP37cb7nloSHJjNcUmZmZ9O3bt4xkwfTp05k5cyZNmzatRcsaNm5lxv3JgV+6dImnn36arl27Eh8fz8svvwxAx44dmTNnDv369WPdunWsXbuWrl27cssttzBjxgyftviTBp8xYwZLlixx0j3//PMsWLAAgHnz5tGrVy/i4+OZPXu2c07lJc8nTpxIz549iYuLc9KBpTcVExNDv379mDJlivMmsz85c380btyY3r17c+LECcDStBo7dqzzjkbbtm156aWXnKfZtLQ05s+f7+gMhYeHM27cuAr5+pN095aZmD9/vvN2srf89wsvvEDHjh0dBYOioiI6dOjAxYsXXUmqHzx4kGbNmjmy6e+99x5JSUkkJiYyePBgfvzxR+f3GD9+PCkpKTz00EOcPn2ae++9l169etGrVy927NgB+L+GroTY2NgKul/l+fLLL7nxxhvp3LkzTZs2ZdSoUc7v+c477/Dwww8D8PDDDzuS42AJRqanp1+xja6oaoSprSU6IqJaJ8EpKCjQp556Shs1aqSAduvWrUytoqFT2zUKtzLj/uTAlyxZovfcc4+zzyNLff311+uLL76oqqonTpzQDh06aG5url68eFEHDRqkGzZsqGCLP2nw3bt364ABA5x0sbGxevz4cf3www913LhxTq1h6NChunXr1gqS5952FRcX68CBA3Xv3r167tw5jYqK0qNHj6qq6qhRoxzJaX9y5uV956lRnDt3TpOTk3Xv3r2qqnr33Xfrxo0by6T/5z//qREREarqW5LcF/4k3T3lqqrOmzdPZ8+erapl5b9VVVNTU/Xjjz9WVUv++7HHHlNVd5LqK1eu1GnTpjnb+fn5zn93+fLlzr7Zs2dr9+7dtaioSFVVR48erdu3b1dVS4o9JiZGVf1fQ94UFBT4lBxPSEhwagG+CFSjWLdunXPeqqqvvfaaI9neunXrMmnbtGnjrH/66ac6bNgwn3k2+DezrylsCX/JgoW/qTxxAFSVjRs3MmXKFLKzs2nUqBFTp05lzpw5RrwvxHAjM+5PDnzz5s1M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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -613,7 +478,9 @@ { "cell_type": "code", "execution_count": 9, - "metadata": {}, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "bag_clf = BaggingClassifier(\n", @@ -624,19 +491,10 @@ { "cell_type": "code", "execution_count": 10, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.9790209790209791" - ] - }, - "execution_count": 10, - "metadata": {}, - "output_type": "execute_result" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "bag_clf.fit(X_train, y_train)\n", "y_pred = bag_clf.predict(X_test)\n", @@ -1177,45 +1035,10 @@ { "cell_type": "code", "execution_count": 11, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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OTmZcuXK4ePjw2233ZbjScLFxYXGjRvj6+vLQw89RGRkpO25ffv20aFDB+688048PT159913SX2BxsqVK2nevDne3t54eXkxYsSIHI3NkXr37k2jRo2YMmWKXe0ddbmxiDB06FDq1atHo0aN2LlzZ6btOnTowOXLlx0SR06YP38+np6eeHp6Mn/+/AzbnDhxgoCAABo1akT79u05deqU7blRo0bh6+uLr68vixYtsq3v1asXhw8fdnj8TiMi+erBnYjKPSEhIZk+d+zYMQkODpaIiAixWCwOi6FUqVK2n/v27SvvvfeeiIjExMRInTp1ZNWqVSIicvXqVencubPMnDlTRET27NkjderUkf3794uISGJiosyaNStHY0tMTMzR7V0TFhYmNWrUuKHXpH6fctIvv/winTt3FovFIlu2bJEWLVpk2O7nn3+WYcOG3dC2k5KSciJEu1y8eFFq164tFy9elIiICKldu7ZERESka/f444/Ll19+KSIia9eulaeeekpErMd33333SWJiokRHR0uzZs0kKipKREQ2bNggzz33XK4dS3Yy+rsFdshNfu7q+QFlFxHBGJPmUbt2bfz8/KhYsSJFihRJ97y9jxvRunVrTp8+DcC3337LXXfdxf333w9AyZIlmTlzJh9++CEAEyZM4I033sDLywsAV1dXBg0alG6b0dHR9O/fn4YNG9KoUSMWL7aWMkv9Df3HH3/k6aefBuDpp5/m5Zdf5t577+XVV1+lVq1aaXo59erV49y5c4SHh9O9e3f8/f3x9/fnr7/+SrfvuLg4276bNGnC+vXrAbj//vs5f/48jRs3ZtOmTWlec+7cObp164afnx9+fn5s3rw53fEEBATQtGlTGjZsyLJlywC4evUqXbp0wc/PL8034tdee40GDRrQqFGjDHtcy5Yto2/fvhhjaNWqFZGRkYSFhaVrt2DBAh555BHb8qOPPkqzZs3w8fHhk08+sa0vXbo0b775Ji1btmTLli188803tGjRgsaNGzNgwACSk5MBGDhwIM2bN8fHx4e33nor3f5u1KpVq+jYsSMVK1akQoUKdOzYkd9++y1du5CQEAICrGfe7733Xtv7FxISQrt27XB1daVUqVL4+fnZXt+2bVvWrFlDUlLSLceZJ91shnHWQ3sUuSskJETi4uLk0KFDgvWy6Bx/ZOfaN+WkpCR5/PHH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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.ensemble import AdaBoostClassifier\n", "\n", @@ -1244,29 +1067,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Additive boosting for Regression\n", - "\n", - "Here we present [Drucker's AdaBoost](https://pdfs.semanticscholar.org/8d49/e2dedb817f2c3330e74b63c5fc86d2399ce3.pdf) tailored for regression.\n", - "\n", - "In bagging, each training example is equally likely to be\n", - "picked. In boosting, the probability of a particular\n", - "example being in the training set of a particular machine\n", - "depends on the performance of the prior machines on\n", - "that example. The following is a modification of\n", - "Adaboost by Drucker.\n", - "\n", - "Start by selecting a set of training data $n$ and assign to each entry a weight $w_i=1$ for $i=1,2,\\dots,n$. As we have done earlier, we could pick say $80\\%$ of the data set for training. The algorithm runs as follows:\n", - "1. We define the probability that the training sample $i$ is in the set by $p_i = w_i/\\sum_iw_i$. We pick $n$ samples (with replacement) to form our training set. We pick a number uniformly in the range $[0,\\sum_iw_i]$.\n", - "\n", - "2. We choose then a regression machine (for example plain linear regression or a simple decision tree). A given regression machine makes then a hypothesis.\n", - "\n", - "3. Using every member of the training set with the chosen regression machine we obtain then a prediction $\\tilde{y}_i$.\n", - "\n", - "4. We calculate then the loss function $L_i$ for each training sample. We can use various types of loss function as long as we have a value\n", - "\n", - "$L_i\\in [0,1]$. \n", - "\n", - "## Gradient boosting: Basics with Steepest Descent\n", + "## Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent\n", "\n", "Gradient boosting is again a similar technique to Adaptive boosting,\n", "it combines so-called weak classifiers or regressors into a strong\n", @@ -1413,10 +1214,10 @@ "\n", "b. fit the so-called base-learner to the negative gradient $h_m(u_m,x)$;\n", "\n", - "c. update the estimate $f_m(x) = f_{m-1}(x)+\\nu h_m(u_m,x)$;\n", + "c. update the estimate $f_m(x) = f_{m-1}(x)+h_m(u_m,x)$;\n", "\n", "\n", - "4. The final estimate is then $f_M(x) = \\sum_{m=1}^M\\nu h_m(u_m,x)$.\n", + "4. The final estimate is then $f_M(x) = \\sum_{m=1}^M h_m(u_m,x)$.\n", "\n", "## Gradient Boosting, Examples of Regression" ] @@ -1424,68 +1225,10 @@ { "cell_type": "code", "execution_count": 12, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:73: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", - " return f(**kwargs)\n", - "/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:73: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", - " return f(**kwargs)\n", - "/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:73: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", - " return f(**kwargs)\n", - "/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:73: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", - " return f(**kwargs)\n", - "/Users/MortenImac/anaconda3/lib/python3.6/site-packages/sklearn/utils/validation.py:73: DataConversionWarning: A column-vector y was passed when a 1d array was expected. Please change the shape of y to (n_samples, ), for example using ravel().\n", - " return f(**kwargs)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "Max depth: 1\n", - "Error: 0.5692982587408999\n", - "Bias^2: 0.2744795520281314\n", - "Var: 0.2948187067127685\n", - "0.5692982587408999 >= 0.2744795520281314 + 0.2948187067127685 = 0.5692982587408999\n", - "Max depth: 2\n", - "Error: 0.5623134325774894\n", - "Bias^2: 0.2741269616463988\n", - "Var: 0.2881864709310905\n", - "0.5623134325774894 >= 0.2741269616463988 + 0.2881864709310905 = 0.5623134325774893\n", - "Max depth: 3\n", - "Error: 0.5623132958108783\n", - "Bias^2: 0.27412708964346316\n", - "Var: 0.2881862061674152\n", - "0.5623132958108783 >= 0.27412708964346316 + 0.2881862061674152 = 0.5623132958108783\n", - "Max depth: 4\n", - "Error: 0.5623132958108783\n", - "Bias^2: 0.27412708964346316\n", - "Var: 0.2881862061674152\n", - "0.5623132958108783 >= 0.27412708964346316 + 0.2881862061674152 = 0.5623132958108783\n", - "Max depth: 5\n", - "Error: 0.5623132958108783\n", - "Bias^2: 0.27412708964346316\n", - "Var: 0.2881862061674152\n", - "0.5623132958108783 >= 0.27412708964346316 + 0.2881862061674152 = 0.5623132958108783\n" - ] - }, - { - "data": { - "image/png": "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+eW8+eabHD58mGQyyTPPPMPVV18dd1siImfo9hCQu580s+eAlWa2iNRVQDOBK7JrLfUOpBJgaHq5NLUJb8xr1wOk7RxAm+nTp3d7Keg555zDgw8+yOc//3ncnRkzZjBz5sz+blVEpMeiXga6BHgCOAQcARa7e42ZjQN2ARPcfT/wSWBPxnqngH1AZd46HkDJZDLn+N69e7tcnj9/PvPnn/lWifr6+ny1JiLSZ5ECwN2PArNyjO8ndZK4bXkvoM8hEBEZBPRRECIigVIAiIgESgEgIhIoBYCISKAUACIigVIAdGHv3r1MmjTpjPFFixaxa9euGDoSEcmfgv1O4EL2wx/+MO4WRET6bHAEwEsr4MN387vNv/k0fLH7L3hpaWnhlltu4e233+aCCy7gRz/6ETNmzGDVqlVUVVWxePFitm7dyqlTp5gzZw733XcfACtWrGDDhg0UFxdz3XXXsWrVqvz2LyLSR4MjAGL0/vvvs3btWqZOncrChQt57LHHOjx+//33M3LkSJLJJNdccw07duxg7NixPP/887z33nuYGceOHYupexGRzg2OAIjwSr2/nHfeeUydOhWAr3zlK3zve9/r8PjPfvYz1qxZQ0tLCx988AG7du1iwoQJlJaWsmjRIq6//npuuOGGOFoXEemSTgJ3I/X5drmX9+zZw6pVq3jttdfYsWMH119/PQ0NDRQXF7NlyxZmz57NCy+8wPTp0we6bRGRbikAurF//35+85vfAPDMM890+Cav48ePU1ZWxtlnn83Bgwd56aWXgNSHvtXV1TFjxgxWr17d7fcKi4jEYXAcAorRxRdfzFNPPcVXv/pVxo8fz+LFi3nxxRcBmDx5MpdeeikTJ07k/PPPbz9UdOLECWbOnElDQwPuzne/+904fwURkZwUAF2orKzMeb3/G2+80X7/ySefzLnuli1b+qkrEZH80CEgEZFAKQBERAKlABARCZQCQEQkUAoAEZFAKQBERAKlAOjEtGnT2LhxY4ex1atXs2TJkkjrf+Mb3+DVV1/tj9ZERPJCAdCJefPmsW7dug5j69atY968ed2um0wmWblyJddee21/tSci0meD4o1gD295mPeOvpfXbV408iKWf3Z5p4/PmTOHr3/96zQ2NlJSUsLevXv585//zNNPP82dd955xsc/V1ZWsnDhQl555RWWLl3Kyy+/zA033MCc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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -1545,56 +1288,10 @@ { "cell_type": "code", "execution_count": 13, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(426, 30)\n", - "(143, 30)\n", - "[1. 0.86666667 0.93333333 1. 1. 0.92857143\n", - " 1. 0.92857143 0.92857143 0.92857143]\n", - "Test set accuracy with Random Forests and scaled data: 0.97\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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Z7FYBOtotxx/3EnKD8DPP/9chgwZIiIi8+bNk759+6ZqGxISIlWqVBERkb59+8pXX311x+1HRkbK888/Lz4+PuLr6ysrVqxIs9/ly5dL//79RUSkf//+MnLkSGndurW8+uqrUr16dQkPD7e1rV27tly8eFEuX74sTz31lDRp0kSaNGkiW7duTbPvW7du2fbdoEED2bBhg4iI+Pr6SuHChcXf3182b96c6jUXL16UJ598Uvz8/MTPz0/++OOPVPFGRkZKmzZtpGHDhuLj4yMrV64UEZGoqCjp2LGj+Pn5ibe3tyxdulRERMaOHSteXl7i6+sro0aNShPjwIEDZcmSJbblunXryvnz59O069Onj2zcuNG23K1bN2nUqJHUr19f5s6da1tfrFgxGT9+vDRt2lS2bNkiCxculICAAPH395eBAwfaksfgwYOlcePGUr9+fZkwYUKa/WXXxo0bM00Ujz/+uGzbtk1ErF8E3N3dxWKxyJIlS2TgwIG2dinfl8TERKlRo4bdvjjcrZxOFFm54U7d52JjYwkNdciEhqkkJiayfv16XnzxRcB62en2IoK1a9cmKiqKGzducOjQIUaNGnXH7U6ePJmSJUty8OBBAFunfGaOHTvGunXrcHFxwWKx8OOPPzJgwAB27txJjRo1qFChAv/4xz8YOXIkDz/8MKGhoXTo0IHDh1PPIjxr1iwADh48yJEjR3j88cc5duwYq1atonPnzuzbty/NvkeMGEGrVq348ccfSUxMJCoqKtXzhQsX5scff6REiRJcuXKF5s2b07VrV3755RcqVarEmjVrAOsotWvXrvHjjz9y5MgRjDGpLuslO3fuHFWrVrUtV6lShXPnzlGxYsVU7f744w/mzp1rW/76668pU6YMt27dIiAggB49euDu7s7Nmzfx8fFh0qRJHD58mClTpvDHH39QsGBBhg4dyuLFi+nXrx/vvfceZcqUITExkbZt23LgwAH8/PxS7XPatGksXrw4TcyPPvoon376abq/uztJebyurq6ULFmSq1evZvg+gHUAR506ddi/f3++LGypiUJlKC4ujoiICP78808sFgt79+6lcuXKlCtXLlfvibh16xYNGjTg1KlTNG7cmPbt2wPWs+GM4rib+NatW8fSpUtty6VLl77ja55++mnbqK7evXszadIkBgwYwNKlS+ndu7dtu8HBwbbX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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -1664,105 +1361,10 @@ { "cell_type": "code", "execution_count": 14, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "[11:32:43] WARNING: /Users/travis/build/dmlc/xgboost/src/learner.cc:480: \n", - "Parameters: { colsaobjective } might not be used.\n", - "\n", - " This may not be accurate due to some parameters are only used in language bindings but\n", - " passed down to XGBoost core. Or some parameters are not used but slip through this\n", - " verification. Please open an issue if you find above cases.\n", - "\n", - "\n", - "Max depth: 0\n", - "Error: 0.3122934461614368\n", - "Bias^2: 0.31229345725057706\n", - "Var: 3.552713678800501e-15\n", - "0.3122934461614368 >= 0.31229345725057706 + 3.552713678800501e-15 = 0.3122934572505806\n", - "[11:32:43] WARNING: /Users/travis/build/dmlc/xgboost/src/learner.cc:480: \n", - "Parameters: { colsaobjective } might not be used.\n", - "\n", - " This may not be accurate due to some parameters are only used in language bindings but\n", - " passed down to XGBoost core. Or some parameters are not used but slip through this\n", - " verification. Please open an issue if you find above cases.\n", - "\n", - "\n", - "Max depth: 1\n", - "Error: 0.3630793080432832\n", - "Bias^2: 0.3249573668730529\n", - "Var: 0.038121938705444336\n", - "0.3630793080432832 >= 0.3249573668730529 + 0.038121938705444336 = 0.3630793055784972\n", - "[11:32:43] WARNING: /Users/travis/build/dmlc/xgboost/src/learner.cc:480: \n", - "Parameters: { colsaobjective } might not be used.\n", - "\n", - " This may not be accurate due to some parameters are only used in language bindings but\n", - " passed down to XGBoost core. Or some parameters are not used but slip through this\n", - " verification. Please open an issue if you find above cases.\n", - "\n", - "\n", - "Max depth: 2\n", - "Error: 0.3604382790875038\n", - "Bias^2: 0.32184437765562457\n", - "Var: 0.03859391063451767\n", - "0.3604382790875038 >= 0.32184437765562457 + 0.03859391063451767 = 0.36043828829014224\n", - "[11:32:43] WARNING: /Users/travis/build/dmlc/xgboost/src/learner.cc:480: \n", - "Parameters: { colsaobjective } might not be used.\n", - "\n", - " This may not be accurate due to some parameters are only used in language bindings but\n", - " passed down to XGBoost core. Or some parameters are not used but slip through this\n", - " verification. Please open an issue if you find above cases.\n", - "\n", - "\n", - "Max depth: 3\n", - "Error: 0.360435136192909\n", - "Bias^2: 0.32182779880247675\n", - "Var: 0.03860734403133392\n", - "0.360435136192909 >= 0.32182779880247675 + 0.03860734403133392 = 0.3604351428338107\n", - "[11:32:43] WARNING: /Users/travis/build/dmlc/xgboost/src/learner.cc:480: \n", - "Parameters: { colsaobjective } might not be used.\n", - "\n", - " This may not be accurate due to some parameters are only used in language bindings but\n", - " passed down to XGBoost core. Or some parameters are not used but slip through this\n", - " verification. Please open an issue if you find above cases.\n", - "\n", - "\n", - "Max depth: 4\n", - "Error: 0.360435136192909\n", - "Bias^2: 0.32182779880247675\n", - "Var: 0.03860734403133392\n", - "0.360435136192909 >= 0.32182779880247675 + 0.03860734403133392 = 0.3604351428338107\n", - "[11:32:43] WARNING: /Users/travis/build/dmlc/xgboost/src/learner.cc:480: \n", - "Parameters: { colsaobjective } might not be used.\n", - "\n", - " This may not be accurate due to some parameters are only used in language bindings but\n", - " passed down to XGBoost core. Or some parameters are not used but slip through this\n", - " verification. Please open an issue if you find above cases.\n", - "\n", - "\n", - "Max depth: 5\n", - "Error: 0.360435136192909\n", - "Bias^2: 0.32182779880247675\n", - "Var: 0.03860734403133392\n", - "0.360435136192909 >= 0.32182779880247675 + 0.03860734403133392 = 0.3604351428338107\n" - ] - }, - { - "data": { - "image/png": "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v7Ozk46ODs4++2xuu+22fr/Xulr4CMLMrMTRRx/NPffcw+c//3mmTZvGkiVLeOSRRwCYM2cOxx13HDNmzOCII47oORW1bds25s+fz44dO4gIvvnNb+b5ECrGAWFmVtTU1JR8v8MzzzzTc/3uu+9Obrtu3brkeDXzKSYzM0tyQJiZWZIDwszMkhwQZmaW5IAwM7MkB4SZmSU5IMzMgHnz5vHEE0/sNXbbbbexdOnSTNtfd911PPnkk0PRWm4cEGZmwKJFi1i1atVeY6tWrWLRokX9btvV1UVLSwuf/vSnh6q9XDggzMyAc889l0cffZT3338fKHx50GuvvcZ9992X/HjvpqYmWlpaOPnkk3nggQe4+OKLefDBBwFoaWnhhBNOYObMmVxxxRVEBFA4Slm2bBknnngi06dP55e//CVQCJirr76aWbNmMXv2bL71rW8BsH79ek455RSOP/54zjjjDF5//fXhXJJs76SWNBG4Ezgd2AJck/o2OEkzgf8JHA9MigiV3f8M8Elgd3HozxFx1KC7N7MPpa+t+xovvv1iRef8+MSPs+zEZb3eP2nSJE488UQef/xx5s+fz6pVqzjvvPO45ppr9vl479mzZwNQV1fX82mvjz/+eM9cV155Jddddx0AF154IY8++ijnnHMOUPi+iXXr1vHYY49x44038uSTT7JixQpeeuklfvvb31JbW8vbb7/Nrl27uOqqq/jxj39MY2MjP/zhD/nyl7/MXXfdVdF16UvWI4jbgZ3AZGAxcIekGYm6XcD9wKV9zHVlydeROhzMbMQoPc3UfXop9fHe3c4777zkPD/72c846aSTmDVrFk8//TRtbW099332s58F4Pjjj+fll18G4Mknn+QLX/gCtbWF39knTpzIxo0b+eMf/8hnPvMZjj32WG666SY2b948FA+7V/0eQUiqBxYCMyOiE1gj6WHgQmB5aW1EbAQ2SvrYUDRrZn8b+vpNfygtWLCAL33pS/zmN7/hvffeY8KECcmP9+5WX1+/zxw7duxg6dKltLa2cthhh3HDDTfstc2YMWMAqKmpYffuwsmUiNjnY8YjghkzZvR8smweshxBTAe6ImJTydgGIHUEkcUtkrZIWitpXm9Fkq6Q1Cqptb29fZC7MjPLbty4ccybN49LLrmERYsW9frx3n3pDoNDDjmEzs7Onucl+nL66afz3e9+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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -1823,88 +1425,11 @@ }, { "cell_type": "code", - "execution_count": 16, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(426, 30)\n", - "(143, 30)\n", - "Test set accuracy with xgboost and scaled data: 1.00\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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fX3ZtWtXpu1atWrFtWvXbBJHbggKCqJMmTJ06NAh0zZxcXF0796dOnXq0KRJE44fP25978svv8Td3R13d3e+/PJL6/oePXpw5MgRW4ZuXyLiUC/qIirvHDhwINP3jh07JiEhIXL58mVJSkqyWQwlSpSw/ty7d2959913RUQkJiZGatWqJb/88ouIiFy/fl2CgoJkxowZIiKyd+9eqVWrlhw8eFBEROLj42XmzJm5Glt8fHyubu+Ws2fPSrVq1e7oMym/p9z0448/SlBQkCQlJcmWLVskMDAww3Y//PCDvPLKK3e07YSEhNwIMdvWrl0rq1atkvbt22faZubMmTJgwAAREfnmm2+kW7duIiJy6dIlqVmzply6dEkuX74sNWvWlMuXL4uIyIYNG+Sll16y/QFkU0b/b4GdktPfuzn9oL1emijy1q1/cElJSYLlbrdcf91Oyl+An376qQwaNEhERObPny+9evVK1TYsLEyqVq0qIiK9evWSzz777Lbbj4qKkueff168vb3Fx8dHli9fnm6/y5Ytkz59+oiISJ8+fWT48OHSsmVLeeWVV6R69epy5coVa9vatWvLuXPn5MKFC/L0009L48aNpXHjxvLXX3+l2/eNGzes+27QoIH8/vvvIiLi4+MjxYoVEz8/P9m4cWOqz5w7d06eeuop8fX1FV9fX9m0aVOqeKOioqRVq1bSsGFD8fb2lpUrV4qISHR0tDzxxBPi6+srXl5esmTJEhERGTVqlHh6eoqPj4+89tpr6WLs37+/fP3119blunXrypkzZ9K169mzp6xfv9663KlTJ/H395f69evLnDlzrOtLlCghY8aMkcDAQPnzzz/lq6++koCAAPHz85P+/ftbk8fAgQOlUaNGUr9+fRk7dmy6/eXU+vXrs0wUjz32mGzevFlELCcCLi4ukpSUJF9//bX079/f2i7l95KYmCg1atSw2YnDncrtRJGdB+7UPS4uLo7wcLtMaJhKYmIi69at48UXXwQsl53SFhGsXbs20dHRXLt2jX379vHaa6/ddrvvvPMOpUuXZu/evQDWQfmshIaGsnbtWpycnEhKSmLFihX07duXbdu2UaNGDSpWrMj//d//MXz4cB566CHCw8Np164dBw+mnkV45syZAOzdu5dDhw7x2GOPERoayqpVq+jQoQO7d+9Ot+9hw4bRokULVqxYQWJi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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAYoAAAEWCAYAAAB42tAoAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4yLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy+j8jraAAAgAElEQVR4nOzdd3gUxRvA8e+kEUIJEEMNHUQSSuiCIihIr4LSidKlCKI/ECsKShMLihQJSpEO0jsSqlKkF+kt9BpSSXI3vz/2vDswpN5l73LzeZ48ZCZ3u2+Wy703u+/OCCkliqIoivI0bnoHoCiKojg2lSgURVGUZKlEoSiKoiRLJQpFURQlWSpRKIqiKMlSiUJRFEVJlkoUilMSQowUQszNwPOPCyHq2zAkmxBCdBFCbNQ7DkWxphKFkiZCiM5CiP1CiCghxHUhxDohxIt6x5UcIcSvQojR1n1SyiApZZgd9uUlhPhUCHFKCBEthLhqOkaNUvN8KeVvUspUPTYdcY0UQpwxxXVRCDFTCFHC1vtSsh6VKJRUE0IMBb4DvgIKAMWAn4DWesblYJagHY/uQF6gJPA90FzPoNDiagV0BnyBysDfQIO0bkgI4WHb0BSHJ6VUX+orxS+0N5co4PVkHvMrMNqqXR8It2pfBP4HHAGigVC0hLMOiAQ2A3mTeq7V8xuavh8JzLX62WLgBhABbAeCTP19gAQg3hT/KuttAYWBWCCf1baqAHcAT1O7B3ASuA9sAIo/5fdvaNpWQArH8gPgnOl3PgG0tfrZm8BOq7YE+gFnTPufDAjTz8oA20y/8x1gYQpxFU0mJvOxffL4AiVMcfQELpuO73pg4BPbOAy8Zvr+OWATcA84Bbyh92tYfaX/S40olNSqDXgDv2dwO+2AV4FngZZoSeJD4Bm0Ee476dzuOqAskB84APwGIKWcbvp+vJQyp5SypfWTpJTXgD9Ncf2rM7BESpkghGhjiu81wB/YAcx/SgwNgT1SyvAUYj0H1EVLvp8Dc4UQhZJ5fAugBtoo4A2gsal/FLARbeQSAPyQTFx7pZRXUogrJfWA8qb9zwM6/fsDIUQgUBxYI4TIgZYk5qH9f3QCfhJCBGVw/4pOVKJQUssPuCOlTMzgdn6QUt6UUl5Fe9PdI6U8KKV8hJaEqqRno1LKmVLKSNN2RgKVhRC+qXy6+U1PCCGAjqY+gL7AGCnlSdPv/hUQLIQonsR2nkEb1WDaVj4hxAMhRIQQIs4q1sVSymtSSqOUciHaaKFmMvGNlVI+kFJeBrYCwab+BLQ358JSyjgp5c6nPN8PuJ7sEUidkVLKaCllLNr/lfVx6AIsMx3/FsBFKeUvUspEKeUBYCnQ3gYxKDpQiUJJrbvAMzY4P33T6vvYJNo507pBIYS7EGKsEOKcEOIh2mkU0N64U2MJUFsIURh4Ce00yw7Tz4oD35ve8B+gnUoRQJEktnMXMI8MpJT3pJR5gGpANqt4uwshDllts0IKsd6w+j4GyzEaZoplr6mKq8dTnv9YXBlgHpFIKSOBNWhJFdO/v5m+Lw7U+vf3M/2OXYCCNohB0YFKFEpq/QnEAW2SeUw04GPVzsgbw2PbEkK4o536SUpntAvIDdFO55T492mmf5OdIllK+QDtFM4bpm3Nl1L++5wrQF8pZR6rr+xSyt1JbGoLUEMIEfC0fZk+gf8MDAT8TInkmFWsqSalvCGl7C2lLIw28vlJCFEmiYduBmomFxep+7978jjOBzoJIWoD2dFGO6Ads21PHLOcUsq3U/N7KY5HJQolVaSUEcCnwGQhRBshhI8QwlMI0VQIMd70sENAM9Mpl4LAkAzs8jTgLYRoLoTwBD7G6lP5E3IBj9A+OfugnR6ydhMolcL+5qFVKrXDctoJYCow4t/z60IIXyHE60ltQEq5Ee3NcrkQopapJNUTeN7qYTnQ3nBvm7b3FtqIIs2EEK9bvfnfN23XkERcm9GuGfwuhKgmhPAQQuQSQvSzGoUcAjqa/k+rk7rTRGvRRg9foF1IN5r6VwPPCiG6mbbnKYSoIYQon57fU9GfShRKqkkpvwGGor1p30b75DgQWG56yBy0ypeLaJ/QF2ZgXxFAf2AGcBXtE+/TLhLPBi6ZHncC+OuJn4cCgabTIMuffLLJSrSL4TellIet4vgdGAcsMJ3WOgY0TSb019DeKOcCD4ALaKddmpi2dwKYiDZCuwlUBHYls73k1AD2CCGiTPEPllJeeMpj26O9sS9Eq5I6BlRHG20AfAKURks4n/N4skyS6XrEMrSR3Dyr/kigEdrpqGtop87G8fRErzg4YRlhK4qiKMp/qRGFoiiKkiy7JQrT9AC3hBDHnvJzIYSYJIQ4K4Q4IoSoaq9YFEVRlPSz54jiV0znZZ+iKdo54bJod89OsWMsiqIoSjrZLVFIKbej1Zw/TWtgttT8BeRJ4e5URVEURQd6Tu5VBKsbeNAqWoqQxB2kQog+aKMOvL29qxUrVixTAnR0RqMRN7eseZnpfpwkIl4VWtiaL9EUE7dI4dYSJYuIjoeLEUYeJYLUZlZ42r1IydIzUSR1g1GSr17TfD3TAcqVKydPnTplz7icRlhYGPXr19c7DJu7ci+GBt9swydRK8svkic7Hu7J348WGxtL9uzZMyM8h/e0Y/FC4h6+eDQeD3IA8JCcPBRpvhHeqUgp0WZlcS3Rj4xM+OMOM/c8QAKl/Dw5fzfhUnq3p2eiCAeKWrUD0GquFRc3dt0/xJuSROWiefj97Tq4uSX/x55Vk2Z6JHkszmyC+V9jvh/vmWfJ/eYacufMn9nhZSpXfF1s2rSJPn36cPHiA9zd3Rk2bBiffvpphj5I6ZkoVgIDhRALgFpAhJTSFhOXKU5s74V7rDlqeRl82iIwxSShpOB8GCzsCsYErZ2vFHRfCVk8Sbii/fv306iRtu5VcHAwoaGhVK2a8YJSuyUKIcR8tDUFnhFChAOfAZ4AUsqpaHeJNgPOok109pa9YlGcg9Eo+WL1cXO7VeXCVCueV8eIsoBLu2F+J0g0TV6bpxiErILcqm4kK6pevTqdO3emQoUKvP/++3h6etpku3ZLFFLKTin8XAID7LV/xfksPRDOsasPAcjm4cbwps/pHJGTu7IPfnsdEmK0du4iWpLwTW5uQMWZ3Lx5kyFDhvDBBx9QuXJlAObOnWvz6zJqSUPFIUQ/SmT8BkuRQt+XSlEkj7o4nW7XDsHcdhAfpbVzFtBON+UtoWtYim1IKZkzZw5Dhgzh/v37XL9+nbCwMAC7XLzPmrWVitOZEnaO25GPACiQOxt965XWOSLnlSPqIsxpA48itA4fPy1JPJPUDOSKs7l06RJNmzYlJCSE+/fv07hxY2bNmmXXfapEoegu/H4M03ecN7eHN3mOHNnUYDddbp+i8uFPIfa+1vbOA91XQH51Gs/ZGY1GJk+eTIUKFdiwYQN58+bl119/Zd26dRQvntSCi7aj/hoV3T1WDhvgS5vgpBaPU1J09xzMaoVXgmkkkS03dPsdClbUNy7FJq5fv84HH3xAVFQU7du354cffqBgwcxZNFAlCkVX+y7eY/URq3LYlqocNl3uX4JZrSDKtGqqZw7ouhSKqLk2nVliYiJubm64ublRpEgRfvzxR3LlysVrr72WqXGoU0+KboxGyRerTpjbLSsXplrxfDpG5KQirsKslvBQW9fJ4OYFXRZB0Zo6B6ZkxMGDB6lZsyZTp04194WEhGR6kgCVKBQdLTt4laNXtdMk2TzcGN6knM4ROaHIG1qSeGCancE9G8cqfAQlXtQ3LiXd4uLi+PDDD6lRowYHDx5k6tSpGAz/WeE2U6lEoegi+lEi49f/Y273eakUAXl9dIzICUXd1k433Tuntd08ocMc7ucL1jcuJd127txJcHAwY8aMwWg08s4777B7927c3d11jUslCkUXU7ed45apHDZ/rmz0U+WwaRNzTyuBvWO690S4w+u/wLON9Y1LSZfY2FgGDRrESy+9xKlTp3juuefYuXMn33//PTlz6j9xo0oUSqYLvx/D9O2Wcthhqhw2beIiYE5buGlaPFK4QbufoXxLfeNS0s3T09M8cvjoo484ePAgderU0TssM/XXqWS6cetP8chUDluxiC+vVVHlsKn2KBLmtofrh0wdAlr/BBXa6RqWknb37t3DYDDg7++Ph4cHs2fPJiEhgeBgxzt1qEYUSqb6+9I9Vh22zCavymHTID4G5nWA8L2WvpbfQXCy06opDmjp0qUEBgby9ttvm/uCgoIcMkmAShRKJnqyHLZ5pULUKKHKYVMlIQ4WdIJLuyx9TSdAtTd1C0lJu+vXr9OuXTvat2/PzZs3uXXrFlFRUXqHlSKVKJRMs/zQVQ6Ha+WwXh5ujFCzw6ZOYjws6qatK/GvRqOhVh/dQlLSRkrJL7/8QmBgIMuWLSNnzpz89NNPhIWFOcTF6pSoaxRKpoiJT2ScdTlsXVUOmyqGBFjyFpzZaOl75WOoM0i/mJQ0MRgMtGjRgvXr1wPQtGlTpk6dSrFixXSOLPXUiELJFFPDznHzoVYO658rG2/XV+WwKTIaYFkf+Ge1pe+l/2lfitNwd3enfPny+Pn5MWfOHNasWeNUSQJUolAywdUHsUyzLodtXE6Vw6bEaIQVA+D4MktfnUHw8kf6xaSk2smTJ9m1y3I9adSoUZw4cYKuXbvaZb0Ie1OJQrG7cev+MZfDViiSm3ZV1QpryZISVg+Bw/MtfTX7wKujwAnfZFxJQkICX375JcHBwXTq1InIyEgAcuTIQf78zrtGufpYp9jV35fusdK6HLZFkCqHTY6UsG44HLBaiKZqCDQZp5KEg/v777/p2bMnhw8fBqBx48ZoKz47PzWiUOzGaJR8sfqkud28YiFqllTlsE8lJWz6BPZOs/RV6ggtvgM39afqqGJjY/nggw+oVasWhw8fpmTJkmzevJmff/6Z3Llz6x2eTagRhWI3Kw5f5fCVB4BWDvuBKodN3tYvYfcPlnbQa9B6skoSDq5Fixb88ccfCCF49913GTVqFDly5NA7LJtSiUKxi5j4RMatO2Vu93qxJEXzqXLYp9o2AbZPsLSfawGvTQd39Sfq6IYOHcqNGzcIDQ3l+eef1zscu1AfVRS7mLbtPDcexgHwTM5s9H+5jM4RObBdk2DraEu7bCNoPxPcPfWLSXmqdevWMWGCJak3b96cw4cPZ9kkAWpEodjBtQexTNt+ztwe1rgcOVU5bNL2TNeuS/yrVH14Yw54ZNMrIuUp7ty5w7vvvsvcuXNxc3OjUaNGVK5cGQAPj6z9+lYjCsXmxq//h7gErRw2qHBu2ldT5bBJ+vtXWGd181zxF6DjfPD01i0k5b+klCxatIjAwEDmzp2Lt7c348aNIygoSO/QMk3WToNKpjtw+T7LD1mXw6rZYZN0aD6sGmJpB9SEzgvBS13HcSTXrl2jf//+rFixAoB69eoxY8YMypRxrVOpakSh2MyTs8M2q1iQWqX8dIzIQR1bCiv6A6Ya+8JVoOsSyJZL17CU/xo2bBgrVqwgV65cTJs2jT/++MPlkgSoEYViQysPX+PQv+Ww7m6MaFpe54gc0MlVsLQ3SO3UHAUqQNdl4O2rb1yKmZTSPM3G+PHjMRgMTJgwgYAA1z2FqkYUik3ExCcydp1ldtiedVU57H+c3giL3wJp0Nr+z0H3FeCjbkJ0BAaDgW+//ZYGDRpgMGj/R4ULF2b+/PkunSRAjSgUG5m+/YlyWDU77OPObYWFXcGYoLXzldaSRI5n9I1LAeD48eP07NmTPXv2AFoJbIsWLXSOynGoEYWSYdcjYpm6zVIO+7/Gz5LLW90DYHZxF8zvBAZtmnXyFIeQVZCroL5xKcTHx/PFF19QpUoV9uzZQ5EiRVi5cqVKEk9QIwolw8avP2Uuhw0slJv21YrqHJEDubIX5r0BibFaO3eAliR8i+gbl8K+ffvo0aMHx44dA6Bv376MGzcOX191vehJKlEoGXLw8n1+P3jV3P6kRSDuqhxWc/UAzG0H8aY1kXMWhJCVkLe4vnEpAPz5558cO3aM0qVL8/PPP/Pyyy/rHZLDUolCSTcpJV+stpTDNgkqSO3SqhwWgBtHYU5bePRQa/s8oyUJP3XtRk+3b9/G398fgAEDBiClpHfv3vj4qMKL5KhrFEq6rTx8jYOXLeWwHzZT5bAA3PoHZreGOO3YkD2vduHav5y+cbmwiIgI+vXrR5kyZbhy5QqgLVE6ePBglSRSwa6JQgjRRAhxSghxVgjxQRI/9xVCrBJCHBZCHBdCvGXPeBTbiY03MM6qHLbHiyUp5qf+4LhzFma3gpi7WjubL3RbDgUr6BuXC1uzZg1BQUFMmzaN2NhYdu/erXdITsdup56EEO7AZOBVIBzYJ4RYKaU8YfWwAcAJKWVLIYQ/cEoI8ZuUMt5ecSm28fOO81yL+Lcc1osBL6tTKty7ALNaQtRNre2VE7otg8LB+sblom7fvs3o0aPZsmULALVq1SI0NNSl5miyFXuOKGoCZ6WU501v/AuA1k88RgK5hHYbZE7gHpBox5gUG7gREceUMEs57PuNyqly2AdXtJFEpGmeK08f6LIYAqrrG5eLWr9+PYGBgWzZsoXs2bPzzTffsGvXLpUk0smeF7OLAFes2uFArSce8yOwErgG5AI6SPnv3AYWQog+QB8Af39/wsLC7BGv04mKitLlWEw/8ojYBO3O1aK53MgffY6wsPOZHoc1vY4FgNejuwQf+gif2OsAGNy8OBo4ggcX4uFC5sek57FwFFeuXOHevXtUqlSJ4cOHU7hwYXbs2KF3WE7LnokiqRrJJ1cabwwcAl4BSgObhBA7pJQPH3uSlNOB6QDlypWT9evXt320TigsLIzMPhaHrjxg9/pd5va4jjWoU1r/u4v1OBYARN2GX5uBKUng7oV7x/kEl22Y+bGY6HYsdGQ0Gtm8eTONGjUCoH79+lSpUoXIyEhV9moD9jz1FA5Y33kVgDZysPYWsExqzgIXALWwsoOSUvLFquPmduOgAg6RJHQTc0+rbrpzWmu7ecDrv4KOScIVnT17lgYNGtC4cWOWL19u7q9evbp5cj8lY+yZKPYBZYUQJYUQXkBHtNNM1i4DDQCEEAWAcoC+5zCUp1p15DoHTOWwnu7CtcthYx/AnDZwy5Q4hRu0mwHPNdc3LhdiMBiYOHEilSpVIiwsDH9/f9zcVMW/Pdjt1JOUMlEIMRDYALgDM6WUx4UQ/Uw/nwqMAn4VQhxFO1U1XEp5x14xKekXl2Bg7NqT5naPF0pS3C+HjhHp6FGkdsf19cOmDgFtpkJQW13DciXHjh2jR48e7Nu3D4CuXbvy3Xff4eenbvi0B7vemS2lXAusfaJvqtX314BG9oxBsY2ft1vKYf1yeDHgFddbvAWA+Gj47Q24ut/S12oSVO6gX0wuZv369bRq1YqEhAQCAgKYNm0azZo10zusLE1N4aGk6ObDOH6yKod9r1E5crtiOWxCLMzvCJetbthq9jVU7a5fTC7oxRdfJCAggCZNmjB27Fhy586td0hZnkoUSorGrz9lLod9rmAuOtRwwdlhEx9p60lc2G7pa/wV1OytX0wuIjo6mq+//pr33nuPnDlzkjNnTg4fPkyuXGrp2MyiEoWSrCPhD1h6INzc/rSlC84Oa0iAxW/C2c2WvgafQu0BuoXkKv744w969+7N+fPnuXv3LpMmTQJQSSKTqRIB5am0cljLjCuNAl2wHNaQCEt7wSmrS231hkPd9/SLyQU8ePCA3r1706BBA86fP0/lypUJCQnROyyXpRKF8lSrj1xn/6X7gIuWwxoNsPxtOGGpzeeFIVB/hH4xuYCVK1cSFBTEjBkz8PLyYvTo0ezbt49q1arpHZrLUqeelCTFJRgYazU77FsvlKTEMy5UDms0wqrBcHSRpa/W29BwJKibuOxm3759tG6tTQlXu3ZtQkNDKV/exT6gOCCVKJQkzdhxnqsPtOU7/XJ4MdCVymGlhHX/g4NzLH3Ve0CTMSpJ2FmNGjXo0aMHlStXZsCAAbi7u+sdkoI69aQk4cly2KGNnnWdclgpYcNHsG+GpS+4CzSbqJKEHVy5coXWrVtz4MABc19oaCjvvPOOShIORI0olP+YsOEUMfFW5bDVXaQcVkrY8gX8NdnSV6E9tPoB1NQQNmU0Gpk2bRrDhw8nMjKShw8fsnXrVr3DUp5CJQrlMUfDI1jyt6Uc9pMWgXi4u8ib5PYJsPMbS7t8K2g7DdzUJ1tbOn36NL1792b7du2elLZt2zJ58uQUnqXoyUXeAZTUkFLyxWrL7LANyxfghTIuUg678zvY+qWl/WwTaBcK7uqzlK0kJiYyfvx4KleuzPbt2ylQoABLlixh2bJlFCpUSO/wlGSoRKGYrT16g30XLeWwHzV3kWqTv6bC5s8s7dKvwOuzwMNLv5iyoJs3bzJ69Gji4uIICQnhxIkTtGvXTu+wlFRQH5cUQCuH/cpqdtiQ2iUo6QrlsPtnwvrhlnaJutDhN/D01i+mLOTRo0d4eHjg7u5OkSJFmDZtGnnz5qVJkyZ6h6akgRpRKACE7rxgLofNl8OLQQ3K6hxRJjg0D1a/a2kXrQWdFoCXj34xZSF//vknVapU4ccffzT3derUSSUJJ6QShcKth3H8tPWsuT301WfxzZ7Fy2GPLoEVVnM1Fa4KXRZDtpz6xZRFREVFMWTIEF544QVOnjzJ7NmzMRqNeoelZIBKFAoTNpwi2lQOW65ALjpm9dlhT6yAZX1Amt68ClaEbsvA21ffuLKATZs2UbFiRb7//nvc3NwYMWIEu3btUivPOTl1jcLFHQ2PYInV7LAftyiftcthT62DJT1AaokR//LQbQVkz6tvXE4uOjqad955h5kzZwIQHBzMzJkzqVKlis6RKbaQhd8RlJRIKRm1+gRSau2G5fNTt6y/vkHZ09ktsKg7GBO1tl9ZCFkJOdTymRnl7e3NsWPHyJYtG2PGjGHv3r0qSWQhakThwtYdu8Hei/cA8HDL4rPDXtgBCzqDIV5r5y2hJYmc+XUNy5nduHEDgIIFC+Lu7s7s2bMBKFeunJ5hKXagRhQu6j/lsHVKUMo/i17IvfwXzOsAidqa3/gWhZBVkLuwvnE5KSkls2bNIjAwkL59+yJNQ9Jy5cqpJJFFqRGFi5q56wLh97Vy2Lw+nrzzShYthw3/G+a2h4RorZ2rkDaSyFNM37ic1KVLl+jbty8bNmwAtPskYmJiyJHDBe65cWFqROGCbkXGMfmPJ8phfbJgOez1IzC3LcRHau0c+bWRRL5S+sblhIxGI5MnT6ZChQps2LCBvHnzMmvWLNatW6eShAtQIwoXNHHDaXM5bNn8OelUMwt+ur55Ama3hrgIrZ09H3RfAc9k0ZGTHRkMBho2bEhYWBgA7du358cff6RAgQL6BqZkGjWicDHHrkaw6O8r5naWnB32zhktScRqF+rx9oXuy6FAoL5xOSl3d3dq1qxJwYIFWbp0KYsXL1ZJwsVksXcIJTlPlsM2eC4/Lz2bxcph752HWS0h+pbW9soFXX+HQpX1jcvJHDx48LH1IUaOHMmJEyd47bXXdIxK0YtKFC5kw/Eb7LlgVQ6b1WaHfXAZZrWCyOta2zMHdF0CAdX0jcuJxMXF8eGHH1KjRg26du1KRIR26i579uzkzatuSnRV6hqFi4hLMPClVTls99olKJ2FymG9Ht2FWUMgwnRazcMbOi+AYs/rG5gT2bVrFz179uTUqVMIIXj99dfx8FBvEYpKFC7jl10XuXJPK4fN4+PJ4Kw0O2zkTYIPfQKxV7W2uxd0/A1KvqRvXE4iMjKSDz/8kMmTJyOlpHz58oSGhlK7dm29Q1MchEoULuBWZByTn5wdNquUw0bfhdmt8fk3Sbh5wBuzoUxDfeNyIi1atGD79u14eHjwwQcf8PHHH5MtWza9w1IciEoULuCbjaeJeqTNb1Q2f046Z5Vy2Nj7MKc13DadUhPu0H4mlGuqb1xOZsSIEURHRxMaGkrlyuqiv/Jf6mJ2Fnf8WgQL91vKYT/OKuWwcQ9hzmtw4ygAEgGvTYfA1joH5viWLFnCqFGjzO0mTZqwd+9elSSUp1IjiixMSskXqyzlsC+X86deViiHfRQFv70O1w6Yu06VG8RzFdvrGJTju379OgMHDmTZsmUIIWjVqpU5Oaj1IpTkqFdHFrbh+E1zOay7m+Cj5lnghrP4GJjfEa78Zelr8S03CjXQLyYHJ6Xkl19+ITAwkGXLlpErVy5++uknKlasqHdoipNQiSKLepT4+Oyw3Z4vTpn8Tl4OmxAHC7vAxR2WviZjoXoP/WJycBcuXKBRo0b06NGDBw8e0LRpU44fP06/fv3UKEJJNbu+UoQQTYQQp4QQZ4UQHzzlMfWFEIeEEMeFENvsGY8r+XXXRS7fiwG0ctghDZ28HDYxHha/Cef+sPQ1/Byef1u3kJzBJ598wubNm/Hz82Pu3LmsWbOGokWz+FK3is3Z7RqFEMIdmAy8CoQD+4QQK6WUJ6wekwf4CWgipbwshFCryNjA7chH/GA1O+y7DZ8lj4+XjhFlkCERlvaE0+ssffU/hBeH6BeTAzMYDObvv/76a/Oqc/nzqz8vJX3sOaKoCZyVUp6XUsYDC4AnS1I6A8uklJcBpJS37BiPy/hmk6Uctkz+nHSu5cTlsEYDLO8HJ1da+l4cCvWG6ReTg0pISGD06NEMHjyYxETt/79gwYKEhoaqJKFkiD2rnooAV6za4UCtJx7zLOAphAgDcgHfSylnP7khIUQfoA+Av7+/ebpjVxcVFfWfY3H5oYEFe+PM7VZFE9i1Y3smR2Yj0ki5Uz9S6MYWc9eVgFacc38Jtj1+ljKpY+FKTp06xfjx4zl//jwAEydOpFatJ//cXI+rvy5sxZ6JQiTRJ5PYfzWgAZAd+FMI8ZeU8vRjT5JyOjAdoFy5crJ+/fq2j9YJhYWFYX0spJR0+vkvJFqiqF/On3der6lTdBkkJawZClZJguo9Kdp8IkXFf19aTx4LVxEbG8vIkSP5+uuvMRqNlCpVigEDBjB06FC9Q3MIrvq6sDV7nnoKB6yvmgUA15J4zHopZbSU8g6wHZZHEY8AACAASURBVFB3/aTTxhM3+eu8pRz2Y2edHVZKWD8C9s+09FXpCs2+hiSShKvasWMHlStXZvz48QAMHTqUI0eOULVqVZ0jU7IaeyaKfUBZIURJIYQX0BFY+cRjVgB1hRAeQggftFNTJ1HSLOly2Fw6RpROUsLmz2DPFEtfxTeg5SRQ5ZyPOXr0KGfOnCEoKIjdu3czceJEtSypYhd2O/UkpUwUQgwENgDuwEwp5XEhRD/Tz6dKKU8KIdYDRwAjMENKecxeMWVls3Zf5NJdrRzWN7sTzw4bNhZ2fW9pB7aBNlPAzV2/mBxIeHg4AQEBAPTr1w9PT09CQkLw8nLiqjbF4dl1Cg8p5Vpg7RN9U59oTwAm2DOOrO5O1CN+2GIphx3SsCx5czjhG8eOibBtrKVdrjm0mwHuaqaZO3fuMGTIEJYvX87x48cpXrw4bm5u9O7dW+/QFBegxvJZwDebThNpKoct5Z+Drs8X1zmidPhzMmz5wtIu0xBe/wXcs8h06OkkpWThwoUEBgby22+/YTQaOXDgQMpPVBQbUonCyZ28/pAFey+b2580D8TT2WaH3fszbPjQ0i75EnSYCx6uvSbCtWvXaNu2LR07duT27dvUr1+fI0eO0LZtW71DU1yMk72jKNaklIxecwKjqej4pWf9qV/OyWaHPTAH1r5vaRerDZ0WgGd2/WJyACtXriQwMJAVK1aQO3dupk2bxpYtWyhTpozeoSkuSJ38dWKHbhvYdfYuoJXDftK8PMKZykePLIKVgyztItWh8yLwUpU7JUqUIDo6mhYtWjBlyhTzBWxF0YMaUTip+EQjC/6JN7e71ipG2QJOVA57/Hf4vS/mezALVYauS8E7t65h6cVgMLB8+XKkafGQSpUqcfDgQVauXKmShKI7lSic1KzdF7kZo72p5Pb2YEjDZ3WOKA3+WQtLe4E0au38QdBtOWTPo29cOjl+/DgvvPACbdu2ZcmSJeb+ChUqONcIUcmyVKJwQnejHjFpyxlze0jDZ52nHPbMZlgcAkatSotnnoXuy8Enn75x6SA+Pp4vvviCKlWqsGfPHooUKULu3K45olIcW6qvUQghigDFrZ8jpXTS2eac25PlsN1qO0k57Plt2sJDBtMps7wloftKyOl6M5vu27ePnj17cvSotuZ33759GTduHL6+vjpHpij/lapEIYQYB3QATgD/TnYv0eZmUjLRPzceMt+qHPbj5uWdoxz20p/aEqaJppltfYtByCrIXUjfuHSwevVqWrdujdFopHTp0syYMUNNXKc4tNSOKNoA5aSUj+wZjJI8KSWjVlvKYSv4ufNyOSf4NB6+H357HRK0KUbIVRhCVkIe11xp7ZVXXqFMmTK0atWKzz//HB8fH71DUpRkpfaj6HnAtW+RdQBbTt4yl8O6Cej0nJfjX+y8dgjmvAbxkVo7R35tJJGvpL5xZaKIiAiGDx/Ow4cPAfDx8eHw4cNMmDBBJQnFKaR2RBEDHBJCbAHMowop5Tt2iUr5j/hEI19azQ7bpVZxiuS6o2NEqXDzOMxpA48itLaPnzaSeMZ1bhpbvXo1/fr14+rVq0RFRTF58mQAvL29dY5MUVIvtYliJf+dIlzJRLP/vMiFO9EA5PL24N1Xn+XIPgdOFLdPwaxWEHtfa3vnge4rIL+TrpGRRrdv32bw4MHMnz8fgFq1atG/f3+do1KU9ElVopBSzrJ3IMrT3YuO53urctjBDcqSz5HLYe+e05JEjCmRZcsN3X6HghX1jSsTSCmZP38+77zzDnfv3sXHx4cvv/ySQYMG4e6upkpXnFOyiUIIsUhK+YYQ4ij/XcYUKWUlu0WmmH276TSRcaZy2Gdy0L12CX0DSs79S1qSiLqhtT1zaHdcF3GNVdf27t1Lly5dAGjQoAHTp0+nVKlSOkelKBmT0ohisOnfFvYOREnaqRuR/Lbnkrn9UfPyeHk4aDlsxFWY1RIehmttj+zQZREUddJ1u9Ph31NMVatWpUePHo5fbKAoqZDsO46U8rrp30tJfWVOiK7ryXLYumWf4ZXnHLQcNvKGliQemF4W7tmg03wo8aK+cdnZ2bNnadiwIXv37jX3TZ48mZ49e6okoWQZqfpoKoR4XgixTwgRJYSIF0IYhBAP7R2cq/vjn1vsPKud53cT8HHzQMd884m+A7Nbw71zWtvNEzrMgdIv6xuXHSUmJvL1119TsWJFtmzZwogRI/QOSVHsJrVVTz8CHYHFQHWgO+A6NY46iE808uUaSzls51rFKFfQAWeHjbkHs9vA7X+0tnDXVqZ7trG+cdnRkSNH6NmzJ/v37wegW7dufPvttzpHpSj2k+qT3VLKs4C7lNIgpfwFyLofFx3AnL8ucd66HNYRZ4eNi4C5r8FNbb4ihBu0+xnKt9Q3Ljt59OgRn332GdWqVWP//v0ULVqUtWvXMnv2bPz8/PQOT1HsJtU33AkhvIDDQojxwHVArS5jJ/ei4/l+82lze3CDsvjldLBlQR9Fwtz2cO2gqUNA65+gQjtdw7Kne/fu8f3335OYmMiAAQMYM2YMuXI54ChPUWwstYmiG9roYwDwLhAAZN13BJ19t/k0D03lsCX8fByvHDY+BuZ1hHDLBVxafAvBnfSLyU6io6PJli0bHh4eFCpUiNDQUPLnz0/dunX1Dk1RMk2yp56EEK2FEANMVU5xwCbgTaAtEJwJ8bmc0zcj+W2PZXbYj5oHOlY5bEIcLOgMl3Za+pqOh+pv6ReTnWzZsoWKFSvy/fffm/vatWunkoTiclJ6BxrG41N3ZAOqAfWBt+0Uk8v6txzWYKqHfaGMHw3LO1A5bGI8LOoG57da+l4dBbX66heTHTx48IBevXrRsGFDLly4wNKlSzEajXqHpSi6SSlReEkpr1i1d0op70kpL6OuUdhc2Knb7DjjoOWwhgRY8hac2Wjpe/ljeCFrzQu5YsUKAgMDCQ0NxcvLiy+//JJt27bh5uZAozpFyWQpXaPIa92QUg60avrbPhzXlWAwMmrNCXO7Y81ilC/kIMtiGg2wrA/8s9rS99L/oN7/9IvJxqKioujVqxcLFy4EoHbt2oSGhlK+vGtMYqgoyUnpY9IeIUTvJzuFEH2BvUk8XkmnOX9e4vxtUzlsNg/ee9VBymGNRlgxAI4vs/TVGQQvf6RfTHbg4+NDeHg4OXLkYNKkSezYsUMlCUUxSWlE8S6wXAjRGThg6quGdq2ijT0DcyX3o+P5zqoc9h1HKYeVElYPgcPzLX01+2jXJRzllFgGXLlyBTc3N4oUKYKbmxuzZs3C3d2dEiVK6B2aojiUlOZ6uiWlrAOMAi6avr6QUtaWUt60f3iu4cly2JA6JfQNCLQksW44HLCaYb5qCDQZ5/RJwmg0MmXKFAIDA+nduzdSasUDpUuXVklCUZKQ2vUo/gD+sHMsLunMzUjmWpXDftjMAWaHlRI2fQJ7p1n6KnWEFt+Bk1/UPX36NL169WLHjh0AZM+endjYWLUkqaIkw7n/6rOA0WtOmsth65T249XAAjpHBGz9Cnb/YGkHvQatJzt1kkhMTGT8+PFUrlyZHTt2UKBAAZYsWcLSpUtVklCUFKT2zmzFDraeusW207cBrRz2kxYOUA67fQJsH29pP9cCXpsO7s77UklMTOTFF19kz549AISEhPDNN9+QL18+nSNTFOfgvH/9Ti7BYGT0aks5bIcaDlAOu/sH+GO0pV22EbSfCe6e+sVkAx4eHjRo0IDr168zffp0GjfOujPbKoo9OO+5BCf321+XOGcqh82ZzYP3GulcDrv3Z9j4saVdqj68MQc8HKD6Kh12797Nxo2WmwM/+eQTjh07ppKEoqSDShQ6eBATz7ebz5jbg14pwzN6lsP+PQvWvm9pF38BOs4DT2/9YkqnqKgoBg8ezIsvvkhISAj3798HwNvbW830qijpZNdEIYRoIoQ4JYQ4K4T4IJnH1TCtmtfenvE4iu82nyEiNgGAYvl8ePOFEvoFc2g+rBpsaQfUgM4Lwcv5ZmjZuHEjFSpUYNKkSbi5udGjRw+yZ8+ud1iK4vTsdo1CCOEOTAZeBcKBfUKIlVLKE0k8bhywwV6xOJKztyKZ85dlufEPm5Unm4e7PsEcWwor+gOmRbkLBUOXJZDNuT55379/n3HjxrF+/XoAqlSpwsyZMwkOVhMcK4ot2HNEURM4K6U8L6WMBxYArZN43CBgKXDLjrE4DOty2Nql/GgcpFM57MlVsLQ3SNOsqAUqQLffIXsefeLJgBYtWrB+/XqyZcvGmDFj2LNnj0oSimJD9qx6KgJYzzwbDtSyfoAQogja2havADWetiEhRB+gD4C/vz9hYWG2jjVTHLmdSNipRwAIoGnBaLZt25bu7UVFRaXrWOS7u58Kx8bgJg0ARPsU5VDpYSTsPZLuWPT02muvERERwbBhwyhWrBi7du3SOyRdpfd1kRWpY2Eb9kwUSd0QIJ9ofwcMl1Iakrt/QEo5HZgOUK5cOVm/fn1bxZhpEgxGRn+/A9ASRceaReneqlKGthkWFkaaj8W5rbBjPEhtyhDylSbHW2t5IVfBDMWSWaSUzJ49mzNnzjB6tFbKW79+fapWrcrLL6tl3CGdr4ssSh0L27BnoggHilq1A4BrTzymOrDAlCSeAZoJIRKllMvtGJcu5u25zNlbUYBWDjv01XKZH8TFXTC/Exi0ZEWe4hCyCpwkSVy8eJG+ffuay17feOMNKlXSkq3uNyoqShZmz2sU+4CyQoiSQggvoCOPr5aHlLKklLKElLIEsATonxWThFYOa5kdduArZfDPlcnlsFf2wrw3IDFWa+cO0JKEb5HMjSMdjEYjP/zwAxUqVGDjxo3ky5eP2bNnU7FiRb1DUxSXYLcRhZQyUQgxEK2ayR2YKaU8LoToZ/r5VHvt29F8v+UMD2Is5bBvZXY57NUDMLcdxGsjGnIWhJCVkLd45saRDv/88w+9evUyX3d44403mDRpEgUKOMCcWIriIuw6hYeUci2w9om+JBOElPJNe8ail7O3opjzp3U57HOZWw574yjMaQuPHmptn2e0JOFXOvNiyIAvv/ySXbt2UbBgQaZMmUKbNmoZFEXJbGquJzv7au1JEk3lsLVK5qNxUCZeD7j1D8xuA3EPtHb2vNB9BfjrcH0kDRISEvD01OaX+uabb8ibNy+ff/45efPmTeGZiqLYg5rCw462nb7NH/9ot4eIzJ4d9u45mN0KYu5o7Wy+2n0SBStkzv7TITY2lhEjRlC7dm0SErRTdf7+/kyaNEklCUXRkRpR2EniE7PDvlGtKBWK+GbOzu9fhFktIcq0CKFXTui6FApXyZz9p8POnTvp2bMnp0+fRgjB1q1badSokd5hKYqCGlHYzfy9lzljVQ77XuNMmh02IlxLEg+vam1PH+iyGIo+9X5GXUVGRjJw4EDq1q3L6dOnKV++PLt27VJJQlEciBpR2EFETALfbLKUww54uQz5c2XCTKwPr2tJ4oFpaVX3bNBpPhSvY/99p8OmTZvo1asXly9fxsPDgxEjRvDRRx+RLZtzTm2uKFmVShR28P2WM9w3lcMWzZc9c8pho25r1yTundfa7l7Q8TdtXQkHdfHiRS5fvky1atUIDQ2lcuXKeoekKEoSVKKwsXO3o5j950Vz+8Om5fH2tHM5bMw9mN0a7phGMW4e8PqvUPZV++43jaSUnD9/ntKltdLcXr164ePjQ4cOHfDwUC9FRXFU6hqFjX21xlIOW7NkPppUsHM5bOwDmNMGbh3X2sIN2s2A55rbd79pdP36ddq1a0fFihU5f14b9Qgh6NKli0oSiuLgVKKwoe2nb7PFqhz2UzuXw7onxmh3XF8/bOoR0GYqBLW12z7TSkrJL7/8QmBgIL///jseHh6cOHEi5ScqiuIw1Ec5G0k0GBm9xvIG+Hq1APuWw8ZHU/HoKIiwetNtNQkqd7DfPtPowoUL9OnTh82bNwPQvHlzpk6dSkBAgM6RKYqSFipR2Mj8fVc4fVMrh83h5c77jex493NCLMzvSB7rJNHsa6ja3X77TKMlS5YQEhJCTEwMfn5+TJo0iU6dOqlZXhXFCalTTzYQEZvANxtPmdv9Xy5D/tx2KodNfAQLu8GF7Za+xl9Bzd722V86BQYGkpiYSMeOHTlx4gSdO3dWSUJRnJRKFDbwg1U5bJE82en5Ykn77MiQAIvfgrObLH0NPoXaA+yzvzRISEhg3rx5SKldyA8MDOT48ePMnz+f/Pnz6xydoigZoRJFBp2/HcWvuy+a2x82s1M5rCERlvaCU2vMXReLd4C679l+X2m0f/9+qlevTpcuXViwYIG5v0yZMjpGpSiKrahEkUFfrf3HUg5bIh/NKtqhHNZogBX94YTVmk4vDOZiiU6231caxMbGMmzYMGrVqsWRI0coVaoUhQsX1jUmRVFsTyWKDNh55g6bT2oT79ltdlijEVYPgSMLLX21+kHDz7Wd6mTbtm1UqlSJCRMmADB06FCOHj1KvXr1dItJURT7UFVP6ZRoMDLKanbY9lUDqBhg43JYKWHdMDgw29JX7S1oMlbXJLF8+XLattXu1QgKCiI0NJRatWrpFo+iKPalEkU6Ldh3hVM3IwHw8XLnf41tXA4rJWz8GPb9bOkL7gLNv9E1SQA0btyYChUq0L59e0aMGIGXl5eu8SiKYl/q1FM6RMQmMTusLcthpYQtX8CfP1r6KrSHVj+AW+b/l925c4eBAwfy4IG2Ul727Nk5cOAAn332mUoSiuIC1IgiHX784wz3ouMBO5XDbp8AO7+xtMu3grbTwC0T19pGm35j4cKFDBo0iDt37mAwGJgyZQqAealSRVGyPpUo0ujCnejHymFHNHvOtuWwO7+DrV9a2s82gXah4J65/1VXr16lf//+rFy5EoCXX36Z999/P1NjUBTFMahTT2n01dqTJBi0ctjqxfPSvGIh2238r6mw+TNLu/Qr8Pos8Mi80ztSSn7++WcCAwNZuXIluXPnZvr06WzZssU8PbiiKK5FjSjSYNfZO2w6cdPc/rSlDcth98+E9cMt7RJ1ocNv4JkJK+NZ2bNnD3369AGgZcuWTJkyhSJFimRqDIqiOBaVKFLJYJSPlcO2qxpApYA8ttn4oXmw+l1Lu2gt6LQAvHxss/0USCnNCe/5559n6NCh1KhRgw4dOqj5mRRFUaeeUmvhviv8c0Mrh83u6c6wJjYqhz26BFZYzdVUuCp0WQzZctpm+yk4duwYderU4c8//zT3TZw4kY4dO6okoSgKoBJFqjyMS2Ci9eyw9UtTwBblsCdWwrI+II1au2BF6LYMvO24joVJfHw8n3/+OVWrVuWvv/7is88+S/lJiqK4JHXqKRV+/OMsd63KYXu/VCrjGz21Hpb0AGnQ2v7lodtyyJ4349tOwd69e+nZsyfHjh0D4O2332bs2LF236+iKM5JjShScPFONL/sumBuf9DUBuWwZ7fAom5g1KYmx68MdF8BOZ7J2HZTEBMTw/vvv0/t2rU5duwYZcqUISwsjJ9++oncuXPbdd+KojgvNaJIgXU5bLXieWlRKYPlsBd2wIIuYNBGKOQtASGrIFeBjG03FSIjI5k5cyYAw4YNY+TIkWTPnt3u+1WU9EhISCA8PJy4uLh0b8PX15eTJ0/aMCrH5+3tTUBAgE1vilWJIhm7z95ho3U5bEZnh738F8zrAImxWtu3qJYkcttvau6IiAh8fHzw9PSkQIECzJo1i0KFClG9enW77VNRbCE8PJxcuXJRokSJdP/dRUZGkitXLhtH5riklNy9e5fw8HBKlrTdjBHq1NNTGIySL6zKYV+rWoTKRTNQDhv+N8xtDwnRWjtXIQhZCXmKZTDSp1u1ahWBgYFMnDjR3NeyZUuVJBSnEBcXh5+fn6q+SwMhBH5+fhkahSVFJYqnWLT/iXLYxs+lf2PXj8DcthCvbY8c+bWRRD4bXBRPwu3bt+ncuTOtWrXi2rVrrF+/HqPRaJd9KYo9qSSRdvY4ZipRJOFhXAJfb7CUw75dvzQFfdNZDnvzBMxuDXERWjt7Pu3C9TNlbRDp46SUzJs3j/LlyzN//nx8fHz49ttv2bJlC246zDqrKErWoN49kjB5q6UctrCvN73rpvOT/50zWpKIvae1vX2h+3IoEGijSC0ePnxIy5Yt6dKlC3fv3qVBgwYcPXqUIUOG4O6eubPOKkpWcePGDTp27Ejp0qUJDAykWbNmnD59mosXL1KhQgW77PPRo0d06NCBMmXKUKtWLS5evGiX/aSFXROFEKKJEOKUEOKsEOKDJH7eRQhxxPS1WwhR2Z7xpMalu9H8svOiuT286XNk90rHG+298zCrJUTf0tpeuaDr71DIPr9izpw5iYyMxNfXl9DQUDZt2kSpUvY5taUorkBKSdu2balfvz7nzp3jxIkTfPXVV9y8eTPlJ2dAaGgoefPm5ezZs7z77rsMHz485SfZmd2qnoQQ7sBk4FUgHNgnhFgppTxh9bALQD0p5X0hRFNgOqDrmppj1v5DvEE7n1+lWB5aVU5HRdKDyzCrFURe19qeOaDrEgioZsNItaqQy5cvU6xYMdzc3Jg9ezaenp4ULmy/KipF0UOJD9bYbdsXxzZPsn/r1q14enrSr18/c19wcLD2HKtP+RcvXqRbt25ER2uFKj/++CN16tTh+vXrdOjQgYcPH5KYmMiUKVOoU6cOPXv2ZP/+/Qgh6NGjB+++++5j+12xYgUjR44EoH379gwcOPCx+dj0YM/y2JrAWSnleQAhxAKgNWBOFFLK3VaP/wsIsGM8Kfrz3F3WH79hbn/WMijt/zkPr2lJIuKK1vbwhs4LoNjzNoszMTGRb7/9lo8//ph69eqxYcMGhBAUL17cZvtQFFd37NgxqlVL+cNd/vz52bRpE97e3pw5c4ZOnTqxf/9+5s2bR+PGjfnoo48wGAzExMRw6NAhrl69ap4V4d9VI61dvXqVokWLAuDh4YGvry93797lmWfse0NucuyZKIoAV6za4SQ/WugJrEvqB0KIPkAfAH9/f8LCwmwUooVRSj7bbSkpq1PYgwfnDhF2LvXb8Ix/QJWDH+ITe1XbpvDgaOBw7l8ywqUwm8R57tw5JkyYwKlTlovtGzduJFu2bDbZvrOKioqyy+vCGWWVY+Hr60tkZKTd9/O0fcTFxREfH5/kz6OiojAajURGRhIREcH777/P0aNHcXd35+zZs0RGRhIUFET//v2JioqiRYsWVKpUCX9/f86ePUvfvn1p3LgxDRo0+M/2DQYDUVFR5n6j0UhUVFSa/sbj4uJs+xqQUtrlC3gdmGHV7gb88JTHvgycBPxS2u6zzz4r7WH+nkuy+PDVsvjw1fK5j9fJaw9i0raBqDtSTn5eys9ya1+f55Pyn7U2iy8uLk5+8skn0sPDQwKyaNGicuzYsTbbvrPbunWr3iE4jKxyLE6cOJHhbTx8+DDdz928ebOsW7dukj+7cOGCDAoKklJK+dlnn8n33ntPGgwGmZCQIN3d3c2Pu3r1qpw+fbqsUKGCnDVrlpRSysjISLlkyRLZokUL+dZbb/1n240aNZK7d++WUkqZkJAg/fz8pNFoTFPsSR07YL9M5/u5PS9mhwNFrdoBwLUnHySEqATMAFpLKe/aMZ6nioxL4Gur2WH71StNId80TG0Rex/mtIFbprNqwh3az4RyTW0SX2JiIs8//zyjRo0iMTGRAQMGcPz4cWrV0vVyjqJkaa+88gqPHj3i559/Nvft27ePbdu2Pfa4iIgIChUqhJubG3PmzMFg0Cb6vHTpEvnz56d379707NmTAwcOcOfOHYxGI+3atWPUqFEcOHDgP/tt1aoVs2bNAmDJkiW88sorut9PYs9TT/uAskKIksBVoCPQ2foBQohiwDKgm5TytB1jSdbkree4E6WVwxby9aZPWmaHjXsIc9vBjSOmDgFtp0Fga5vF5+HhQevWrYmJiWHGjBnUrVvXZttWFCVpQgh+//13hgwZwtixY/H29qZEiRJ89913jz2uf//+tGvXjsWLF/Pyyy+TI0cOAMLCwpgwYQKenp7kzJmT2bNnc/XqVd566y3zDbBjxoz5z3579uxJt27dKFOmDPny5WPBggX2/2VTILQRiZ02LkQz4DvAHZgppfxSCNEPQEo5VQgxA2gHXDI9JVFKmez8EuXKlZPW5+cz6vLdGBp+s81c6fR9x2BaB6dy6c9HUVqSuPKXpa/1ZKjSNcNxbdmyhbi4OJo31yoy4uPjMRgMj03iFxYWRv369TO8r6xAHQuLrHIsTp48Sfny5TO0DVeb6+lfSR07IcTfKb2/Po1dJwWUUq4F1j7RN9Xq+15AL3vGkJIx606mrxw2Pgbmd3w8STT/JsNJ4sGDB7z33nvMnDkTf39/Tp48iZ+fH15eXhnarqIoSnq59Oyxf52/y7pjlnLYT1I7O2xCHCzsAhd3WPqajIUaPTMUz/Lly+nfvz/Xr1/Hy8uLIUOGqHUiFEXRncsmCoNRMspqdtg2wYWpWiwVq8slxsPiN+HcH5a+hp/D82+nO5abN28yaNAgFi9eDECdOnWYMWNGhofdiqIotuCyiWLp3+Ecv/YQAG9PN4Y1ScXssIZEWNoTTlvd7lH/Q3hxSLrjkFLSunVr9uzZQ44cORgzZgwDBgxQk/gpiuIwXPLdKOpRIuOtZoft+1JpCudJoRzWaIDl/eDkSkvfi0Oh3rAMxSKEYNy4cTRu3Jhjx44xaNAglSQURXEoLjmi+GnrWe5EPQKgYG5v+tZLoRzWaISV78DRxZa+5wdAg08hjfXNRqORqVOncuHCBSZMmABAvXr1qFevXpq2oyiKkllc7qPrlXsxzNh5wdz+oOlz+Hglky+lhLXvwaG5lr7qPaHxl2lOEqdOnaJevXoMGDCAr7/+mqNHj6Y1fEVRMpEe04xv376dqlWr4uHhwZIlS+yyj7RyuUQxZt1JAEl+YQAAFEtJREFU4hO1ctjgoimUw0oJ60fA/pmWvipdodnXaUoSiYmJjB07lsqVK7Nz504KFCjAkiVLqFixYnp/DUVR7EzqNM14sWLF+PXXX+ncuXPKD84kLnXqac/5u6w9aimH/bRlIG5uT3nDlxI2j4Q9Uyx9Fd+AlpMgDdcQDh06ZL59H+DNN99k4sSJ5MuXLz2/gqK4ppG+6Xpaqm61GxmRZLde04yXKFECwKGuVbpMojAYJV9YlcO2Tqkcdts42GV1q35ga2gzBdzStojRd999x4EDByhevDjTp0+nUaNGaQ1dURQd6DXNuCNymUSx9MDj5bDDkyuH3fENhFnNwVKuGbQLBffUHa64uDi8vbU1tidOnEjBggX5+OOPyZkzZ7rjVxTFMSUkJDBw4EAOHTqEu7s7p09r09bVqFGDHj16kJCQQJs2bQgODqZUqVKcP3+eQYMG0bx5c6f54OgSiSLqUSITrMph+yRXDvvnT7Dlc0u7TEN4/Vdw90x5P1FRfPjhh4SFhbF//368vLzw8/Nj7NixGfwNFMXFPeX0UEoyMtdTUFBQqi4mf/vttxQoUIDDhw9jNBrNHxJfeukltm/fzpo1a+jWrRv/+9//6N69O4cPH2bDhg1MnjyZRYsWMXPmzBT2oD/HOQlmR1PCznI7UiuHLZA7G/2eVg67bwZsGGFpl6gLHeaCR8oLhmzcuJEKFSrwww8/cOLECXbs2JHicxRFcVx6TTPuiLJ8orhyL4afd1jKYYc3eUo57IE5sOY9S7tYbei8EDyTvxHv3r17vPXWWzRu3JhLly5RpUoV9u/fT4MGDWz1KyiKooN/pxnftGkTpUuXJigoiJEjR/5nTfr+/fsza9Ysnn/+eU6fPv3YNOPBwcFUqVKFpUuXMnjwYK5evUr9+vUJDg7mzTffTHKa8X379hEQEMDixYvp27cvQUFBmfL7JifLn3oau/4fczls5QBf2iQ1hfiRRbBykKVdpDp0XgReOZLd9qpVq+jduzc3b94kW7ZsfP7557z33nt4eGT5w6ooLqFw4cIsWrQoyZ/9e0G6bNmyHDlyxNz/75t/SEgIISEh/3leSqOIGjVqEB4ent6Q7SJLv6Ptu3iPNUeum9tJlsMe/x1+7wv8v707j46qyhM4/v0lZAXZAiiIGGwl2CyJBCQqCA4tqBAxA+owIChmoFvF5YhCjIfpbnFsWuxuQQEDMqA2SosLoMjigjASUEIDCYsgNEiAgwE1QEiAJHf+uC9JmbUIqSWV3+ecOnlbvbrvR/Fu3ffu+11nXI62sTDqPQivOWvriRMnOHbsGH369GHevHnExMTUYemVUso/BGxFUVxs+OPysu6wibHtiL+y3LMLu1fAe8lgbIuDNl3gvg8honml+zTGsHPnztKm4JgxY2jWrBlDhw71qz7PSilVlwL27PbelmwyD9ueEmGNgph8e7nusHs/hXfHQHGhnW/VCUZ/CJGVPwh34MABbrvtNnr27MnevXsBew0zKSlJKwmlVEALyDNcXoXssFdxuWt32P1f2oGHiuw42bToCKOXQZM2FfZVXFzMzJkz6dq1K6tXryYyMpL9+/d7+hCUUspvBOSlp9lr9/2iO+z4fr8qW3kw3Q5hWlhg55t1gDHLoWnbCvvZtWsXycnJbNiwAYB77rmHGTNmcOmll3r8GJRSyl8EXEWR/dMZ0taX/eJ/elBnGoc5h5m9Gf5+N5w/Y+cvaQdjlkHzKyrsZ9GiRTzwwAOcO3eOyy67jNmzZ3PXXXd54xCUUsqvBNylpz99UtYdtnv7ZiRd53SHPbIV3vx3OHfKzjduY1sSLTtWup/4+HiCgoJ48MEH2blzp1YSSjVAwcHBxMXFERsbS48ePUqvLtSV+++/v/Tp7+TkZHbu3FnDO3wjoFoUmw/8yEeu3WGHON1hj+2AN5PgrJMGIDLKtiRaXV26bX5+PosWLWLs2LGICDExMezZs4crrqjY2lBKNQwRERFs3boVgFWrVpGSklLhyey6Mm/ePI/sty4ETIuiuFx22CHd29IzuiXk7IE3hkL+j3ZFeHMYvRTaXFu67fr164mLiyM5OZm33ioboEgrCaX8h4hU+UpLSyvdLi0trXR506ZNK2xbWydPnqRFC5tx+vTp0wwYMIAePXrQrVs3li5dCkBeXh6DBw8mNjaWrl27snjxYgAyMjLo168f8fHxDBo0iKNHj1bYf//+/dm8eTMATZo0ITU1ldjYWBISEkrHwMjJyWHYsGH06tWLXr168dVXX9X6eC5EwLQoPvjnYbZn2xZDaEl32BP7YGEi5OXYjcKawn3vw2V2wKBTp04xefJkZs2aBcC1117LNddc45PyK6X8T35+PnFxcRQUFHD06FE+//xzAMLDw/nggw9o2rQpx48fJyEhgTvvvJOVK1fSrl07Pv74Y8DmgTp//jwTJkxg6dKltG7dmsWLF5OamlptMsC8vDwSEhJ4/vnnefrpp5k7dy7PPvssjz32GE888QR9+vTh+++/Z9CgQezatcvjcQiIisJ2h91dOj+u71W0l+O2JXHaGagopDGMXAKX2/zyn3zyCePHj+fQoUM0atSIlJQUUlNTCQurOQGgUsr7jDFubTdu3DjGjRsHXFz2WPjlpaf09HRGjx5NVlYWxhieeeYZ1q1bR1BQEIcPH+bYsWN069aNiRMnMmnSJIYMGULfvn3JysoiKyuLW2+9FYCioiLatq3Yy9JVaGgoQ4YMAez90jVr1gDw6aef/uI+xsmTJy/6GN0REBXFa1/u49hJ2x229SVhPNQjHBYMgdxDdoNGETDyH9ChNwBLlizh7rvvBuw/wvz58+nevbtPyq6Uqh9uuOEGjh8/Tk5ODitWrCAnJ4eMjAxCQkKIjo6moKCATp06kZGRwYoVK0hJSWHgwIEkJSXRpUsX0tPT3f6skJCQ0stkwcHBFBbaB4OLi4tJT08nIqL6ZKV1rd7fo8j+6QyvrSvrDjulX0si306Cnw/aBcFhMOJtiO5Tuk1iYiLx8fG8+OKLbNy4USsJpVSNdu/eTVFREVFRUeTm5tKmTRtCQkL44osvOHjQnm+OHDlCZGQko0aNYuLEiWzZsoWYmBhycnJKK4rz58+zY8eOWpVh4MCBvPLKK6XzJa0dT6v3LYppK7/lrNMd9qa2MGTb7+DHfXZlUAjc+yZHImJ4duxYpk+fTsuWLQkLC2PTpk0EB1/YsKZKqYal5B4F2EtfCxcuJDg4mJEjR5KYmEjPnj2Ji4ujc2ebIigzM5OnnnqKoKAgQkJCmD17NqGhoSxZsoRHH32U3NxcCgsLefzxx2uVPnzGjBk8/PDDdO/encLCQm6++WbmzJlTp8dcmXpdUWQc/JHl244A0IzTzOWvSI5zr0KCMcPnM399Nk8+eS+5ubmEhoaWBlUrCaVUTUoGISqvVatWlV5Kio6OZtCgQRWWx8XFsW7dugrLFyxYUDq9du3a0unTp0+XTg8fPpzhw4eXfm5JTypvqrcVhWt22Es4w7JmLxH5k5PfSYLYf/1Uxj06g88++wyAwYMHk5qa6qviKqVUvVVvK4oPtx5mW3YujclnYdg0rjxrM7oWFcPM/ERShz/FmTNniIqKYsaMGYwYMeKi+lArpVRDVS8rijPnCpm2cjfhnOX10On0kL2l677pOIEnxj4PwIgRI3j55Zdp3bq1r4qqlLoIxhj9gXeB3O1GfCHqZUUx58v9/HzyFHND/kJC0C6KjSFIBG7/Mwm9x5O6D3r37k1iYqKvi6qUqqXw8HBOnDhBVFSUVhZuMsZw4sQJwsPD63S/9a6iKCyG+V9+y6yQl7k5OJPNR4pIXpbPzCmP0Lf3eACmTp3q41IqpS5W+/btyc7OJicnp9b7KCgoqPOTpr8LDw+nffv2dbrPeldR/FxQzKvyMjcWb+Hpz8/yUvo5ig288NFe+j7k69IppepKSEgIHTtWnt3ZXWvXruW6666roxI1XB594E5EbhORb0XkOxGZXMl6EZEZzvrtItKjpn22KPqBiEPpdJ+Tx4sbzoEITz75ZGmqXqWUUnXLYy0KEQkGXgVuBbKBb0RkmTHGNeH67cA1zqs3MNv5W6WTuafov9DerOka3ZrX31nO9b2rfYtSSqmL4MkWxfXAd8aY/caYc8A7wNBy2wwF3jDWRqC5iFSbLeunAkNIEKTc25uM3Ye0klBKKQ/z5D2Ky4FDLvPZVGwtVLbN5cAvkrWLyDhgnDN7Fsh6YfEmXljcsG5SVaIVcNzXhfATGosyGosyGosyMbV9oycrisr6s5Xv4OvONhhj0oA0ABHZbIzpefHFq/80FmU0FmU0FmU0FmVEZHNt3+vJS0/ZgOsQce2BI7XYRimllA95sqL4BrhGRDqKSCjwH8CyctssA0Y7vZ8SgFxjTMUxApVSSvmMxy49GWMKReQRYBUQDMw3xuwQkd866+cAK4A7gO+AM8ADbuw6reZNGgyNRRmNRRmNRRmNRZlax0I8kRdEKaVU4Kj3I9wppZTyLK0olFJKVctvKwpPpP+or9yIxUgnBttFZIOIxPqinN5QUyxctuslIkUiMtyb5fMmd2IhIv1FZKuI7BCRL71dRm9x4/9IMxFZLiLbnFi4cz+03hGR+SLyg4hkVbG+dudNY4zfvbA3v/cBVwGhwDbg1+W2uQP4BPssRgKwydfl9mEsbgRaONO3N+RYuGz3ObazxHBfl9uH34vmwE6ggzPfxtfl9mEsngGmOdOtgR+BUF+X3QOxuBnoAWRVsb5W501/bVF4JP1HPVVjLIwxG4wxPzmzG7HPowQid74XABOA94AfvFk4L3MnFv8JvG+M+R7AGBOo8XAnFga4ROzAFk2wFUWhd4vpecaYddhjq0qtzpv+WlFUldrjQrcJBBd6nA9ifzEEohpjISKXA0nAHC+Wyxfc+V50AlqIyFoRyRCR0V4rnXe5E4tXgGuxD/RmAo8ZY4q9Uzy/Uqvzpr+OR1Fn6T8CgNvHKSK3YCuKPh4tke+4E4u/AZOMMUUBPiqaO7FoBMQDA4AIIF1ENhpj9ni6cF7mTiwGAVuBfwN+BawRkfXGmJOeLpyfqdV5018rCk3/Ucat4xSR7sA84HZjzAkvlc3b3IlFT+Adp5JoBdwhIoXGmA+9U0Svcff/yHFjTB6QJyLrgFgg0CoKd2LxAPAnYy/Ufyci/wI6A197p4h+o1bnTX+99KTpP8rUGAsR6QC8D9wXgL8WXdUYC2NMR2NMtDEmGlgCPBSAlQS4939kKdBXRBqJSCQ2e/MuL5fTG9yJxffYlhUicik2k+p+r5bSP9TqvOmXLQrjufQf9Y6bsZgCRAGznF/ShSYAM2a6GYsGwZ1YGGN2ichKYDtQDMwzxlTabbI+c/N78RywQEQysZdfJhljAi79uIi8DfQHWolINvDfQAhc3HlTU3gopZSqlr9eelJKKeUntKJQSilVLa0olFJKVUsrCqWUUtXSikIppVS1tKJQPuFkdt0qIlki8q7Tz9/bZegvIjd6+3NdPr+vk8l0q4hE+LAca0Uk4LpTq7qjFYXylXxjTJwxpitwDvitO28Skbp89qc/NvOur4wEpjtxyPdhOZSqllYUyh+sB64WkcZOPv1vROSfIjIUQETud1ody4HVItJERP5XRDKdnPrDnO0Giki6iGxxtm/iLD8gIn9wlmeKSGcRicZWTk84v+j7ikiiiGxyPvtT5wleRKS1iKxx3v+aiBwUkVbOulEi8rWzj9dEJLj8wYnIAGefmc7xhYlIMnAPMEVE/l5u+8Yi8rHYsROyROReZ/kUJzZZIpImztOVTovgryKyTkR2iR2L430R2SsiU51tokVkt4gsdGK2pLJWXFUxVA2cr/On66thvoDTzt9G2FQTvwP+BxjlLG+OzUnUGLgfm6OmpbNuGvA3l321wOZ1Wgc0dpZNAqY40weACc70Q9gnlAF+D0wst5+Sh1CTgZec6VeAFGf6NmwStVbYbKTLgRBn3SxgdLnjDMdm6+zkzL8BPO5ML6CS8TKAYcBcl/lmzt+WLsveBBKd6bWUjbXwGDZ3T1sgzIlbFBDtlPsmZ7v5JcfuvL9ndTHUV8N+aYtC+UqEiGwFNmPz8LwODAQmO8vXYk+yHZzt1xhjSvLs/wZ4tWRHxo7FkQD8GvjKef8Y4EqXz3vf+ZuBPWlWpj2wyknz8BTQxVneBzvGAcaYlUDJ2B8DsNlZv3E+cwB28BxXMcC/TFkOroXYwWWqkwn8RkSmiUhfY0yus/wWp8WTic2C2sXlPctc3rvDGHPUGHMWm8+oJAncIWPMV870W1TMMlxTDFUD5Ze5nlSDkG+MiXNd4FxKGWaM+bbc8t5AnusiKk87v8YYM6KKzzvr/C2i6u/9TOAvxphlItIf2+Io2XdlBFhojEmpYn11762SMWaPiMRjc/K8ICKrgT9jWyw9jTGHROT32Iq0RMnxFbtMl8yXHG/5mF1oDFUDpS0K5U9WARNcrr1fV8V2q4FHSmZEpAV2ZL+bRORqZ1mkiHSq4fNOAZe4zDcDDjvTY1yW/x/2fgIiMhB7iQrgM2C4iLRx1rUUkfK/wHcD0SXlAu4Dqh27WkTaAWeMMW8B07FDW5ZUCsed+wa1GQu8g4jc4EyPcI7LVW1iqBoArSiUP3kOm+lyu9jB4Z+rYrup2JHbskRkG3CLMSYHey/jbRHZjj3pda7h85YDSSU3s7EtiHdFZD3gmln0D8BAEdmCHZP8KHDKGLMTeBZ7g307sAZ7b6CUMaYAm6HzXeeSUTE1j77XDfjaufyTCkw1xvwMzMVeWvoQm1r7Qu0CxjhlbQnMLlfW2sRQNQCaPVapGohIGFBkbDrrG4DZ5S+b+Tunl9dHxnZHVuqC6D0KpWrWAfiHiARhn/n4Lx+XRymv0haFUkqpauk9CqWUUtXSikIppVS1tKJQSilVLa0olFJKVUsrCqWUUtX6f6cFlWNQH859AAAAAElFTkSuQmCC\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - }, - { - "ename": "ExecutableNotFound", - "evalue": "failed to execute ['dot', '-Tpng'], make sure the Graphviz executables are on your systems' PATH", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mFileNotFoundError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/graphviz/backend.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(cmd, input, capture_output, check, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m 163\u001b[0m \u001b[0;32mtry\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 164\u001b[0;31m \u001b[0mproc\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0msubprocess\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mPopen\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mstartupinfo\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mget_startupinfo\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;34m**\u001b[0m\u001b[0mkwargs\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 165\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36m__init__\u001b[0;34m(self, args, bufsize, executable, stdin, stdout, stderr, preexec_fn, close_fds, shell, cwd, env, universal_newlines, startupinfo, creationflags, restore_signals, start_new_session, pass_fds, encoding, errors)\u001b[0m\n\u001b[1;32m 728\u001b[0m \u001b[0merrread\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merrwrite\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 729\u001b[0;31m restore_signals, start_new_session)\n\u001b[0m\u001b[1;32m 730\u001b[0m \u001b[0;32mexcept\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/subprocess.py\u001b[0m in \u001b[0;36m_execute_child\u001b[0;34m(self, args, executable, preexec_fn, close_fds, pass_fds, cwd, env, startupinfo, creationflags, shell, p2cread, p2cwrite, c2pread, c2pwrite, errread, errwrite, restore_signals, start_new_session)\u001b[0m\n\u001b[1;32m 1363\u001b[0m \u001b[0merr_msg\u001b[0m \u001b[0;34m+=\u001b[0m \u001b[0;34m': '\u001b[0m \u001b[0;34m+\u001b[0m \u001b[0mrepr\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m-> 1364\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merrno_num\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_msg\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0merr_filename\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 1365\u001b[0m \u001b[0;32mraise\u001b[0m \u001b[0mchild_exception_type\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0merr_msg\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mFileNotFoundError\u001b[0m: [Errno 2] No such file or directory: 'dot': 'dot'", - "\nDuring handling of the above exception, another exception occurred:\n", - "\u001b[0;31mExecutableNotFound\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 41\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 42\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m---> 43\u001b[0;31m \u001b[0mxgb\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mplot_tree\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mxg_clf\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0mnum_trees\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 44\u001b[0m \u001b[0mplt\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mrcParams\u001b[0m\u001b[0;34m[\u001b[0m\u001b[0;34m'figure.figsize'\u001b[0m\u001b[0;34m]\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0;34m[\u001b[0m\u001b[0;36m50\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;36m10\u001b[0m\u001b[0;34m]\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 45\u001b[0m \u001b[0msave_fig\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m\"xgtree\"\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/xgboost/plotting.py\u001b[0m in \u001b[0;36mplot_tree\u001b[0;34m(booster, fmap, num_trees, rankdir, ax, **kwargs)\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 247\u001b[0m \u001b[0ms\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mBytesIO\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 248\u001b[0;31m \u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mwrite\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mg\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mpipe\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mformat\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;34m'png'\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 249\u001b[0m \u001b[0ms\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mseek\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0;36m0\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 250\u001b[0m \u001b[0mimg\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mimage\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mimread\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0ms\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/graphviz/files.py\u001b[0m in \u001b[0;36mpipe\u001b[0;34m(self, format, renderer, formatter, quiet)\u001b[0m\n\u001b[1;32m 136\u001b[0m out = backend.pipe(self._engine, format, data,\n\u001b[1;32m 137\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformatter\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mformatter\u001b[0m\u001b[0;34m,\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 138\u001b[0;31m quiet=quiet)\n\u001b[0m\u001b[1;32m 139\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 140\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/graphviz/backend.py\u001b[0m in \u001b[0;36mpipe\u001b[0;34m(engine, format, data, renderer, formatter, quiet)\u001b[0m\n\u001b[1;32m 242\u001b[0m \"\"\"\n\u001b[1;32m 243\u001b[0m \u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mcommand\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mengine\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformat\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0;32mNone\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mrenderer\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mformatter\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 244\u001b[0;31m \u001b[0mout\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0m_\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mrun\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0minput\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mdata\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcapture_output\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mcheck\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0;32mTrue\u001b[0m\u001b[0;34m,\u001b[0m \u001b[0mquiet\u001b[0m\u001b[0;34m=\u001b[0m\u001b[0mquiet\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 245\u001b[0m \u001b[0;32mreturn\u001b[0m \u001b[0mout\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 246\u001b[0m \u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;32m~/anaconda3/lib/python3.6/site-packages/graphviz/backend.py\u001b[0m in \u001b[0;36mrun\u001b[0;34m(cmd, input, capture_output, check, encoding, quiet, **kwargs)\u001b[0m\n\u001b[1;32m 165\u001b[0m \u001b[0;32mexcept\u001b[0m \u001b[0mOSError\u001b[0m \u001b[0;32mas\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 166\u001b[0m \u001b[0;32mif\u001b[0m \u001b[0me\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0merrno\u001b[0m \u001b[0;34m==\u001b[0m \u001b[0merrno\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mENOENT\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m--> 167\u001b[0;31m \u001b[0;32mraise\u001b[0m \u001b[0mExecutableNotFound\u001b[0m\u001b[0;34m(\u001b[0m\u001b[0mcmd\u001b[0m\u001b[0;34m)\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 168\u001b[0m \u001b[0;32melse\u001b[0m\u001b[0;34m:\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 169\u001b[0m \u001b[0;32mraise\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mExecutableNotFound\u001b[0m: failed to execute ['dot', '-Tpng'], make sure the Graphviz executables are on your systems' PATH" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": { - "needs_background": "light" - }, - "output_type": "display_data" - } - ], + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "\n", "import matplotlib.pyplot as plt\n", @@ -1933,7 +1458,7 @@ "\n", "y_test = xg_clf.predict(X_test_scaled)\n", "\n", - "print(\"Test set accuracy with xgboost and scaled data: {:.2f}\".format(xg_clf.score(X_test_scaled,y_test)))\n", + "print(\"Test set accuracy with Random Forests and scaled data: {:.2f}\".format(xg_clf.score(X_test_scaled,y_test)))\n", "\n", "import scikitplot as skplt\n", "y_pred = xg_clf.predict(X_test_scaled)\n", @@ -1959,34 +1484,9 @@ "save_fig(\"xgparams\")\n", "plt.show()" ] - }, - { - "cell_type": "code", - "execution_count": null, - "metadata": {}, - "outputs": [], - "source": [] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.6.8" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 4 } diff --git a/doc/src/week45/week45.do.txt b/doc/src/week45/week45.do.txt index dbe502765..f29755c32 100644 --- a/doc/src/week45/week45.do.txt +++ b/doc/src/week45/week45.do.txt @@ -734,27 +734,9 @@ plt.show() !ec -!split -===== Additive boosting for Regression ===== - -Here we present "Drucker's AdaBoost":"https://pdfs.semanticscholar.org/8d49/e2dedb817f2c3330e74b63c5fc86d2399ce3.pdf" tailored for regression. - -In bagging, each training example is equally likely to be -picked. In boosting, the probability of a particular -example being in the training set of a particular machine -depends on the performance of the prior machines on -that example. The following is a modification of -Adaboost by Drucker. - -Start by selecting a set of training data $n$ and assign to each entry a weight $w_i=1$ for $i=1,2,\dots,n$. As we have done earlier, we could pick say $80\%$ of the data set for training. The algorithm runs as follows: -o We define the probability that the training sample $i$ is in the set by $p_i = w_i/\sum_iw_i$. We pick $n$ samples (with replacement) to form our training set. We pick a number uniformly in the range $[0,\sum_iw_i]$. -o We choose then a regression machine (for example plain linear regression or a simple decision tree). A given regression machine makes then a hypothesis. -o Using every member of the training set with the chosen regression machine we obtain then a prediction $\tilde{y}_i$. -o We calculate then the loss function $L_i$ for each training sample. We can use various types of loss function as long as we have a value -$L_i\in [0,1]$. !split -===== Gradient boosting: Basics with Steepest Descent ===== +===== Gradient boosting: Basics with Steepest Descent/Functional Gradient Descent ===== Gradient boosting is again a similar technique to Adaptive boosting, it combines so-called weak classifiers or regressors into a strong @@ -836,8 +818,8 @@ o Initialize our estimate $f_0(x)$. o For $m=1:M$, we o compute the negative gradient vector $\bm{u}_m = -\partial C(\bm{y},\bm{f})/\partial \bm{f}(x)$ at $f(x) = f_{m-1}(x)$; o fit the so-called base-learner to the negative gradient $h_m(u_m,x)$; - o update the estimate $f_m(x) = f_{m-1}(x)+\nu h_m(u_m,x)$; -o The final estimate is then $f_M(x) = \sum_{m=1}^M\nu h_m(u_m,x)$. + o update the estimate $f_m(x) = f_{m-1}(x)+h_m(u_m,x)$; +o The final estimate is then $f_M(x) = \sum_{m=1}^M h_m(u_m,x)$.