From 2c8fdf957436214b409d767ce65c7c0be9719674 Mon Sep 17 00:00:00 2001 From: mhjensen Date: Tue, 5 Nov 2019 17:48:11 +0100 Subject: [PATCH] started to add material on gradient boosting --- .../html/._DecisionTrees-bs000.html | 21 ++-- .../html/._DecisionTrees-bs001.html | 19 +-- .../html/._DecisionTrees-bs002.html | 19 +-- .../html/._DecisionTrees-bs003.html | 19 +-- .../html/._DecisionTrees-bs004.html | 19 +-- .../html/._DecisionTrees-bs005.html | 19 +-- .../html/._DecisionTrees-bs006.html | 19 +-- .../html/._DecisionTrees-bs007.html | 19 +-- .../html/._DecisionTrees-bs008.html | 19 +-- .../html/._DecisionTrees-bs009.html | 19 +-- .../html/._DecisionTrees-bs010.html | 19 +-- .../html/._DecisionTrees-bs011.html | 19 +-- .../html/._DecisionTrees-bs012.html | 19 +-- .../html/._DecisionTrees-bs013.html | 19 +-- .../html/._DecisionTrees-bs014.html | 19 +-- .../html/._DecisionTrees-bs015.html | 19 +-- .../html/._DecisionTrees-bs016.html | 19 +-- .../html/._DecisionTrees-bs017.html | 19 +-- .../html/._DecisionTrees-bs018.html | 19 +-- .../html/._DecisionTrees-bs019.html | 19 +-- .../html/._DecisionTrees-bs020.html | 19 +-- .../html/._DecisionTrees-bs021.html | 19 +-- .../html/._DecisionTrees-bs022.html | 19 +-- .../html/._DecisionTrees-bs023.html | 19 +-- .../html/._DecisionTrees-bs024.html | 19 +-- .../html/._DecisionTrees-bs025.html | 19 +-- .../html/._DecisionTrees-bs026.html | 19 +-- .../html/._DecisionTrees-bs027.html | 19 +-- .../html/._DecisionTrees-bs028.html | 19 +-- .../html/._DecisionTrees-bs029.html | 19 +-- .../html/._DecisionTrees-bs030.html | 19 +-- .../html/._DecisionTrees-bs031.html | 19 +-- .../html/._DecisionTrees-bs032.html | 23 ++-- .../html/._DecisionTrees-bs033.html | 19 +-- .../html/._DecisionTrees-bs034.html | 19 +-- .../html/._DecisionTrees-bs035.html | 19 +-- .../html/._DecisionTrees-bs036.html | 19 +-- .../html/._DecisionTrees-bs037.html | 19 +-- .../html/._DecisionTrees-bs038.html | 19 +-- .../DecisionTrees/html/DecisionTrees-bs.html | 21 ++-- .../html/DecisionTrees-reveal.html | 103 ++++++++++++++-- .../html/DecisionTrees-solarized.html | 111 +++++++++++++++--- doc/pub/DecisionTrees/html/DecisionTrees.html | 111 +++++++++++++++--- .../DecisionTrees/ipynb/DecisionTrees.ipynb | 94 +++++++++++++-- .../ipynb/ipynb-DecisionTrees-src.tar.gz | Bin 213983 -> 213983 bytes .../pdf/DecisionTrees-minted.pdf | Bin 439743 -> 441329 bytes doc/src/DecisionTrees/DecisionTrees.do.txt | 86 ++++++++++++-- doc/src/DecisionTrees/rfcancer.py | 66 +++++++++++ 48 files changed, 993 insertions(+), 346 deletions(-) create mode 100644 doc/src/DecisionTrees/rfcancer.py diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html index 42e102612..f05dcbec4 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • @@ -242,7 +247,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 4, 2019

    +

    Nov 5, 2019


    diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html index ecec6e052..9c06d6c60 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({

  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html index 10e742c0d..d88b8a470 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html index babc3f8e6..d5c66f891 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html index e27daa8f3..af914bbb3 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html index cd89bf89f..64c8d5688 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html index a633a013f..cbc9f6f66 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html index ec8fd5c4c..38bb1f918 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html index 5d7a0a02d..5520a7aa1 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html index 7e0d79c64..f2c1e07f2 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html index a90f7ef7f..ba9313b7f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html index b468cbcc0..edb4eae11 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html index 5acbad162..9050aa322 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html index 743f757cd..318493518 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html index 990d9246e..cba54186a 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html index d8bed0045..313a7f044 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html index 39660ce4b..bdb273caf 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html index 01461e8b7..c7242f821 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html index 4ca9f7c88..86bc41c16 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html index 7d20eb124..b1e65e39f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html index addf1619c..6a9d745ab 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html index 3ab39a28b..e3f573b4b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html index d7341066e..0849a9b02 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html index 846eefc81..fb43399b8 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html index 6c328174c..9b22dcdc4 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html index ff5c15b78..2fcfd9fb9 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html index c42b05767..2fbaeef3c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html index e68237480..9470bf605 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html index f17414fad..49351bbaa 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html index 01ded5581..d625f57f1 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html index 9f624b150..6130f1d64 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html index fabfcc25f..8b1675cc3 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html index adc5fb5d2..18213ab5c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
  • Final regressor code
  • Pros and cons of trees, pros
  • Disadvantages
  • -
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • From a Single Tree to Many Trees, Meet the Jungle of Methods
  • Bagging
  • More bagging
  • Simple Voting Example, head or tail
  • @@ -196,8 +201,8 @@ MathJax.Hub.Config({
  • Now Bagging
  • Random forests
  • Random Forest Algorithm
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • +
  • Random Forests Compared with other Methods on the Cancer Data
  • +
  • Compare Bagging on Trees with Random Forests
  • Feature Importance
  • Boosting, a Bird'e Eye
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • @@ -223,7 +228,7 @@ MathJax.Hub.Config({ -

    From a Single Tree to Many Trees, that is meet the Jungle of Methods

    +

    From a Single Tree to Many Trees, Meet the Jungle of Methods

    As stated above and seen in many of the examples discussed here about @@ -236,7 +241,7 @@ This leads us to a set of different methods that can combine different machine learning algorithms or just use one of them to construct forests and jungles of trees, homogeneous ones or heterogenous ones. These methods are recognized by different names which we will try to explain here. These are

      -
    1. Votign classifiers
    2. +
    3. Voting classifiers
    4. Bagging and Pasting
    5. Random forests
    6. Boosting methods
    7. diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html index 975c811e7..814e81304 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    8. Final regressor code
    9. Pros and cons of trees, pros
    10. Disadvantages
    11. -
    12. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    13. +
    14. From a Single Tree to Many Trees, Meet the Jungle of Methods
    15. Bagging
    16. More bagging
    17. Simple Voting Example, head or tail
    18. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    19. Now Bagging
    20. Random forests
    21. Random Forest Algorithm
    22. -
    23. A simple scikit-learn example
    24. -
    25. Then random forests
    26. +
    27. Random Forests Compared with other Methods on the Cancer Data
    28. +
    29. Compare Bagging on Trees with Random Forests
    30. Feature Importance
    31. Boosting, a Bird'e Eye
    32. Adaptive boosting: AdaBoost, Basic Algorithm
    33. diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html index fdf6c10c4..fc1c21ca1 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    34. Final regressor code
    35. Pros and cons of trees, pros
    36. Disadvantages
    37. -
    38. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    39. +
    40. From a Single Tree to Many Trees, Meet the Jungle of Methods
    41. Bagging
    42. More bagging
    43. Simple Voting Example, head or tail
    44. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    45. Now Bagging
    46. Random forests
    47. Random Forest Algorithm
    48. -
    49. A simple scikit-learn example
    50. -
    51. Then random forests
    52. +
    53. Random Forests Compared with other Methods on the Cancer Data
    54. +
    55. Compare Bagging on Trees with Random Forests
    56. Feature Importance
    57. Boosting, a Bird'e Eye
    58. Adaptive boosting: AdaBoost, Basic Algorithm
    59. diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html index 474dba6b1..cdc69bf8c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    60. Final regressor code
    61. Pros and cons of trees, pros
    62. Disadvantages
    63. -
    64. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    65. +
    66. From a Single Tree to Many Trees, Meet the Jungle of Methods
    67. Bagging
    68. More bagging
    69. Simple Voting Example, head or tail
    70. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    71. Now Bagging
    72. Random forests
    73. Random Forest Algorithm
    74. -
    75. A simple scikit-learn example
    76. -
    77. Then random forests
    78. +
    79. Random Forests Compared with other Methods on the Cancer Data
    80. +
    81. Compare Bagging on Trees with Random Forests
    82. Feature Importance
    83. Boosting, a Bird'e Eye
    84. Adaptive boosting: AdaBoost, Basic Algorithm
    85. diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html index 0f51a5012..d6a711693 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    86. Final regressor code
    87. Pros and cons of trees, pros
    88. Disadvantages
    89. -
    90. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    91. +
    92. From a Single Tree to Many Trees, Meet the Jungle of Methods
    93. Bagging
    94. More bagging
    95. Simple Voting Example, head or tail
    96. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    97. Now Bagging
    98. Random forests
    99. Random Forest Algorithm
    100. -
    101. A simple scikit-learn example
    102. -
    103. Then random forests
    104. +
    105. Random Forests Compared with other Methods on the Cancer Data
    106. +
    107. Compare Bagging on Trees with Random Forests
    108. Feature Importance
    109. Boosting, a Bird'e Eye
    110. Adaptive boosting: AdaBoost, Basic Algorithm
    111. diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html index 32bcd8d58..31039557f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    112. Final regressor code
    113. Pros and cons of trees, pros
    114. Disadvantages
    115. -
    116. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    117. +
    118. From a Single Tree to Many Trees, Meet the Jungle of Methods
    119. Bagging
    120. More bagging
    121. Simple Voting Example, head or tail
    122. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    123. Now Bagging
    124. Random forests
    125. Random Forest Algorithm
    126. -
    127. A simple scikit-learn example
    128. -
    129. Then random forests
    130. +
    131. Random Forests Compared with other Methods on the Cancer Data
    132. +
    133. Compare Bagging on Trees with Random Forests
    134. Feature Importance
    135. Boosting, a Bird'e Eye
    136. Adaptive boosting: AdaBoost, Basic Algorithm
    137. diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html index 33680f159..9acb85de1 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    138. Final regressor code
    139. Pros and cons of trees, pros
    140. Disadvantages
    141. -
    142. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    143. +
    144. From a Single Tree to Many Trees, Meet the Jungle of Methods
    145. Bagging
    146. More bagging
    147. Simple Voting Example, head or tail
    148. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    149. Now Bagging
    150. Random forests
    151. Random Forest Algorithm
    152. -
    153. A simple scikit-learn example
    154. -
    155. Then random forests
    156. +
    157. Random Forests Compared with other Methods on the Cancer Data
    158. +
    159. Compare Bagging on Trees with Random Forests
    160. Feature Importance
    161. Boosting, a Bird'e Eye
    162. Adaptive boosting: AdaBoost, Basic Algorithm
    163. diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-bs.html b/doc/pub/DecisionTrees/html/DecisionTrees-bs.html index 42e102612..f05dcbec4 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-bs.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-bs.html @@ -85,8 +85,7 @@ Automatically generated HTML file from DocOnce source ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -101,8 +100,14 @@ Automatically generated HTML file from DocOnce source ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -187,7 +192,7 @@ MathJax.Hub.Config({
    164. Final regressor code
    165. Pros and cons of trees, pros
    166. Disadvantages
    167. -
    168. From a Single Tree to Many Trees, that is meet the Jungle of Methods
    169. +
    170. From a Single Tree to Many Trees, Meet the Jungle of Methods
    171. Bagging
    172. More bagging
    173. Simple Voting Example, head or tail
    174. @@ -196,8 +201,8 @@ MathJax.Hub.Config({
    175. Now Bagging
    176. Random forests
    177. Random Forest Algorithm
    178. -
    179. A simple scikit-learn example
    180. -
    181. Then random forests
    182. +
    183. Random Forests Compared with other Methods on the Cancer Data
    184. +
    185. Compare Bagging on Trees with Random Forests
    186. Feature Importance
    187. Boosting, a Bird'e Eye
    188. Adaptive boosting: AdaBoost, Basic Algorithm
    189. @@ -242,7 +247,7 @@ MathJax.Hub.Config({
      [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

      -

      Nov 4, 2019

      +

      Nov 5, 2019


      diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html b/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html index af922e8f1..11ddd11e0 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html @@ -148,7 +148,7 @@ MathJax.Hub.Config({

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

       
      -

      Nov 4, 2019

      +

      Nov 5, 2019


      @@ -1439,7 +1439,7 @@ However, by aggregating many decision trees, using methods like bagging, random

      -

      From a Single Tree to Many Trees, that is meet the Jungle of Methods

      +

      From a Single Tree to Many Trees, Meet the Jungle of Methods

      As stated above and seen in many of the examples discussed here about @@ -1452,7 +1452,7 @@ This leads us to a set of different methods that can combine different machine learning algorithms or just use one of them to construct forests and jungles of trees, homogeneous ones or heterogenous ones. These methods are recognized by different names which we will try to explain here. These are

        -

      1. Votign classifiers
      2. +

      3. Voting classifiers
      4. Bagging and Pasting
      5. Random forests
      6. Boosting methods
      7. @@ -1754,30 +1754,111 @@ this setting.

        Random Forest Algorithm

        The algorithm described here can be applied to both classification and regression problems. + +

        +We will grow of forest of say \( M \) trees. + +

          +

        1. For \( m=1:M \) we
        2. + +
            + +

          • Draw a bootstrap sample of from the training data organized in our \( \boldsymbol{X} \) matrix.
          • + +

          • We grow then a random forest tree \( T_m \) based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached
          • + +
              + +

            1. we select \( m \le p \) varibales at random from the \( p \) predictors/features
            2. + +

            3. pick the best split point among the \( m \) features using either the CART algorithm or the ID3 for classification and create a new node
            4. + +

            5. split the node into daughter nodes
            6. +
            +

            +

          +

        3. Output then the ensemble of trees \( \{T_m\}_1^{M} \) and make predictions for either a regression type of problem or a classification type of problem.
        4. +
        -

        A simple scikit-learn example

        +

        Random Forests Compared with other Methods on the Cancer Data

        -

        from sklearn.ensemble import RandomForestClassifier
        +
        import matplotlib.pyplot as plt
        +import numpy as np
        +from sklearn.model_selection import  train_test_split 
        +from sklearn.datasets import load_breast_cancer
        +from sklearn.svm import SVC
        +from sklearn.linear_model import LogisticRegression
        +from sklearn.tree import DecisionTreeClassifier
        +
        +# 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)
        +# Logistic Regression
        +logreg = LogisticRegression(solver='lbfgs')
        +logreg.fit(X_train, y_train)
        +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test)))
        +# Support vector machine
        +svm = SVC(gamma='auto', C=100)
        +svm.fit(X_train, y_train)
        +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test)))
        +# Decision Trees
        +deep_tree_clf = DecisionTreeClassifier(max_depth=None)
        +deep_tree_clf.fit(X_train, y_train)
        +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test)))
        +#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)
        +# Logistic Regression
        +logreg.fit(X_train_scaled, y_train)
        +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))
        +# Support Vector Machine
        +svm.fit(X_train_scaled, y_train)
        +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))
        +# Decision Trees
        +deep_tree_clf.fit(X_train_scaled, y_train)
        +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test)))
        +
        +
        +from sklearn.ensemble import RandomForestClassifier
         from sklearn.preprocessing import LabelEncoder
         from sklearn.model_selection import cross_validate
         # Data set not specificied
        -X = dataset.XXX
        -Y = dataset.YYY
        -#Instantiate the model with 100 trees and entropy as splitting criteria
        -Random_Forest_model = RandomForestClassifier(n_estimators=100,criterion="entropy")
        +#Instantiate the model with 500 trees and entropy as splitting criteria
        +Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion="entropy")
        +Random_Forest_model.fit(X_train_scaled, y_train)
         #Cross validation
        -accuracy = cross_validate(Random_Forest_model,X,Y,cv=10)['test_score']
        +accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score']
        +print(accuracy)
        +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(Random_Forest_model.score(X_test_scaled,y_test)))
        +
        +
        +import scikitplot as skplt
        +y_pred = Random_Forest_model.predict(X_test_scaled)
        +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
        +#<matplotlib.axes._subplots.AxesSubplot object at 0x7fe967d64490>
        +plt.show()
        +y_probas = Random_Forest_model.predict_proba(X_test_scaled)
        +skplt.metrics.plot_roc(y_test, y_probas)
        +plt.show()
        +skplt.metrics.plot_cumulative_gain(y_test, y_probas)
        +plt.show()
         
        -

        Then random forests

        +

        Compare Bagging on Trees with Random Forests

        diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html b/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html index 56336a6f5..19099da6f 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html @@ -105,8 +105,7 @@ div { text-align: justify; text-justify: inter-word; } ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -121,8 +120,14 @@ div { text-align: justify; text-justify: inter-word; } ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -180,7 +185,7 @@ MathJax.Hub.Config({

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

        -

        Nov 4, 2019

        +

        Nov 5, 2019












        @@ -1431,7 +1436,7 @@ However, by aggregating many decision trees, using methods like bagging, random











        -

        From a Single Tree to Many Trees, that is meet the Jungle of Methods

        +

        From a Single Tree to Many Trees, Meet the Jungle of Methods

        As stated above and seen in many of the examples discussed here about @@ -1444,7 +1449,7 @@ This leads us to a set of different methods that can combine different machine learning algorithms or just use one of them to construct forests and jungles of trees, homogeneous ones or heterogenous ones. These methods are recognized by different names which we will try to explain here. These are

          -
        1. Votign classifiers
        2. +
        3. Voting classifiers
        4. Bagging and Pasting
        5. Random forests
        6. Boosting methods
        7. @@ -1741,27 +1746,103 @@ this setting. The algorithm described here can be applied to both classification and regression problems.

          +We will grow of forest of say \( M \) trees. + +

            +
          1. For \( m=1:M \) we
          2. + +
              +
            • Draw a bootstrap sample of from the training data organized in our \( \boldsymbol{X} \) matrix.
            • +
            • We grow then a random forest tree \( T_m \) based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached
            • + +
                +
              1. we select \( m \le p \) varibales at random from the \( p \) predictors/features
              2. +
              3. pick the best split point among the \( m \) features using either the CART algorithm or the ID3 for classification and create a new node
              4. +
              5. split the node into daughter nodes
              6. +
              + +
            + +
          3. Output then the ensemble of trees \( \{T_m\}_1^{M} \) and make predictions for either a regression type of problem or a classification type of problem.
          4. +
          +









          -

          A simple scikit-learn example

          +

          Random Forests Compared with other Methods on the Cancer Data

          -

          from sklearn.ensemble import RandomForestClassifier
          +
          import matplotlib.pyplot as plt
          +import numpy as np
          +from sklearn.model_selection import  train_test_split 
          +from sklearn.datasets import load_breast_cancer
          +from sklearn.svm import SVC
          +from sklearn.linear_model import LogisticRegression
          +from sklearn.tree import DecisionTreeClassifier
          +
          +# 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)
          +# Logistic Regression
          +logreg = LogisticRegression(solver='lbfgs')
          +logreg.fit(X_train, y_train)
          +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test)))
          +# Support vector machine
          +svm = SVC(gamma='auto', C=100)
          +svm.fit(X_train, y_train)
          +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test)))
          +# Decision Trees
          +deep_tree_clf = DecisionTreeClassifier(max_depth=None)
          +deep_tree_clf.fit(X_train, y_train)
          +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test)))
          +#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)
          +# Logistic Regression
          +logreg.fit(X_train_scaled, y_train)
          +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))
          +# Support Vector Machine
          +svm.fit(X_train_scaled, y_train)
          +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))
          +# Decision Trees
          +deep_tree_clf.fit(X_train_scaled, y_train)
          +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test)))
          +
          +
          +from sklearn.ensemble import RandomForestClassifier
           from sklearn.preprocessing import LabelEncoder
           from sklearn.model_selection import cross_validate
           # Data set not specificied
          -X = dataset.XXX
          -Y = dataset.YYY
          -#Instantiate the model with 100 trees and entropy as splitting criteria
          -Random_Forest_model = RandomForestClassifier(n_estimators=100,criterion="entropy")
          +#Instantiate the model with 500 trees and entropy as splitting criteria
          +Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion="entropy")
          +Random_Forest_model.fit(X_train_scaled, y_train)
           #Cross validation
          -accuracy = cross_validate(Random_Forest_model,X,Y,cv=10)['test_score']
          +accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score']
          +print(accuracy)
          +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(Random_Forest_model.score(X_test_scaled,y_test)))
          +
          +
          +import scikitplot as skplt
          +y_pred = Random_Forest_model.predict(X_test_scaled)
          +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
          +#<matplotlib.axes._subplots.AxesSubplot object at 0x7fe967d64490>
          +plt.show()
          +y_probas = Random_Forest_model.predict_proba(X_test_scaled)
          +skplt.metrics.plot_roc(y_test, y_probas)
          +plt.show()
          +skplt.metrics.plot_cumulative_gain(y_test, y_probas)
          +plt.show()
           











          -

          Then random forests

          +

          Compare Bagging on Trees with Random Forests

          diff --git a/doc/pub/DecisionTrees/html/DecisionTrees.html b/doc/pub/DecisionTrees/html/DecisionTrees.html index c0ce80a23..1456bf337 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees.html @@ -110,8 +110,7 @@ div { text-align: justify; text-justify: inter-word; } ('Final regressor code', 2, None, '___sec28'), ('Pros and cons of trees, pros', 2, None, '___sec29'), ('Disadvantages', 2, None, '___sec30'), - ('From a Single Tree to Many Trees, that is meet the Jungle of ' - 'Methods', + ('From a Single Tree to Many Trees, Meet the Jungle of Methods', 2, None, '___sec31'), @@ -126,8 +125,14 @@ div { text-align: justify; text-justify: inter-word; } ('Now Bagging', 2, None, '___sec37'), ('Random forests', 2, None, '___sec38'), ('Random Forest Algorithm', 2, None, '___sec39'), - ('A simple scikit-learn example', 2, None, '___sec40'), - ('Then random forests', 2, None, '___sec41'), + ('Random Forests Compared with other Methods on the Cancer Data', + 2, + None, + '___sec40'), + ('Compare Bagging on Trees with Random Forests', + 2, + None, + '___sec41'), ('Feature Importance', 2, None, '___sec42'), ("Boosting, a Bird'e Eye", 2, None, '___sec43'), ('Adaptive boosting: AdaBoost, Basic Algorithm', @@ -185,7 +190,7 @@ MathJax.Hub.Config({

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

          -

          Nov 4, 2019

          +

          Nov 5, 2019












          @@ -1436,7 +1441,7 @@ However, by aggregating many decision trees, using methods like bagging, random











          -

          From a Single Tree to Many Trees, that is meet the Jungle of Methods

          +

          From a Single Tree to Many Trees, Meet the Jungle of Methods

          As stated above and seen in many of the examples discussed here about @@ -1449,7 +1454,7 @@ This leads us to a set of different methods that can combine different machine learning algorithms or just use one of them to construct forests and jungles of trees, homogeneous ones or heterogenous ones. These methods are recognized by different names which we will try to explain here. These are

            -
          1. Votign classifiers
          2. +
          3. Voting classifiers
          4. Bagging and Pasting
          5. Random forests
          6. Boosting methods
          7. @@ -1746,27 +1751,103 @@ this setting. The algorithm described here can be applied to both classification and regression problems.

            +We will grow of forest of say \( M \) trees. + +

              +
            1. For \( m=1:M \) we
            2. + +
                +
              • Draw a bootstrap sample of from the training data organized in our \( \boldsymbol{X} \) matrix.
              • +
              • We grow then a random forest tree \( T_m \) based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached
              • + +
                  +
                1. we select \( m \le p \) varibales at random from the \( p \) predictors/features
                2. +
                3. pick the best split point among the \( m \) features using either the CART algorithm or the ID3 for classification and create a new node
                4. +
                5. split the node into daughter nodes
                6. +
                + +
              + +
            3. Output then the ensemble of trees \( \{T_m\}_1^{M} \) and make predictions for either a regression type of problem or a classification type of problem.
            4. +
            +









            -

            A simple scikit-learn example

            +

            Random Forests Compared with other Methods on the Cancer Data

            -

            from sklearn.ensemble import RandomForestClassifier
            +
            import matplotlib.pyplot as plt
            +import numpy as np
            +from sklearn.model_selection import  train_test_split 
            +from sklearn.datasets import load_breast_cancer
            +from sklearn.svm import SVC
            +from sklearn.linear_model import LogisticRegression
            +from sklearn.tree import DecisionTreeClassifier
            +
            +# 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)
            +# Logistic Regression
            +logreg = LogisticRegression(solver='lbfgs')
            +logreg.fit(X_train, y_train)
            +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test)))
            +# Support vector machine
            +svm = SVC(gamma='auto', C=100)
            +svm.fit(X_train, y_train)
            +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test)))
            +# Decision Trees
            +deep_tree_clf = DecisionTreeClassifier(max_depth=None)
            +deep_tree_clf.fit(X_train, y_train)
            +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test)))
            +#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)
            +# Logistic Regression
            +logreg.fit(X_train_scaled, y_train)
            +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))
            +# Support Vector Machine
            +svm.fit(X_train_scaled, y_train)
            +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test)))
            +# Decision Trees
            +deep_tree_clf.fit(X_train_scaled, y_train)
            +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test)))
            +
            +
            +from sklearn.ensemble import RandomForestClassifier
             from sklearn.preprocessing import LabelEncoder
             from sklearn.model_selection import cross_validate
             # Data set not specificied
            -X = dataset.XXX
            -Y = dataset.YYY
            -#Instantiate the model with 100 trees and entropy as splitting criteria
            -Random_Forest_model = RandomForestClassifier(n_estimators=100,criterion="entropy")
            +#Instantiate the model with 500 trees and entropy as splitting criteria
            +Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion="entropy")
            +Random_Forest_model.fit(X_train_scaled, y_train)
             #Cross validation
            -accuracy = cross_validate(Random_Forest_model,X,Y,cv=10)['test_score']
            +accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score']
            +print(accuracy)
            +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(Random_Forest_model.score(X_test_scaled,y_test)))
            +
            +
            +import scikitplot as skplt
            +y_pred = Random_Forest_model.predict(X_test_scaled)
            +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)
            +#<matplotlib.axes._subplots.AxesSubplot object at 0x7fe967d64490>
            +plt.show()
            +y_probas = Random_Forest_model.predict_proba(X_test_scaled)
            +skplt.metrics.plot_roc(y_test, y_probas)
            +plt.show()
            +skplt.metrics.plot_cumulative_gain(y_test, y_probas)
            +plt.show()
             











            -

            Then random forests

            +

            Compare Bagging on Trees with Random Forests

            diff --git a/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb index 7cf60d741..a8f87d819 100644 --- a/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb +++ b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb @@ -10,7 +10,7 @@ " \n", "**Morten Hjorth-Jensen**, Department of Physics, University of Oslo and Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University\n", "\n", - "Date: **Nov 4, 2019**\n", + "Date: **Nov 5, 2019**\n", "\n", "Copyright 1999-2019, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -1397,7 +1397,7 @@ "However, by aggregating many decision trees, using methods like bagging, random forests, and boosting, the predictive performance of trees can be substantially improved. \n", "\n", "\n", - "## From a Single Tree to Many Trees, that is meet the Jungle of Methods\n", + "## From a Single Tree to Many Trees, Meet the Jungle of Methods\n", "\n", "As stated above and seen in many of the examples discussed here about\n", "a single decision tree, we often end up overfitting our training\n", @@ -1406,7 +1406,7 @@ "\n", "This leads us to a set of different methods that can combine different\n", "machine learning algorithms or just use one of them to construct forests and jungles of trees, homogeneous ones or heterogenous ones. These methods are recognized by different names which we will try to explain here. These are\n", - "1. Votign classifiers\n", + "1. Voting classifiers\n", "\n", "2. Bagging and Pasting\n", "\n", @@ -1766,7 +1766,24 @@ "## Random Forest Algorithm\n", "The algorithm described here can be applied to both classification and regression problems.\n", "\n", - "## A simple scikit-learn example" + "We will grow of forest of say $M$ trees.\n", + "1. For $m=1:M$ we\n", + "\n", + " * Draw a bootstrap sample of from the training data organized in our $\\boldsymbol{X}$ matrix.\n", + "\n", + " * We grow then a random forest tree $T_m$ based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached\n", + "\n", + "1. we select $m \\le p$ varibales at random from the $p$ predictors/features\n", + "\n", + "2. pick the best split point among the $m$ features using either the CART algorithm or the ID3 for classification and create a new node\n", + "\n", + "3. split the node into daughter nodes\n", + "\n", + "\n", + "\n", + "4. Output then the ensemble of trees $\\{T_m\\}_1^{M}$ and make predictions for either a regression type of problem or a classification type of problem. \n", + "\n", + "## Random Forests Compared with other Methods on the Cancer Data" ] }, { @@ -1777,23 +1794,79 @@ }, "outputs": [], "source": [ + "import matplotlib.pyplot as plt\n", + "import numpy as np\n", + "from sklearn.model_selection import train_test_split \n", + "from sklearn.datasets import load_breast_cancer\n", + "from sklearn.svm import SVC\n", + "from sklearn.linear_model import LogisticRegression\n", + "from sklearn.tree import DecisionTreeClassifier\n", + "\n", + "# Load the data\n", + "cancer = load_breast_cancer()\n", + "\n", + "X_train, X_test, y_train, y_test = train_test_split(cancer.data,cancer.target,random_state=0)\n", + "print(X_train.shape)\n", + "print(X_test.shape)\n", + "# Logistic Regression\n", + "logreg = LogisticRegression(solver='lbfgs')\n", + "logreg.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Logistic Regression: {:.2f}\".format(logreg.score(X_test,y_test)))\n", + "# Support vector machine\n", + "svm = SVC(gamma='auto', C=100)\n", + "svm.fit(X_train, y_train)\n", + "print(\"Test set accuracy with SVM: {:.2f}\".format(svm.score(X_test,y_test)))\n", + "# Decision Trees\n", + "deep_tree_clf = DecisionTreeClassifier(max_depth=None)\n", + "deep_tree_clf.fit(X_train, y_train)\n", + "print(\"Test set accuracy with Decision Trees: {:.2f}\".format(deep_tree_clf.score(X_test,y_test)))\n", + "#now scale the data\n", + "from sklearn.preprocessing import StandardScaler\n", + "scaler = StandardScaler()\n", + "scaler.fit(X_train)\n", + "X_train_scaled = scaler.transform(X_train)\n", + "X_test_scaled = scaler.transform(X_test)\n", + "# Logistic Regression\n", + "logreg.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy Logistic Regression with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "# Support Vector Machine\n", + "svm.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy SVM with scaled data: {:.2f}\".format(logreg.score(X_test_scaled,y_test)))\n", + "# Decision Trees\n", + "deep_tree_clf.fit(X_train_scaled, y_train)\n", + "print(\"Test set accuracy with Decision Trees and scaled data: {:.2f}\".format(deep_tree_clf.score(X_test_scaled,y_test)))\n", + "\n", + "\n", "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.preprocessing import LabelEncoder\n", "from sklearn.model_selection import cross_validate\n", "# Data set not specificied\n", - "X = dataset.XXX\n", - "Y = dataset.YYY\n", - "#Instantiate the model with 100 trees and entropy as splitting criteria\n", - "Random_Forest_model = RandomForestClassifier(n_estimators=100,criterion=\"entropy\")\n", + "#Instantiate the model with 500 trees and entropy as splitting criteria\n", + "Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion=\"entropy\")\n", + "Random_Forest_model.fit(X_train_scaled, y_train)\n", "#Cross validation\n", - "accuracy = cross_validate(Random_Forest_model,X,Y,cv=10)['test_score']" + "accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score']\n", + "print(accuracy)\n", + "print(\"Test set accuracy with Random Forests and scaled data: {:.2f}\".format(Random_Forest_model.score(X_test_scaled,y_test)))\n", + "\n", + "\n", + "import scikitplot as skplt\n", + "y_pred = Random_Forest_model.predict(X_test_scaled)\n", + "skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True)\n", + "#\n", + "plt.show()\n", + "y_probas = Random_Forest_model.predict_proba(X_test_scaled)\n", + "skplt.metrics.plot_roc(y_test, y_probas)\n", + "plt.show()\n", + "skplt.metrics.plot_cumulative_gain(y_test, y_probas)\n", + "plt.show()" ] }, { "cell_type": "markdown", "metadata": {}, "source": [ - "## Then random forests" + "## Compare Bagging on Trees with Random Forests" ] }, { @@ -1976,7 +2049,6 @@ "\n", "\n", "\n", - "\n", "## Gradient Boosting, Examples" ] }, diff --git a/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz b/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz index 39e57db23b7def1959b1a6f19cf4ed36889552ba..2a0930555a8f0f82918570c66a1f6905daff9b65 100644 GIT binary patch delta 27 jcmccL&U?R|mtDS_gJI3`gN^L1?2N7KOk3HRZ#V-0jHU@O delta 27 icmccL&U?R|mtDS_gW-?ofkyULcE(nArmgJEH=F^C76~E% diff --git a/doc/pub/DecisionTrees/pdf/DecisionTrees-minted.pdf b/doc/pub/DecisionTrees/pdf/DecisionTrees-minted.pdf index b20336b321c06673d5905b92fc9cb17be5a6312e..6d63acf38125e1d63a21d1d92b9c1c7dfbe3c0c3 100644 GIT binary patch delta 22930 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 diff --git a/doc/src/DecisionTrees/DecisionTrees.do.txt b/doc/src/DecisionTrees/DecisionTrees.do.txt index dc02103a0..3ce2cee55 100644 --- a/doc/src/DecisionTrees/DecisionTrees.do.txt +++ b/doc/src/DecisionTrees/DecisionTrees.do.txt @@ -1148,7 +1148,7 @@ However, by aggregating many decision trees, using methods like bagging, random !split -===== From a Single Tree to Many Trees, that is meet the Jungle of Methods ===== +===== From a Single Tree to Many Trees, Meet the Jungle of Methods ===== As stated above and seen in many of the examples discussed here about a single decision tree, we often end up overfitting our training @@ -1157,7 +1157,7 @@ the variance of a statistical learning method? This leads us to a set of different methods that can combine different machine learning algorithms or just use one of them to construct forests and jungles of trees, homogeneous ones or heterogenous ones. These methods are recognized by different names which we will try to explain here. These are -o Votign classifiers +o Voting classifiers o Bagging and Pasting o Random forests o Boosting methods @@ -1425,24 +1425,91 @@ this setting. ===== Random Forest Algorithm ===== The algorithm described here can be applied to both classification and regression problems. +We will grow of forest of say $M$ trees. +o For $m=1:M$ we + * Draw a bootstrap sample of from the training data organized in our $\bm{X}$ matrix. + * We grow then a random forest tree $T_m$ based on the bootstrapped data by repeating the steps outlined till we reach the maximum node size is reached + o we select $m \le p$ varibales at random from the $p$ predictors/features + o pick the best split point among the $m$ features using either the CART algorithm or the ID3 for classification and create a new node + o split the node into daughter nodes +o Output then the ensemble of trees $\{T_m\}_1^{M}$ and make predictions for either a regression type of problem or a classification type of problem. + + !split -===== A simple scikit-learn example ===== +===== Random Forests Compared with other Methods on the Cancer Data ===== !bc pycod +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.svm import SVC +from sklearn.linear_model import LogisticRegression +from sklearn.tree import DecisionTreeClassifier + +# 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) +# Logistic Regression +logreg = LogisticRegression(solver='lbfgs') +logreg.fit(X_train, y_train) +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) +# Support vector machine +svm = SVC(gamma='auto', C=100) +svm.fit(X_train, y_train) +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test))) +# Decision Trees +deep_tree_clf = DecisionTreeClassifier(max_depth=None) +deep_tree_clf.fit(X_train, y_train) +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test))) +#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) +# Logistic Regression +logreg.fit(X_train_scaled, y_train) +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Support Vector Machine +svm.fit(X_train_scaled, y_train) +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Decision Trees +deep_tree_clf.fit(X_train_scaled, y_train) +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test))) + + from sklearn.ensemble import RandomForestClassifier from sklearn.preprocessing import LabelEncoder from sklearn.model_selection import cross_validate # Data set not specificied -X = dataset.XXX -Y = dataset.YYY -#Instantiate the model with 100 trees and entropy as splitting criteria -Random_Forest_model = RandomForestClassifier(n_estimators=100,criterion="entropy") +#Instantiate the model with 500 trees and entropy as splitting criteria +Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion="entropy") +Random_Forest_model.fit(X_train_scaled, y_train) #Cross validation -accuracy = cross_validate(Random_Forest_model,X,Y,cv=10)['test_score'] +accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score'] +print(accuracy) +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(Random_Forest_model.score(X_test_scaled,y_test))) + + +import scikitplot as skplt +y_pred = Random_Forest_model.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +# +plt.show() +y_probas = Random_Forest_model.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +plt.show() + !ec !split -===== Then random forests ===== +===== Compare Bagging on Trees with Random Forests ===== !bc pycod bag_clf = BaggingClassifier( DecisionTreeClassifier(splitter="random", max_leaf_nodes=16, random_state=42), @@ -1578,7 +1645,6 @@ plt.show() - !split ===== Gradient Boosting, Examples ===== !bc pycod diff --git a/doc/src/DecisionTrees/rfcancer.py b/doc/src/DecisionTrees/rfcancer.py new file mode 100644 index 000000000..3c82c5bd8 --- /dev/null +++ b/doc/src/DecisionTrees/rfcancer.py @@ -0,0 +1,66 @@ +import matplotlib.pyplot as plt +import numpy as np +from sklearn.model_selection import train_test_split +from sklearn.datasets import load_breast_cancer +from sklearn.svm import SVC +from sklearn.linear_model import LogisticRegression +from sklearn.tree import DecisionTreeClassifier + +# 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) +# Logistic Regression +logreg = LogisticRegression(solver='lbfgs') +logreg.fit(X_train, y_train) +print("Test set accuracy with Logistic Regression: {:.2f}".format(logreg.score(X_test,y_test))) +# Support vector machine +svm = SVC(gamma='auto', C=100) +svm.fit(X_train, y_train) +print("Test set accuracy with SVM: {:.2f}".format(svm.score(X_test,y_test))) +# Decision Trees +deep_tree_clf = DecisionTreeClassifier(max_depth=None) +deep_tree_clf.fit(X_train, y_train) +print("Test set accuracy with Decision Trees: {:.2f}".format(deep_tree_clf.score(X_test,y_test))) +#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) +# Logistic Regression +logreg.fit(X_train_scaled, y_train) +print("Test set accuracy Logistic Regression with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Support Vector Machine +svm.fit(X_train_scaled, y_train) +print("Test set accuracy SVM with scaled data: {:.2f}".format(logreg.score(X_test_scaled,y_test))) +# Decision Trees +deep_tree_clf.fit(X_train_scaled, y_train) +print("Test set accuracy with Decision Trees and scaled data: {:.2f}".format(deep_tree_clf.score(X_test_scaled,y_test))) + + +from sklearn.ensemble import RandomForestClassifier +from sklearn.preprocessing import LabelEncoder +from sklearn.model_selection import cross_validate +# Data set not specificied +#Instantiate the model with 100 trees and entropy as splitting criteria +Random_Forest_model = RandomForestClassifier(n_estimators=500,criterion="entropy") +Random_Forest_model.fit(X_train_scaled, y_train) +#Cross validation +accuracy = cross_validate(Random_Forest_model,X_test_scaled,y_test,cv=10)['test_score'] +print(accuracy) +print("Test set accuracy with Random Forests and scaled data: {:.2f}".format(Random_Forest_model.score(X_test_scaled,y_test))) + + +import scikitplot as skplt +y_pred = Random_Forest_model.predict(X_test_scaled) +skplt.metrics.plot_confusion_matrix(y_test, y_pred, normalize=True) +# +plt.show() +y_probas = Random_Forest_model.predict_proba(X_test_scaled) +skplt.metrics.plot_roc(y_test, y_probas) +plt.show() +skplt.metrics.plot_cumulative_gain(y_test, y_probas) +plt.show()