From 18239e1a2126f76b3ee8ace105f14c259544fc4d Mon Sep 17 00:00:00 2001 From: mhjensen Date: Mon, 11 Nov 2019 23:49:53 +0100 Subject: [PATCH] added steepest descent boosting --- .../html/._DecisionTrees-bs000.html | 38 ++++--- .../html/._DecisionTrees-bs001.html | 38 ++++--- .../html/._DecisionTrees-bs002.html | 38 ++++--- .../html/._DecisionTrees-bs003.html | 38 ++++--- .../html/._DecisionTrees-bs004.html | 38 ++++--- .../html/._DecisionTrees-bs005.html | 38 ++++--- .../html/._DecisionTrees-bs006.html | 38 ++++--- .../html/._DecisionTrees-bs007.html | 38 ++++--- .../html/._DecisionTrees-bs008.html | 38 ++++--- .../html/._DecisionTrees-bs009.html | 38 ++++--- .../html/._DecisionTrees-bs010.html | 38 ++++--- .../html/._DecisionTrees-bs011.html | 38 ++++--- .../html/._DecisionTrees-bs012.html | 38 ++++--- .../html/._DecisionTrees-bs013.html | 38 ++++--- .../html/._DecisionTrees-bs014.html | 38 ++++--- .../html/._DecisionTrees-bs015.html | 38 ++++--- .../html/._DecisionTrees-bs016.html | 38 ++++--- .../html/._DecisionTrees-bs017.html | 38 ++++--- .../html/._DecisionTrees-bs018.html | 38 ++++--- .../html/._DecisionTrees-bs019.html | 38 ++++--- .../html/._DecisionTrees-bs020.html | 38 ++++--- .../html/._DecisionTrees-bs021.html | 38 ++++--- .../html/._DecisionTrees-bs022.html | 38 ++++--- .../html/._DecisionTrees-bs023.html | 38 ++++--- .../html/._DecisionTrees-bs024.html | 38 ++++--- .../html/._DecisionTrees-bs025.html | 38 ++++--- .../html/._DecisionTrees-bs026.html | 38 ++++--- .../html/._DecisionTrees-bs027.html | 38 ++++--- .../html/._DecisionTrees-bs028.html | 38 ++++--- .../html/._DecisionTrees-bs029.html | 38 ++++--- .../html/._DecisionTrees-bs030.html | 38 ++++--- .../html/._DecisionTrees-bs031.html | 38 ++++--- .../html/._DecisionTrees-bs032.html | 38 ++++--- .../html/._DecisionTrees-bs033.html | 38 ++++--- .../html/._DecisionTrees-bs034.html | 38 ++++--- .../html/._DecisionTrees-bs035.html | 38 ++++--- .../html/._DecisionTrees-bs036.html | 38 ++++--- .../html/._DecisionTrees-bs037.html | 38 ++++--- .../html/._DecisionTrees-bs038.html | 38 ++++--- .../html/._DecisionTrees-bs039.html | 38 ++++--- .../html/._DecisionTrees-bs040.html | 38 ++++--- .../html/._DecisionTrees-bs041.html | 38 ++++--- .../html/._DecisionTrees-bs042.html | 38 ++++--- .../html/._DecisionTrees-bs043.html | 38 ++++--- .../html/._DecisionTrees-bs044.html | 38 ++++--- .../html/._DecisionTrees-bs045.html | 38 ++++--- .../html/._DecisionTrees-bs046.html | 38 ++++--- .../html/._DecisionTrees-bs047.html | 38 ++++--- .../html/._DecisionTrees-bs048.html | 38 ++++--- .../html/._DecisionTrees-bs049.html | 38 ++++--- .../html/._DecisionTrees-bs050.html | 38 ++++--- .../html/._DecisionTrees-bs051.html | 38 ++++--- .../html/._DecisionTrees-bs052.html | 38 ++++--- .../html/._DecisionTrees-bs053.html | 37 +++--- .../html/._DecisionTrees-bs054.html | 37 +++--- .../html/._DecisionTrees-bs055.html | 42 ++++--- .../html/._DecisionTrees-bs056.html | 60 +++++----- .../html/._DecisionTrees-bs057.html | 107 +++++++----------- .../html/._DecisionTrees-bs058.html | 105 +++++++++-------- .../html/._DecisionTrees-bs059.html | 92 ++++++++++----- .../html/._DecisionTrees-bs060.html | 97 ++++++---------- .../DecisionTrees/html/DecisionTrees-bs.html | 38 ++++--- .../html/DecisionTrees-reveal.html | 32 ++++-- .../html/DecisionTrees-solarized.html | 47 +++++--- doc/pub/DecisionTrees/html/DecisionTrees.html | 47 +++++--- .../DecisionTrees/ipynb/DecisionTrees.ipynb | 21 +++- .../ipynb/ipynb-DecisionTrees-src.tar.gz | Bin 294061 -> 294061 bytes .../pdf/DecisionTrees-minted.pdf | Bin 542776 -> 550778 bytes doc/src/DecisionTrees/DecisionTrees.do.txt | 17 ++- 69 files changed, 1665 insertions(+), 1128 deletions(-) diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html index b1cd969e8..1de6f6e4b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -309,7 +317,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html index c64a99e8a..14644dacf 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -314,7 +322,7 @@ given some assumptions, make predictions about the target feature value
  • 10
  • 11
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html index 0ff176617..e63554739 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -292,7 +300,7 @@ This tree was produced using the Wisconsin cancer data (discussed here as well,
  • 11
  • 12
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html index 711d3db2c..4e600418d 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -300,7 +308,7 @@ node.
  • 12
  • 13
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html index 51de6dd3a..3be2300a8 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -301,7 +309,7 @@ Then we are essentially done!
  • 13
  • 14
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html index d9017f99d..c4e151984 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -380,7 +388,7 @@ plt.show()
  • 14
  • 15
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html index 54ecd74cb..b1ed4994b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -313,7 +321,7 @@ within box \( j \).
  • 15
  • 16
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html index 6008fa889..6ba0f87aa 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -305,7 +313,7 @@ better tree in some future step.
  • 16
  • 17
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html index b98b9369d..e04a391ef 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -338,7 +346,7 @@ region contains more than five observations.
  • 17
  • 18
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html index 382b83c55..b7bbf5820 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -307,7 +315,7 @@ parameter \( \alpha \).
  • 18
  • 19
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html index bbff5560a..bc537bee7 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -320,7 +328,7 @@ subtree corresponding to \( \alpha \).
  • 19
  • 20
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html index bb9e2857c..db8ea7bec 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -316,7 +324,7 @@ MathJax.Hub.Config({
  • 20
  • 21
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html index 4d264f91c..bc1e25cec 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -308,7 +316,7 @@ fall into that region.
  • 21
  • 22
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html index a33ead00d..adb09abbd 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -313,7 +321,7 @@ than is the classification error rate.
  • 22
  • 23
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html index 50a90ff1b..ea417c0e5 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -339,7 +347,7 @@ $$
  • 23
  • 24
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html index 7aad9b445..153a21ff7 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -330,7 +338,7 @@ os.system(cmd)
  • 24
  • 25
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html index 6b522116e..ad84db902 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -321,7 +329,7 @@ os.system(cmd)
  • 25
  • 26
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html index ce6404038..faf5731cf 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -304,7 +312,7 @@ We discuss both algorithms with applications here. The popular library Scikit
  • 26
  • 27
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html index e52a30779..b47df258f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -294,7 +302,7 @@ MathJax.Hub.Config({
  • 27
  • 28
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html index 7e8d938c9..c7172a2d5 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -294,7 +302,7 @@ MathJax.Hub.Config({
  • 28
  • 29
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html index 76fd563dc..4ac60dc1a 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -334,7 +342,7 @@ The table here summarizes the various attributes and
  • 29
  • 30
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html index 645a3f990..514ad9f17 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -365,7 +373,7 @@ os.system(cmd)
  • 30
  • 31
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html index bf5f2f8c3..91c083d28 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -367,7 +375,7 @@ split = get_split(dataset)
  • 31
  • 32
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html index d11ef26e5..31e57ed9d 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -325,7 +333,7 @@ attributes at each step while growing the tree.
  • 32
  • 33
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html index 6e205d2a7..dff28202c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -485,7 +493,7 @@ MathJax.Hub.Config({
  • 33
  • 34
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html index c425838c8..59df7c247 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -338,7 +346,7 @@ deep_tree_clf.fit(X_train_scaled, y_train)
  • 34
  • 35
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html index 6f0a90299..f449fde9d 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -361,7 +369,7 @@ plt.show()
  • 35
  • 36
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html index f490442a4..c3c56e1b5 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -317,7 +325,7 @@ plt.show()
  • 36
  • 37
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html index 38d4171c1..5d0433429 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -311,7 +319,7 @@ tree_reg.fit(X, y)
  • 37
  • 38
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html index e92deff5f..7354d4364 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -367,7 +375,7 @@ plt.show()
  • 38
  • 39
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html index ed9f87b49..285468122 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -303,7 +311,7 @@ MathJax.Hub.Config({
  • 39
  • 40
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html index f5e04b9ef..eca648ad4 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -308,7 +316,7 @@ trees can be substantially improved.
  • 40
  • 41
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html index 0aef23b71..76d2740a8 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -316,7 +324,7 @@ We discuss these methods here.
  • 41
  • 42
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html index 4bd6b7b6c..f590a7fbd 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • 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 +305,7 @@ MathJax.Hub.Config({
  • 42
  • 43
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html index e3645d6c5..c57379bce 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -308,7 +316,7 @@ learning method.
  • 43
  • 44
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html index 23d3432a4..09b74d888 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -318,7 +326,7 @@ predictor, averaged over all \( B \) trees.
  • 44
  • 45
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html index 051eea3d5..afd55b199 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -310,7 +318,7 @@ plt.show()
  • 45
  • 46
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html index 8013401f5..fce7988c6 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -340,7 +348,7 @@ voting_clf.fit(X_train, y_train)
  • 46
  • 47
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html index 5a69776bd..87151433e 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -348,7 +356,7 @@ voting_clf.fit(X_train, y_train)
  • 47
  • 48
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs039.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs039.html index 8829cc78c..1a95f6675 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs039.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs039.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -351,7 +359,7 @@ plt.show()
  • 48
  • 49
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs040.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs040.html index 125faf41b..916ba26c7 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs040.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs040.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -352,7 +360,7 @@ plt.show()
  • 49
  • 50
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs041.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs041.html index 13eb76736..8cdb545f2 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs041.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs041.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -333,7 +341,7 @@ this setting.
  • 50
  • 51
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs042.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs042.html index 6253f401d..935c1bff2 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs042.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs042.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -315,7 +323,7 @@ We will grow of forest of say \( M \) trees.
  • 51
  • 52
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs043.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs043.html index 2e5aec99c..1157f7462 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs043.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs043.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -362,7 +370,7 @@ plt.show()
  • 52
  • 53
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs044.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs044.html index 66cd83100..6ac41e5d7 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs044.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs044.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -311,7 +319,7 @@ np.sum(y_pred =
  • 53
  • 54
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs045.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs045.html index 260c9ddd7..0b8ac3d22 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs045.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs045.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -306,7 +314,7 @@ them with a factor.
  • 54
  • 55
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs046.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs046.html index 47ca444c3..20588ae7f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs046.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs046.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -341,7 +349,7 @@ In iterative fitting or additive modeling, we minimize the cost function with re
  • 55
  • 56
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs047.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs047.html index 48d23ca4a..9355e747e 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs047.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs047.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -314,7 +322,7 @@ at the internal nodes, and the predictions at the terminal nodes.
  • 56
  • 57
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs048.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs048.html index dac77df12..45a3de23f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs048.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs048.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -337,7 +345,7 @@ The solution to these two equations gives us in turn \( \beta_1 \) and \( \gamma
  • 57
  • 58
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs049.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs049.html index d067271a0..15d0fc352 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs049.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs049.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -324,7 +332,7 @@ $$
  • 58
  • 59
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs050.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs050.html index 210eb2e34..dea227f8b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs050.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs050.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -317,7 +325,7 @@ where we have defined \( w_i^m= \exp{(-y_if_{m-1}(x_i))} \).
  • 59
  • 60
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs051.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs051.html index c2411b8f1..6be8d2e05 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs051.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs051.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -332,7 +340,7 @@ $$
  • 60
  • 61
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs052.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs052.html index b7c7ee3c9..0cbf64ab0 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs052.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs052.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -310,6 +318,8 @@ where the function \( I() \) is one if we misclassify and zero if we classify co
  • 60
  • 61
  • 62
  • +
  • ...
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs053.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs053.html index 4d9388966..83cd4267c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs053.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs053.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -327,6 +335,7 @@ observations that are missed in the previous iterations.
  • 60
  • 61
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs054.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs054.html index 22955d15d..f8510a9a0 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs054.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs054.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -319,6 +327,7 @@ plt.show()
  • 60
  • 61
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs055.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs055.html index b59026eb8..a02966033 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs055.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs055.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -266,7 +274,7 @@ MathJax.Hub.Config({ -

    Gradient boosting: Basics

    +

    Gradient boosting: Basics with Steepest Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -278,9 +286,6 @@ 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. -

    -See discussion during lecture November 8. -

    @@ -303,6 +308,7 @@ See discussion during lecture November 8.

  • 60
  • 61
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs056.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs056.html index ce76f15ab..284e0001b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs056.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs056.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -266,30 +274,17 @@ MathJax.Hub.Config({ -

    Gradient Boosting, algorithm

    +

    The Squared-Error again! Steepest Descent

    -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 +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 + $$ -C(\boldsymbol{y},\boldsymbol{f})=\sum_{i=0}^{n-1}(y_i-f(x_i))^2. +(\hat{\boldsymbol{f}}) \mathrm{argmin}_{\boldsymbol{f}}\hspace{0.1cm} \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. -
    -

      @@ -310,6 +305,7 @@ The way we proceed in an iterative fashion is to
    • 60
    • 61
    • 62
    • +
    • 63
    • »
    diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs057.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs057.html index f4d69394d..59ffb9c1c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs057.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs057.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -266,58 +274,30 @@ MathJax.Hub.Config({ -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, algorithm

    +

    +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. +$$ - -

    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()
    -

    +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/DecisionTrees/html/._DecisionTrees-bs058.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs058.html index 9f20d329f..53fb8cb7a 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs058.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs058.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -266,49 +274,55 @@ MathJax.Hub.Config({ -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Examples of Regression

    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
    -
    -# Load the data
    -cancer = load_breast_cancer()
    -
    -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.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)
     
    -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)))
    +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]))
     
    -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.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()
     

    @@ -330,6 +344,7 @@ plt.show()

  • 60
  • 61
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs059.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs059.html index 9093acc0b..95c63fc44 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs059.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs059.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -266,24 +274,51 @@ MathJax.Hub.Config({ -

    XGBoost: Extreme Gradient Boosting

    - +

    Gradient Boosting, Classification Example

    -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 
    +from sklearn.datasets import load_breast_cancer
    +import scikitplot as skplt
    +from sklearn.ensemble import GradientBoostingClassifier
    +from sklearn.model_selection import cross_validate
     
    -

    -It is now the algorithm which wins essentially all ML competitions!!! +# Load the data +cancer = load_breast_cancer() +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() +

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

  • 60
  • 61
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs060.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs060.html index b63aec67f..7c3c24e51 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs060.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs060.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -266,58 +274,24 @@ MathJax.Hub.Config({ -

    Regression Case

    +

    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
    -import xgboost as xgb
    -from sklearn.preprocessing import StandardScaler
    -import scikitplot as skplt
    -from sklearn.metrics import mean_squared_error
    +

    +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. -n = 100 -maxdegree = 6 +

    +It is now the algorithm which wins essentially all ML competitions!!! -# 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() -

    @@ -335,6 +309,7 @@ plt.show()

  • 60
  • 61
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-bs.html b/doc/pub/DecisionTrees/html/DecisionTrees-bs.html index b1cd969e8..1de6f6e4b 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-bs.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-bs.html @@ -140,19 +140,26 @@ Automatically generated HTML file from DocOnce source '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -244,13 +251,14 @@ MathJax.Hub.Config({
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • Basic Steps of AdaBoost
  • AdaBoost Examples
  • -
  • Gradient boosting: Basics
  • -
  • 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
  • +
  • The Squared-Error again! Steepest Descent
  • +
  • Gradient Boosting, algorithm
  • +
  • Gradient Boosting, Examples of Regression
  • +
  • Gradient Boosting, Classification Example
  • +
  • XGBoost: Extreme Gradient Boosting
  • +
  • Regression Case
  • +
  • Xgboost on the Cancer Data
  • @@ -309,7 +317,7 @@ MathJax.Hub.Config({
  • 9
  • 10
  • ...
  • -
  • 62
  • +
  • 63
  • »
  • diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html b/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html index 9b9b3510e..af57a8bd3 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html @@ -2355,7 +2355,7 @@ plt.show()
    -

    Gradient boosting: Basics

    +

    Gradient boosting: Basics with Steepest Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -2366,14 +2366,26 @@ method via a series of iterations. 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. - -

    -See discussion during lecture November 8.

    -

    Gradient Boosting, algorithm

    +

    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 +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. +$$ +

     
    +

    + + +
    +

    Gradient Boosting, algorithm

    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 @@ -2401,7 +2413,7 @@ The way we proceed in an iterative fashion is to

    -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Examples of Regression

    @@ -2456,7 +2468,7 @@ plt.show()

    -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Classification Example

    @@ -2505,7 +2517,7 @@ plt.show()

    -

    XGBoost: Extreme Gradient Boosting

    +

    XGBoost: Extreme Gradient Boosting

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

    -

    Regression Case

    +

    Regression Case

    @@ -2582,7 +2594,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/DecisionTrees/html/DecisionTrees-solarized.html b/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html index d0156f2db..c9df08769 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html @@ -160,19 +160,26 @@ div { text-align: justify; text-justify: inter-word; } '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -2316,7 +2323,7 @@ plt.show()











    -

    Gradient boosting: Basics

    +

    Gradient boosting: Basics with Steepest Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -2329,12 +2336,22 @@ bringing back the essential steps in linear regression, where our cost function was the least squares function.

    -See discussion during lecture November 8. +









    + +

    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 +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. +$$











    -

    Gradient Boosting, algorithm

    +

    Gradient Boosting, algorithm

    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 @@ -2360,7 +2377,7 @@ The way we proceed in an iterative fashion is to









    -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Examples of Regression

    @@ -2414,7 +2431,7 @@ plt.show()











    -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Classification Example

    @@ -2462,7 +2479,7 @@ plt.show()











    -

    XGBoost: Extreme Gradient Boosting

    +

    XGBoost: Extreme Gradient Boosting

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











    -

    Regression Case

    +

    Regression Case

    @@ -2538,7 +2555,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/DecisionTrees/html/DecisionTrees.html b/doc/pub/DecisionTrees/html/DecisionTrees.html index 941aaf5f3..3ac58f8f9 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees.html @@ -165,19 +165,26 @@ div { text-align: justify; text-justify: inter-word; } '___sec51'), ('Basic Steps of AdaBoost', 2, None, '___sec52'), ('AdaBoost Examples', 2, None, '___sec53'), - ('Gradient boosting: Basics', 2, None, '___sec54'), - ('Gradient Boosting, algorithm', 2, None, '___sec55'), + ('Gradient boosting: Basics with Steepest Descent', + 2, + None, + '___sec54'), + ('The Squared-Error again! Steepest Descent', + 2, + None, + '___sec55'), + ('Gradient Boosting, algorithm', 2, None, '___sec56'), ('Gradient Boosting, Examples of Regression', 2, None, - '___sec56'), + '___sec57'), ('Gradient Boosting, Classification Example', 2, None, - '___sec57'), - ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec58'), - ('Regression Case', 2, None, '___sec59'), - ('Xgboost on the Cancer Data', 2, None, '___sec60')]} + '___sec58'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec59'), + ('Regression Case', 2, None, '___sec60'), + ('Xgboost on the Cancer Data', 2, None, '___sec61')]} end of tocinfo --> @@ -2321,7 +2328,7 @@ plt.show()











    -

    Gradient boosting: Basics

    +

    Gradient boosting: Basics with Steepest Descent

    Gradient boosting is again a similar technique to Adaptive boosting, @@ -2334,12 +2341,22 @@ bringing back the essential steps in linear regression, where our cost function was the least squares function.

    -See discussion during lecture November 8. +









    + +

    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 +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. +$$











    -

    Gradient Boosting, algorithm

    +

    Gradient Boosting, algorithm

    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 @@ -2365,7 +2382,7 @@ The way we proceed in an iterative fashion is to









    -

    Gradient Boosting, Examples of Regression

    +

    Gradient Boosting, Examples of Regression

    @@ -2419,7 +2436,7 @@ plt.show()











    -

    Gradient Boosting, Classification Example

    +

    Gradient Boosting, Classification Example

    @@ -2467,7 +2484,7 @@ plt.show()











    -

    XGBoost: Extreme Gradient Boosting

    +

    XGBoost: Extreme Gradient Boosting

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











    -

    Regression Case

    +

    Regression Case

    @@ -2543,7 +2560,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/DecisionTrees/ipynb/DecisionTrees.ipynb b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb index 2aeaf36de..835164d95 100644 --- a/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb +++ b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb @@ -2555,7 +2555,7 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Gradient boosting: Basics\n", + "## Gradient boosting: Basics with Steepest 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", @@ -2565,8 +2565,25 @@ "bringing back the essential steps in linear regression, where our cost\n", "function was the least squares function.\n", "\n", - "See discussion during lecture November 8.\n", + "## The Squared-Error again! Steepest Descent\n", "\n", + "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\n", + "This means that for every iteration, we need to optimize" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ + "$$\n", + "(\\hat{\\boldsymbol{f}}) \\mathrm{argmin}_{\\boldsymbol{f}}\\hspace{0.1cm} \\sum_{i=0}^{n-1}(y_i-f(x_i))^2.\n", + "$$" + ] + }, + { + "cell_type": "markdown", + "metadata": {}, + "source": [ "## Gradient Boosting, algorithm\n", "\n", "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" diff --git a/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz b/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz index 246b4020e6e7e64ba0c44e2f1e6c4863201c4b49..19258d47e4e54e7227a408cafb96cead71bf5595 100644 GIT binary patch delta 30 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

    2qXlOuH8Q%mK(CtJojAgSc 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 delta 36351 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 w{_;G*;>n8hWHRxzT