diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html index 71dfb146f..ec2e98fd3 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs000.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -210,7 +233,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 1, 2019

    +

    Nov 2, 2019


    @@ -234,7 +257,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html index 564622280..faef31394 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs001.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -239,7 +262,7 @@ given some assumptions, make predictions about the target feature value
  • 10
  • 11
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html index a656feab8..f9b5ef95f 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs002.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -193,6 +216,9 @@ MathJax.Hub.Config({

    A typical Decision Tree with its pertinent Jargon, Classification Problem

    +

    +Figure to come here. +

    @@ -211,7 +237,7 @@ MathJax.Hub.Config({

  • 11
  • 12
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html index 3b71a3c6c..a927e32dc 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs003.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -225,7 +248,7 @@ node.
  • 12
  • 13
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html index 6241edf93..667e72b4b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs004.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -226,7 +249,7 @@ Then we are essentially done!
  • 13
  • 14
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html index fd01cc25e..578b184c6 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs005.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -305,7 +328,7 @@ plt.show()
  • 14
  • 15
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html index f4928d223..c5f8301d4 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs006.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -238,7 +261,7 @@ within box \( j \).
  • 15
  • 16
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html index c95e0e19f..b6521d733 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs007.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -230,7 +253,7 @@ better tree in some future step.
  • 16
  • 17
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html index 3fa62eb1f..f4cf44cdb 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs008.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -263,7 +286,7 @@ region contains more than five observations.
  • 17
  • 18
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html index e029c1c2a..9b05825f6 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs009.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -232,7 +255,7 @@ parameter \( \alpha \).
  • 18
  • 19
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html index 6429bb8bb..6fead1309 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs010.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -245,7 +268,7 @@ subtree corresponding to \( \alpha \).
  • 19
  • 20
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html index 6f3e89514..95e3b593b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs011.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -241,7 +264,7 @@ MathJax.Hub.Config({
  • 20
  • 21
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html index d990bf268..56a8b4c24 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs012.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -233,7 +256,7 @@ fall into that region.
  • 21
  • 22
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html index 7a5788c32..00541fd4e 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs013.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -238,7 +261,7 @@ than is the classification error rate.
  • 22
  • 23
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html index 04481483a..adaad6832 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs014.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -264,7 +287,7 @@ $$
  • 23
  • 24
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html index 852f360a6..e061afb47 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs015.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -255,7 +278,7 @@ os.system(cmd)
  • 24
  • 25
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html index 42c56ab71..f071e4f4e 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs016.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -246,7 +269,7 @@ os.system(cmd)
  • 25
  • 26
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html index 2bcfc46bd..cdc844132 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs017.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,48 +214,16 @@ MathJax.Hub.Config({ -

    Computing the Gini index

    +

    Algorithms for Setting up Decision Trees

    +Two algorithms stand out in the set up of decision trees: -

    -The example we will look at is a classical one in many Machine -Learning applications. Based on various meteorological features, we -have several so-called attributes which decide whether we at the end -will do some outdoor activity like skiing, going for a bike ride etc -etc. The table here contains the feautures outlook, temperature, -humidity and wind. The target or output is whether we ride -(True=1) or whether we do something else that day (False=0). The -attributes for each feature are then sunny, overcast and rain for the -outlook, hot, cold and mild for temperature, high and normal for -humidity and weak and strong for wind. +

      +
    1. The CART (Classification And Regression Tree) algorithm for both classification and regression
    2. +
    3. The ID3 algorithm based on the computation of the information gain for classification
    4. +
    -

    -The table here summarizes the various attributes and +We discuss both algorithms with applications here. The popular library -Scikit-Learn_ uses the CART algorithm. For classification problems you can use either the gini index or the entropy to split a tree in two branches. -

    -
    - - - - - - - - - - - - - - - - - - - - -
    Day Outlook Temperature Humidity Wind Ride
    1 Sunny Hot High Weak 0
    2 Sunny Hot High Strong 1
    3 Overcast Hot High Weak 1
    4 Rain Mild High Weak 1
    5 Rain Cool Normal Weak 1
    6 Rain Cool Normal Strong 0
    7 Overcast Cool Normal Strong 1
    8 Sunny Mild High Weak 0
    9 Sunny Cool Normal Weak 1
    10 Rain Mild Normal Weak 1
    11 Sunny Mild Normal Strong 1
    12 Overcast Mild High Strong 1
    13 Overcast Hot Normal Weak 1
    14 Rain Mild High Strong 0
    -
    -

    @@ -259,7 +250,7 @@ The table here summarizes the various attributes and

  • 26
  • 27
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html index 84d46cc6c..839564a4e 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs018.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,79 +214,8 @@ MathJax.Hub.Config({ -

    Simple Python Code to read in Data and perform Classification

    +

    The CART algorithm for Classification

    -

    - - -

    # Common imports
    -import numpy as np
    -import pandas as pd
    -import matplotlib.pyplot as plt
    -from sklearn.tree import DecisionTreeClassifier
    -from sklearn.model_selection import train_test_split
    -from sklearn.tree import export_graphviz
    -from sklearn.preprocessing import StandardScaler, OneHotEncoder
    -from sklearn.compose import ColumnTransformer
    -from IPython.display import Image 
    -from pydot import graph_from_dot_data
    -import os
    -
    -# Where to save the figures and data files
    -PROJECT_ROOT_DIR = "Results"
    -FIGURE_ID = "Results/FigureFiles"
    -DATA_ID = "DataFiles/"
    -
    -if not os.path.exists(PROJECT_ROOT_DIR):
    -    os.mkdir(PROJECT_ROOT_DIR)
    -
    -if not os.path.exists(FIGURE_ID):
    -    os.makedirs(FIGURE_ID)
    -
    -if not os.path.exists(DATA_ID):
    -    os.makedirs(DATA_ID)
    -
    -def image_path(fig_id):
    -    return os.path.join(FIGURE_ID, fig_id)
    -
    -def data_path(dat_id):
    -    return os.path.join(DATA_ID, dat_id)
    -
    -def save_fig(fig_id):
    -    plt.savefig(image_path(fig_id) + ".png", format='png')
    -
    -infile = open(data_path("rideclass.csv"),'r')
    -
    -# Read the experimental data with Pandas
    -from IPython.display import display
    -ridedata = pd.read_csv(infile,names = ('Outlook','Temperature','Humidity','Wind','Ride'))
    -ridedata = pd.DataFrame(ridedata)
    -
    -# Features and targets
    -X = ridedata.loc[:, ridedata.columns != 'Ride'].values
    -y = ridedata.loc[:, ridedata.columns == 'Ride'].values
    -
    -# Create the encoder.
    -encoder = OneHotEncoder(handle_unknown="ignore")
    -# Assume for simplicity all features are categorical.
    -encoder.fit(X)    
    -# Apply the encoder.
    -X = encoder.transform(X)
    -print(X)
    -# Then do a Classification tree
    -tree_clf = DecisionTreeClassifier(max_depth=2)
    -tree_clf.fit(X, y)
    -print("Train set accuracy with Decision Tree: {:.2f}".format(tree_clf.score(X,y)))
    -#transfer to a decision tree graph
    -export_graphviz(
    -    tree_clf,
    -    out_file="DataFiles/ride.dot",
    -    rounded=True,
    -    filled=True
    -)
    -cmd = 'dot -Tpng DataFiles/cancer.dot -o DataFiles/cancer.png'
    -os.system(cmd)
    -

    @@ -290,7 +242,7 @@ os.system(cmd)

  • 27
  • 28
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html index 0c7d2dc4a..d493197a8 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs019.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,81 +214,8 @@ MathJax.Hub.Config({ -

    Computing the Gini Factor

    +

    The CART algorithm for Regression

    -

    -The above functions (gini, entropy and misclassification error) are -important components of the so-called CART algorithm. We will discuss -this algorithm below after we have discussed the information gain -algorithm ID3. - -

    -In the example here we have converted all our attributes into numerical values \( 0,1,2 \) etc. - -

    - - -

    # Split a dataset based on an attribute and an attribute value
    -def test_split(index, value, dataset):
    -	left, right = list(), list()
    -	for row in dataset:
    -		if row[index] < value:
    -			left.append(row)
    -		else:
    -			right.append(row)
    -	return left, right
    - 
    -# Calculate the Gini index for a split dataset
    -def gini_index(groups, classes):
    -	# count all samples at split point
    -	n_instances = float(sum([len(group) for group in groups]))
    -	# sum weighted Gini index for each group
    -	gini = 0.0
    -	for group in groups:
    -		size = float(len(group))
    -		# avoid divide by zero
    -		if size == 0:
    -			continue
    -		score = 0.0
    -		# score the group based on the score for each class
    -		for class_val in classes:
    -			p = [row[-1] for row in group].count(class_val) / size
    -			score += p * p
    -		# weight the group score by its relative size
    -		gini += (1.0 - score) * (size / n_instances)
    -	return gini
    -
    -# Select the best split point for a dataset
    -def get_split(dataset):
    -	class_values = list(set(row[-1] for row in dataset))
    -	b_index, b_value, b_score, b_groups = 999, 999, 999, None
    -	for index in range(len(dataset[0])-1):
    -		for row in dataset:
    -			groups = test_split(index, row[index], dataset)
    -			gini = gini_index(groups, class_values)
    -			print('X%d < %.3f Gini=%.3f' % ((index+1), row[index], gini))
    -			if gini < b_score:
    -				b_index, b_value, b_score, b_groups = index, row[index], gini, groups
    -	return {'index':b_index, 'value':b_value, 'groups':b_groups}
    - 
    -dataset = [[0,0,0,0,0],
    -            [0,0,0,1,1],
    -            [1,0,0,0,1],
    -            [2,1,0,0,1],
    -            [2,2,1,0,1],
    -            [2,2,1,1,0],
    -            [1,2,1,1,1],
    -            [0,1,0,0,0],
    -            [0,2,1,0,1],
    -            [2,1,1,0,1],
    -            [0,1,1,1,1],
    -            [1,1,0,1,1],
    -            [1,0,1,0,1],
    -            [2,1,0,1,0]]
    -
    -split = get_split(dataset)
    -print('Split: [X%d < %.3f]' % ((split['index']+1), split['value']))
    -

    @@ -292,7 +242,7 @@ split = get_split(dataset)

  • 28
  • 29
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html index 5e0032142..bde376c17 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs020.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,39 +214,48 @@ MathJax.Hub.Config({ -

    Entropy and the ID3 algorithm

    +

    Computing the Gini index

    -ID3, learns decision trees by constructing -them topdown, beginning with the question which attribute should be tested at the root of the tree? - -

      -
    1. Each instance attribute is evaluated using a statistical test to determine how well it alone classifies the training examples.
    2. -
    3. The best attribute is selected and used as the test at the root node of the tree.
    4. -
    5. A descendant of the root node is then created for each possible value of this attribute.
    6. -
    7. Training examples are sorted to the appropriate descendant node.
    8. -
    9. The entire process is then repeated using the training examples associated with each descendant node to select the best attribute to test at that point in the tree.
    10. -
    11. This forms a greedy search for an acceptable decision tree, in which the algorithm never backtracks to reconsider earlier choices.
    12. -
    - -The ID3 algorithm selects, which attribute to test at each node in the -tree. +The example we will look at is a classical one in many Machine +Learning applications. Based on various meteorological features, we +have several so-called attributes which decide whether we at the end +will do some outdoor activity like skiing, going for a bike ride etc +etc. The table here contains the feautures outlook, temperature, +humidity and wind. The target or output is whether we ride +(True=1) or whether we do something else that day (False=0). The +attributes for each feature are then sunny, overcast and rain for the +outlook, hot, cold and mild for temperature, high and normal for +humidity and weak and strong for wind.

    -We would like to select the attribute that is most useful for classifying -examples. - -

    -What is a good quantitative measure of the worth of an attribute? - -

    -Information gain measures how well a given attribute separates the -training examples according to their target classification. - -

    -The ID3 algorithm uses this information gain measure to select among the candidate -attributes at each step while growing the tree. +The table here summarizes the various attributes and +

    +
    + + + + + + + + + + + + + + + + + + + + +
    Day Outlook Temperature Humidity Wind Ride
    1 Sunny Hot High Weak 0
    2 Sunny Hot High Strong 1
    3 Overcast Hot High Weak 1
    4 Rain Mild High Weak 1
    5 Rain Cool Normal Weak 1
    6 Rain Cool Normal Strong 0
    7 Overcast Cool Normal Strong 1
    8 Sunny Mild High Weak 0
    9 Sunny Cool Normal Weak 1
    10 Rain Mild Normal Weak 1
    11 Sunny Mild Normal Strong 1
    12 Overcast Mild High Strong 1
    13 Overcast Hot Normal Weak 1
    14 Rain Mild High Strong 0
    +
    +

    @@ -250,7 +282,7 @@ attributes at each step while growing the tree.

  • 29
  • 30
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html index e67e33add..dd583f072 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs021.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,198 +214,78 @@ MathJax.Hub.Config({ -

    Implementing the ID3 Algorithm

    +

    Simple Python Code to read in Data and perform Classification

    -

    import re
    -import math
    -from collections import deque
    +
    # Common imports
    +import numpy as np
    +import pandas as pd
    +import matplotlib.pyplot as plt
    +from sklearn.tree import DecisionTreeClassifier
    +from sklearn.model_selection import train_test_split
    +from sklearn.tree import export_graphviz
    +from sklearn.preprocessing import StandardScaler, OneHotEncoder
    +from sklearn.compose import ColumnTransformer
    +from IPython.display import Image 
    +from pydot import graph_from_dot_data
    +import os
     
    -# x is examples in training set
    -# y is set of targets
    -# label is target attributes
    -# Node is a class which has properties values, childs, and next
    -# root is top node in the decision tree
    +# Where to save the figures and data files
    +PROJECT_ROOT_DIR = "Results"
    +FIGURE_ID = "Results/FigureFiles"
    +DATA_ID = "DataFiles/"
     
    -class Node(object):
    -	def __init__(self):
    -		self.value = None
    -		self.next = None
    -		self.childs = None
    +if not os.path.exists(PROJECT_ROOT_DIR):
    +    os.mkdir(PROJECT_ROOT_DIR)
     
    -# Simple class of Decision Tree
    -# Aimed for who want to learn Decision Tree, so it is not optimized
    -class DecisionTree(object):
    -	def __init__(self, sample, attributes, labels):
    -		self.sample = sample
    -		self.attributes = attributes
    -		self.labels = labels
    -		self.labelCodes = None
    -		self.labelCodesCount = None
    -		self.initLabelCodes()
    -		# print(self.labelCodes)
    -		self.root = None
    -		self.entropy = self.getEntropy([x for x in range(len(self.labels))])
    +if not os.path.exists(FIGURE_ID):
    +    os.makedirs(FIGURE_ID)
     
    -	def initLabelCodes(self):
    -		self.labelCodes = []
    -		self.labelCodesCount = []
    -		for l in self.labels:
    -			if l not in self.labelCodes:
    -				self.labelCodes.append(l)
    -				self.labelCodesCount.append(0)
    -			self.labelCodesCount[self.labelCodes.index(l)] += 1
    +if not os.path.exists(DATA_ID):
    +    os.makedirs(DATA_ID)
     
    -	def getLabelCodeId(self, sampleId):
    -		return self.labelCodes.index(self.labels[sampleId])
    +def image_path(fig_id):
    +    return os.path.join(FIGURE_ID, fig_id)
     
    -	def getAttributeValues(self, sampleIds, attributeId):
    -		vals = []
    -		for sid in sampleIds:
    -			val = self.sample[sid][attributeId]
    -			if val not in vals:
    -				vals.append(val)
    -		# print(vals)
    -		return vals
    +def data_path(dat_id):
    +    return os.path.join(DATA_ID, dat_id)
     
    -	def getEntropy(self, sampleIds):
    -		entropy = 0
    -		labelCount = [0] * len(self.labelCodes)
    -		for sid in sampleIds:
    -			labelCount[self.getLabelCodeId(sid)] += 1
    -		# print("-ge", labelCount)
    -		for lv in labelCount:
    -			# print(lv)
    -			if lv != 0:
    -				entropy += -lv/len(sampleIds) * math.log(lv/len(sampleIds), 2)
    -			else:
    -				entropy += 0
    -		return entropy
    +def save_fig(fig_id):
    +    plt.savefig(image_path(fig_id) + ".png", format='png')
     
    -	def getDominantLabel(self, sampleIds):
    -		labelCodesCount = [0] * len(self.labelCodes)
    -		for sid in sampleIds:
    -			labelCodesCount[self.labelCodes.index(self.labels[sid])] += 1
    -		return self.labelCodes[labelCodesCount.index(max(labelCodesCount))]
    +infile = open(data_path("rideclass.csv"),'r')
     
    -	def getInformationGain(self, sampleIds, attributeId):
    -		gain = self.getEntropy(sampleIds)
    -		attributeVals = []
    -		attributeValsCount = []
    -		attributeValsIds = []
    -		for sid in sampleIds:
    -			val = self.sample[sid][attributeId]
    -			if val not in attributeVals:
    -				attributeVals.append(val)
    -				attributeValsCount.append(0)
    -				attributeValsIds.append([])
    -			vid = attributeVals.index(val)
    -			attributeValsCount[vid] += 1
    -			attributeValsIds[vid].append(sid)
    -		# print("-gig", self.attributes[attributeId])
    -		for vc, vids in zip(attributeValsCount, attributeValsIds):
    -			# print("-gig", vids)
    -			gain -= vc/len(sampleIds) * self.getEntropy(vids)
    -		return gain
    +# Read the experimental data with Pandas
    +from IPython.display import display
    +ridedata = pd.read_csv(infile,names = ('Outlook','Temperature','Humidity','Wind','Ride'))
    +ridedata = pd.DataFrame(ridedata)
     
    -	def getAttributeMaxInformationGain(self, sampleIds, attributeIds):
    -		attributesEntropy = [0] * len(attributeIds)
    -		for i, attId in zip(range(len(attributeIds)), attributeIds):
    -			attributesEntropy[i] = self.getInformationGain(sampleIds, attId)
    -		maxId = attributeIds[attributesEntropy.index(max(attributesEntropy))]
    -		return self.attributes[maxId], maxId
    +# Features and targets
    +X = ridedata.loc[:, ridedata.columns != 'Ride'].values
    +y = ridedata.loc[:, ridedata.columns == 'Ride'].values
     
    -	def isSingleLabeled(self, sampleIds):
    -		label = self.labels[sampleIds[0]]
    -		for sid in sampleIds:
    -			if self.labels[sid] != label:
    -				return False
    -		return True
    -
    -	def getLabel(self, sampleId):
    -		return self.labels[sampleId]
    -
    -	def id3(self):
    -		sampleIds = [x for x in range(len(self.sample))]
    -		attributeIds = [x for x in range(len(self.attributes))]
    -		self.root = self.id3Recv(sampleIds, attributeIds, self.root)
    -
    -	def id3Recv(self, sampleIds, attributeIds, root):
    -		root = Node() # Initialize current root
    -		if self.isSingleLabeled(sampleIds):
    -			root.value = self.labels[sampleIds[0]]
    -			return root
    -		# print(attributeIds)
    -		if len(attributeIds) == 0:
    -			root.value = self.getDominantLabel(sampleIds)
    -			return root
    -		bestAttrName, bestAttrId = self.getAttributeMaxInformationGain(
    -			sampleIds, attributeIds)
    -		# print(bestAttrName)
    -		root.value = bestAttrName
    -		root.childs = []  # Create list of children
    -		for value in self.getAttributeValues(sampleIds, bestAttrId):
    -			# print(value)
    -			child = Node()
    -			child.value = value
    -			root.childs.append(child)  # Append new child node to current
    -									   # root
    -			childSampleIds = []
    -			for sid in sampleIds:
    -				if self.sample[sid][bestAttrId] == value:
    -					childSampleIds.append(sid)
    -			if len(childSampleIds) == 0:
    -				child.next = self.getDominantLabel(sampleIds)
    -			else:
    -				# print(bestAttrName, bestAttrId)
    -				# print(attributeIds)
    -				if len(attributeIds) > 0 and bestAttrId in attributeIds:
    -					toRemove = attributeIds.index(bestAttrId)
    -					attributeIds.pop(toRemove)
    -				child.next = self.id3Recv(
    -					childSampleIds, attributeIds, child.next)
    -		return root
    -
    -	def printTree(self):
    -		if self.root:
    -			roots = deque()
    -			roots.append(self.root)
    -			while len(roots) > 0:
    -				root = roots.popleft()
    -				print(root.value)
    -				if root.childs:
    -					for child in root.childs:
    -						print('({})'.format(child.value))
    -						roots.append(child.next)
    -				elif root.next:
    -					print(root.next)
    -
    -
    -def test():
    -	f = open('DataFiles/rideclass.csv')
    -	attributes = f.readline().split(',')
    -	attributes = attributes[1:len(attributes)-1]
    -	print(attributes)
    -	sample = f.readlines()
    -	f.close()
    -	for i in range(len(sample)):
    -		sample[i] = re.sub('\d+,', '', sample[i])
    -		sample[i] = sample[i].strip().split(',')
    -	labels = []
    -	for s in sample:
    -		labels.append(s.pop())
    -	# print(sample)
    -	# print(labels)
    -	decisionTree = DecisionTree(sample, attributes, labels)
    -	print("System entropy {}".format(decisionTree.entropy))
    -	decisionTree.id3()
    -	decisionTree.printTree()
    -
    -
    -if __name__ == '__main__':
    -	test()
    +# Create the encoder.
    +encoder = OneHotEncoder(handle_unknown="ignore")
    +# Assume for simplicity all features are categorical.
    +encoder.fit(X)    
    +# Apply the encoder.
    +X = encoder.transform(X)
    +print(X)
    +# Then do a Classification tree
    +tree_clf = DecisionTreeClassifier(max_depth=2)
    +tree_clf.fit(X, y)
    +print("Train set accuracy with Decision Tree: {:.2f}".format(tree_clf.score(X,y)))
    +#transfer to a decision tree graph
    +export_graphviz(
    +    tree_clf,
    +    out_file="DataFiles/ride.dot",
    +    rounded=True,
    +    filled=True
    +)
    +cmd = 'dot -Tpng DataFiles/cancer.dot -o DataFiles/cancer.png'
    +os.system(cmd)
     

    @@ -410,7 +313,7 @@ MathJax.Hub.Config({

  • 30
  • 31
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html index cab8de1df..3aa96b7f6 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs022.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,51 +214,80 @@ MathJax.Hub.Config({ -

    Cancer Data again now with Decision Trees and other Methods

    +

    Computing the Gini Factor

    + +

    +The above functions (gini, entropy and misclassification error) are +important components of the so-called CART algorithm. We will discuss +this algorithm below after we have discussed the information gain +algorithm ID3. + +

    +In the example here we have converted all our attributes into numerical values \( 0,1,2 \) etc. +

    -

    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
    +
    # Split a dataset based on an attribute and an attribute value
    +def test_split(index, value, dataset):
    +	left, right = list(), list()
    +	for row in dataset:
    +		if row[index] < value:
    +			left.append(row)
    +		else:
    +			right.append(row)
    +	return left, right
    + 
    +# Calculate the Gini index for a split dataset
    +def gini_index(groups, classes):
    +	# count all samples at split point
    +	n_instances = float(sum([len(group) for group in groups]))
    +	# sum weighted Gini index for each group
    +	gini = 0.0
    +	for group in groups:
    +		size = float(len(group))
    +		# avoid divide by zero
    +		if size == 0:
    +			continue
    +		score = 0.0
    +		# score the group based on the score for each class
    +		for class_val in classes:
    +			p = [row[-1] for row in group].count(class_val) / size
    +			score += p * p
    +		# weight the group score by its relative size
    +		gini += (1.0 - score) * (size / n_instances)
    +	return gini
     
    -# Load the data
    -cancer = load_breast_cancer()
    +# Select the best split point for a dataset
    +def get_split(dataset):
    +	class_values = list(set(row[-1] for row in dataset))
    +	b_index, b_value, b_score, b_groups = 999, 999, 999, None
    +	for index in range(len(dataset[0])-1):
    +		for row in dataset:
    +			groups = test_split(index, row[index], dataset)
    +			gini = gini_index(groups, class_values)
    +			print('X%d < %.3f Gini=%.3f' % ((index+1), row[index], gini))
    +			if gini < b_score:
    +				b_index, b_value, b_score, b_groups = index, row[index], gini, groups
    +	return {'index':b_index, 'value':b_value, 'groups':b_groups}
    + 
    +dataset = [[0,0,0,0,0],
    +            [0,0,0,1,1],
    +            [1,0,0,0,1],
    +            [2,1,0,0,1],
    +            [2,2,1,0,1],
    +            [2,2,1,1,0],
    +            [1,2,1,1,1],
    +            [0,1,0,0,0],
    +            [0,2,1,0,1],
    +            [2,1,1,0,1],
    +            [0,1,1,1,1],
    +            [1,1,0,1,1],
    +            [1,0,1,0,1],
    +            [2,1,0,1,0]]
     
    -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)))
    +split = get_split(dataset)
    +print('Split: [X%d < %.3f]' % ((split['index']+1), split['value']))
     

    @@ -263,7 +315,7 @@ deep_tree_clf.fit(X_train_scaled, y_train)

  • 31
  • 32
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html index 9ba0bc5d6..81650dfee 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs023.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,75 +214,39 @@ MathJax.Hub.Config({ -

    Another example, the moons again

    +

    Entropy and the ID3 algorithm

    +

    +ID3, learns decision trees by constructing +them topdown, beginning with the question which attribute should be tested at the root of the tree? - -

    from __future__ import division, print_function, unicode_literals
    +
      +
    1. Each instance attribute is evaluated using a statistical test to determine how well it alone classifies the training examples.
    2. +
    3. The best attribute is selected and used as the test at the root node of the tree.
    4. +
    5. A descendant of the root node is then created for each possible value of this attribute.
    6. +
    7. Training examples are sorted to the appropriate descendant node.
    8. +
    9. The entire process is then repeated using the training examples associated with each descendant node to select the best attribute to test at that point in the tree.
    10. +
    11. This forms a greedy search for an acceptable decision tree, in which the algorithm never backtracks to reconsider earlier choices.
    12. +
    -# Common imports -import numpy as np -import os +The ID3 algorithm selects, which attribute to test at each node in the +tree. -# to make this notebook's output stable across runs -np.random.seed(42) +

    +We would like to select the attribute that is most useful for classifying +examples. -# To plot pretty figures -import matplotlib -import matplotlib.pyplot as plt -from matplotlib.colors import ListedColormap -plt.rcParams['axes.labelsize'] = 14 -plt.rcParams['xtick.labelsize'] = 12 -plt.rcParams['ytick.labelsize'] = 12 +

    +What is a good quantitative measure of the worth of an attribute? +

    +Information gain measures how well a given attribute separates the +training examples according to their target classification. -from sklearn.svm import SVC -from sklearn import datasets -from sklearn.tree import DecisionTreeClassifier -from sklearn.datasets import make_moons -from sklearn.tree import export_graphviz +

    +The ID3 algorithm uses this information gain measure to select among the candidate +attributes at each step while growing the tree. -Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53) - -deep_tree_clf1 = DecisionTreeClassifier(random_state=42) -deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42) -deep_tree_clf1.fit(Xm, ym) -deep_tree_clf2.fit(Xm, ym) - - -def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True): - x1s = np.linspace(axes[0], axes[1], 100) - x2s = np.linspace(axes[2], axes[3], 100) - x1, x2 = np.meshgrid(x1s, x2s) - X_new = np.c_[x1.ravel(), x2.ravel()] - y_pred = clf.predict(X_new).reshape(x1.shape) - custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0']) - plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap) - if not iris: - custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50']) - plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8) - if plot_training: - plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo", label="Iris-Setosa") - plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs", label="Iris-Versicolor") - plt.plot(X[:, 0][y==2], X[:, 1][y==2], "g^", label="Iris-Virginica") - plt.axis(axes) - if iris: - plt.xlabel("Petal length", fontsize=14) - plt.ylabel("Petal width", fontsize=14) - else: - plt.xlabel(r"$x_1$", fontsize=18) - plt.ylabel(r"$x_2$", fontsize=18, rotation=0) - if legend: - plt.legend(loc="lower right", fontsize=14) -plt.figure(figsize=(11, 4)) -plt.subplot(121) -plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False) -plt.title("No restrictions", fontsize=16) -plt.subplot(122) -plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False) -plt.title("min_samples_leaf = {}".format(deep_tree_clf2.min_samples_leaf), fontsize=14) -plt.show() -

    @@ -286,7 +273,7 @@ plt.show()

  • 32
  • 33
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html index 1cdf2975f..b2a17c4b1 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs024.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,30 +214,198 @@ MathJax.Hub.Config({ -

    Playing around with regions

    +

    Implementing the ID3 Algorithm

    +

    -

    np.random.seed(6)
    -Xs = np.random.rand(100, 2) - 0.5
    -ys = (Xs[:, 0] > 0).astype(np.float32) * 2
    +
    import re
    +import math
    +from collections import deque
     
    -angle = np.pi/4
    -rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])
    -Xsr = Xs.dot(rotation_matrix)
    +# x is examples in training set
    +# y is set of targets
    +# label is target attributes
    +# Node is a class which has properties values, childs, and next
    +# root is top node in the decision tree
     
    -tree_clf_s = DecisionTreeClassifier(random_state=42)
    -tree_clf_s.fit(Xs, ys)
    -tree_clf_sr = DecisionTreeClassifier(random_state=42)
    -tree_clf_sr.fit(Xsr, ys)
    +class Node(object):
    +	def __init__(self):
    +		self.value = None
    +		self.next = None
    +		self.childs = None
     
    -plt.figure(figsize=(11, 4))
    -plt.subplot(121)
    -plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)
    -plt.subplot(122)
    -plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)
    +# Simple class of Decision Tree
    +# Aimed for who want to learn Decision Tree, so it is not optimized
    +class DecisionTree(object):
    +	def __init__(self, sample, attributes, labels):
    +		self.sample = sample
    +		self.attributes = attributes
    +		self.labels = labels
    +		self.labelCodes = None
    +		self.labelCodesCount = None
    +		self.initLabelCodes()
    +		# print(self.labelCodes)
    +		self.root = None
    +		self.entropy = self.getEntropy([x for x in range(len(self.labels))])
     
    -plt.show()
    +	def initLabelCodes(self):
    +		self.labelCodes = []
    +		self.labelCodesCount = []
    +		for l in self.labels:
    +			if l not in self.labelCodes:
    +				self.labelCodes.append(l)
    +				self.labelCodesCount.append(0)
    +			self.labelCodesCount[self.labelCodes.index(l)] += 1
    +
    +	def getLabelCodeId(self, sampleId):
    +		return self.labelCodes.index(self.labels[sampleId])
    +
    +	def getAttributeValues(self, sampleIds, attributeId):
    +		vals = []
    +		for sid in sampleIds:
    +			val = self.sample[sid][attributeId]
    +			if val not in vals:
    +				vals.append(val)
    +		# print(vals)
    +		return vals
    +
    +	def getEntropy(self, sampleIds):
    +		entropy = 0
    +		labelCount = [0] * len(self.labelCodes)
    +		for sid in sampleIds:
    +			labelCount[self.getLabelCodeId(sid)] += 1
    +		# print("-ge", labelCount)
    +		for lv in labelCount:
    +			# print(lv)
    +			if lv != 0:
    +				entropy += -lv/len(sampleIds) * math.log(lv/len(sampleIds), 2)
    +			else:
    +				entropy += 0
    +		return entropy
    +
    +	def getDominantLabel(self, sampleIds):
    +		labelCodesCount = [0] * len(self.labelCodes)
    +		for sid in sampleIds:
    +			labelCodesCount[self.labelCodes.index(self.labels[sid])] += 1
    +		return self.labelCodes[labelCodesCount.index(max(labelCodesCount))]
    +
    +	def getInformationGain(self, sampleIds, attributeId):
    +		gain = self.getEntropy(sampleIds)
    +		attributeVals = []
    +		attributeValsCount = []
    +		attributeValsIds = []
    +		for sid in sampleIds:
    +			val = self.sample[sid][attributeId]
    +			if val not in attributeVals:
    +				attributeVals.append(val)
    +				attributeValsCount.append(0)
    +				attributeValsIds.append([])
    +			vid = attributeVals.index(val)
    +			attributeValsCount[vid] += 1
    +			attributeValsIds[vid].append(sid)
    +		# print("-gig", self.attributes[attributeId])
    +		for vc, vids in zip(attributeValsCount, attributeValsIds):
    +			# print("-gig", vids)
    +			gain -= vc/len(sampleIds) * self.getEntropy(vids)
    +		return gain
    +
    +	def getAttributeMaxInformationGain(self, sampleIds, attributeIds):
    +		attributesEntropy = [0] * len(attributeIds)
    +		for i, attId in zip(range(len(attributeIds)), attributeIds):
    +			attributesEntropy[i] = self.getInformationGain(sampleIds, attId)
    +		maxId = attributeIds[attributesEntropy.index(max(attributesEntropy))]
    +		return self.attributes[maxId], maxId
    +
    +	def isSingleLabeled(self, sampleIds):
    +		label = self.labels[sampleIds[0]]
    +		for sid in sampleIds:
    +			if self.labels[sid] != label:
    +				return False
    +		return True
    +
    +	def getLabel(self, sampleId):
    +		return self.labels[sampleId]
    +
    +	def id3(self):
    +		sampleIds = [x for x in range(len(self.sample))]
    +		attributeIds = [x for x in range(len(self.attributes))]
    +		self.root = self.id3Recv(sampleIds, attributeIds, self.root)
    +
    +	def id3Recv(self, sampleIds, attributeIds, root):
    +		root = Node() # Initialize current root
    +		if self.isSingleLabeled(sampleIds):
    +			root.value = self.labels[sampleIds[0]]
    +			return root
    +		# print(attributeIds)
    +		if len(attributeIds) == 0:
    +			root.value = self.getDominantLabel(sampleIds)
    +			return root
    +		bestAttrName, bestAttrId = self.getAttributeMaxInformationGain(
    +			sampleIds, attributeIds)
    +		# print(bestAttrName)
    +		root.value = bestAttrName
    +		root.childs = []  # Create list of children
    +		for value in self.getAttributeValues(sampleIds, bestAttrId):
    +			# print(value)
    +			child = Node()
    +			child.value = value
    +			root.childs.append(child)  # Append new child node to current
    +									   # root
    +			childSampleIds = []
    +			for sid in sampleIds:
    +				if self.sample[sid][bestAttrId] == value:
    +					childSampleIds.append(sid)
    +			if len(childSampleIds) == 0:
    +				child.next = self.getDominantLabel(sampleIds)
    +			else:
    +				# print(bestAttrName, bestAttrId)
    +				# print(attributeIds)
    +				if len(attributeIds) > 0 and bestAttrId in attributeIds:
    +					toRemove = attributeIds.index(bestAttrId)
    +					attributeIds.pop(toRemove)
    +				child.next = self.id3Recv(
    +					childSampleIds, attributeIds, child.next)
    +		return root
    +
    +	def printTree(self):
    +		if self.root:
    +			roots = deque()
    +			roots.append(self.root)
    +			while len(roots) > 0:
    +				root = roots.popleft()
    +				print(root.value)
    +				if root.childs:
    +					for child in root.childs:
    +						print('({})'.format(child.value))
    +						roots.append(child.next)
    +				elif root.next:
    +					print(root.next)
    +
    +
    +def test():
    +	f = open('DataFiles/rideclass.csv')
    +	attributes = f.readline().split(',')
    +	attributes = attributes[1:len(attributes)-1]
    +	print(attributes)
    +	sample = f.readlines()
    +	f.close()
    +	for i in range(len(sample)):
    +		sample[i] = re.sub('\d+,', '', sample[i])
    +		sample[i] = sample[i].strip().split(',')
    +	labels = []
    +	for s in sample:
    +		labels.append(s.pop())
    +	# print(sample)
    +	# print(labels)
    +	decisionTree = DecisionTree(sample, attributes, labels)
    +	print("System entropy {}".format(decisionTree.entropy))
    +	decisionTree.id3()
    +	decisionTree.printTree()
    +
    +
    +if __name__ == '__main__':
    +	test()
     

    @@ -242,7 +433,7 @@ plt.show()

  • 33
  • 34
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html index 6c0dce319..b24d3a1a3 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs025.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,24 +214,51 @@ MathJax.Hub.Config({ -

    Regression trees

    +

    Cancer Data again now with Decision Trees and other Methods

    -

    # Quadratic training set + noise
    -np.random.seed(42)
    -m = 200
    -X = np.random.rand(m, 1)
    -y = 4 * (X - 0.5) ** 2
    -y = y + np.random.randn(m, 1) / 10
    -
    -

    +

    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
     
    -
    -
    from sklearn.tree import DecisionTreeRegressor
    +# Load the data
    +cancer = load_breast_cancer()
     
    -tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)
    -tree_reg.fit(X, y)
    +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)))
     

    @@ -236,7 +286,7 @@ tree_reg.fit(X, y)

  • 34
  • 35
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html index 0f91c9af8..0e1700f16 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs026.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,79 +214,73 @@ MathJax.Hub.Config({ -

    Final regressor code

    +

    Another example, the moons again

    -

    from sklearn.tree import DecisionTreeRegressor
    +
    from __future__ import division, print_function, unicode_literals
     
    -tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2)
    -tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3)
    -tree_reg1.fit(X, y)
    -tree_reg2.fit(X, y)
    +# Common imports
    +import numpy as np
    +import os
     
    -def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel="$y$"):
    -    x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)
    -    y_pred = tree_reg.predict(x1)
    -    plt.axis(axes)
    -    plt.xlabel("$x_1$", fontsize=18)
    -    if ylabel:
    -        plt.ylabel(ylabel, fontsize=18, rotation=0)
    -    plt.plot(X, y, "b.")
    -    plt.plot(x1, y_pred, "r.-", linewidth=2, label=r"$\hat{y}$")
    +# to make this notebook's output stable across runs
    +np.random.seed(42)
     
    +# To plot pretty figures
    +import matplotlib
    +import matplotlib.pyplot as plt
    +from matplotlib.colors import ListedColormap
    +plt.rcParams['axes.labelsize'] = 14
    +plt.rcParams['xtick.labelsize'] = 12
    +plt.rcParams['ytick.labelsize'] = 12
    +
    +
    +from sklearn.svm import SVC
    +from sklearn import datasets
    +from sklearn.tree import DecisionTreeClassifier
    +from sklearn.datasets import make_moons
    +from sklearn.tree import export_graphviz
    +
    +Xm, ym = make_moons(n_samples=100, noise=0.25, random_state=53)
    +
    +deep_tree_clf1 = DecisionTreeClassifier(random_state=42)
    +deep_tree_clf2 = DecisionTreeClassifier(min_samples_leaf=4, random_state=42)
    +deep_tree_clf1.fit(Xm, ym)
    +deep_tree_clf2.fit(Xm, ym)
    +
    +
    +def plot_decision_boundary(clf, X, y, axes=[0, 7.5, 0, 3], iris=True, legend=False, plot_training=True):
    +    x1s = np.linspace(axes[0], axes[1], 100)
    +    x2s = np.linspace(axes[2], axes[3], 100)
    +    x1, x2 = np.meshgrid(x1s, x2s)
    +    X_new = np.c_[x1.ravel(), x2.ravel()]
    +    y_pred = clf.predict(X_new).reshape(x1.shape)
    +    custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])
    +    plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)
    +    if not iris:
    +        custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])
    +        plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)
    +    if plot_training:
    +        plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo", label="Iris-Setosa")
    +        plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs", label="Iris-Versicolor")
    +        plt.plot(X[:, 0][y==2], X[:, 1][y==2], "g^", label="Iris-Virginica")
    +        plt.axis(axes)
    +    if iris:
    +        plt.xlabel("Petal length", fontsize=14)
    +        plt.ylabel("Petal width", fontsize=14)
    +    else:
    +        plt.xlabel(r"$x_1$", fontsize=18)
    +        plt.ylabel(r"$x_2$", fontsize=18, rotation=0)
    +    if legend:
    +        plt.legend(loc="lower right", fontsize=14)
     plt.figure(figsize=(11, 4))
     plt.subplot(121)
    -plot_regression_predictions(tree_reg1, X, y)
    -for split, style in ((0.1973, "k-"), (0.0917, "k--"), (0.7718, "k--")):
    -    plt.plot([split, split], [-0.2, 1], style, linewidth=2)
    -plt.text(0.21, 0.65, "Depth=0", fontsize=15)
    -plt.text(0.01, 0.2, "Depth=1", fontsize=13)
    -plt.text(0.65, 0.8, "Depth=1", fontsize=13)
    -plt.legend(loc="upper center", fontsize=18)
    -plt.title("max_depth=2", fontsize=14)
    -
    +plot_decision_boundary(deep_tree_clf1, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)
    +plt.title("No restrictions", fontsize=16)
     plt.subplot(122)
    -plot_regression_predictions(tree_reg2, X, y, ylabel=None)
    -for split, style in ((0.1973, "k-"), (0.0917, "k--"), (0.7718, "k--")):
    -    plt.plot([split, split], [-0.2, 1], style, linewidth=2)
    -for split in (0.0458, 0.1298, 0.2873, 0.9040):
    -    plt.plot([split, split], [-0.2, 1], "k:", linewidth=1)
    -plt.text(0.3, 0.5, "Depth=2", fontsize=13)
    -plt.title("max_depth=3", fontsize=14)
    -
    -plt.show()
    -
    -

    - - -

    tree_reg1 = DecisionTreeRegressor(random_state=42)
    -tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)
    -tree_reg1.fit(X, y)
    -tree_reg2.fit(X, y)
    -
    -x1 = np.linspace(0, 1, 500).reshape(-1, 1)
    -y_pred1 = tree_reg1.predict(x1)
    -y_pred2 = tree_reg2.predict(x1)
    -
    -plt.figure(figsize=(11, 4))
    -
    -plt.subplot(121)
    -plt.plot(X, y, "b.")
    -plt.plot(x1, y_pred1, "r.-", linewidth=2, label=r"$\hat{y}$")
    -plt.axis([0, 1, -0.2, 1.1])
    -plt.xlabel("$x_1$", fontsize=18)
    -plt.ylabel("$y$", fontsize=18, rotation=0)
    -plt.legend(loc="upper center", fontsize=18)
    -plt.title("No restrictions", fontsize=14)
    -
    -plt.subplot(122)
    -plt.plot(X, y, "b.")
    -plt.plot(x1, y_pred2, "r.-", linewidth=2, label=r"$\hat{y}$")
    -plt.axis([0, 1, -0.2, 1.1])
    -plt.xlabel("$x_1$", fontsize=18)
    -plt.title("min_samples_leaf={}".format(tree_reg2.min_samples_leaf), fontsize=14)
    -
    +plot_decision_boundary(deep_tree_clf2, Xm, ym, axes=[-1.5, 2.5, -1, 1.5], iris=False)
    +plt.title("min_samples_leaf = {}".format(deep_tree_clf2.min_samples_leaf), fontsize=14)
     plt.show()
     

    @@ -292,7 +309,7 @@ plt.show()

  • 35
  • 36
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html index deb24ecb1..1a5e76321 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs027.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,18 +214,32 @@ MathJax.Hub.Config({ -

    Pros and cons of trees, pros

    +

    Playing around with regions

    +

    -

      -
    • White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)
    • -
    • Trees are very easy to explain to people. In fact, they are even easier to explain than linear regression!
    • -
    • No feature normalization needed
    • -
    • Tree models can handle both continuous and categorical data (Classification and Regression Trees)
    • -
    • Can model nonlinear relationships
    • -
    • Can model interactions between the different descriptive features
    • -
    • Trees can be displayed graphically, and are easily interpreted even by a non-expert (especially if they are small)
    • -
    + +
    np.random.seed(6)
    +Xs = np.random.rand(100, 2) - 0.5
    +ys = (Xs[:, 0] > 0).astype(np.float32) * 2
     
    +angle = np.pi/4
    +rotation_matrix = np.array([[np.cos(angle), -np.sin(angle)], [np.sin(angle), np.cos(angle)]])
    +Xsr = Xs.dot(rotation_matrix)
    +
    +tree_clf_s = DecisionTreeClassifier(random_state=42)
    +tree_clf_s.fit(Xs, ys)
    +tree_clf_sr = DecisionTreeClassifier(random_state=42)
    +tree_clf_sr.fit(Xsr, ys)
    +
    +plt.figure(figsize=(11, 4))
    +plt.subplot(121)
    +plot_decision_boundary(tree_clf_s, Xs, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)
    +plt.subplot(122)
    +plot_decision_boundary(tree_clf_sr, Xsr, ys, axes=[-0.7, 0.7, -0.7, 0.7], iris=False)
    +
    +plt.show()
    +
    +

      @@ -228,7 +265,7 @@ MathJax.Hub.Config({
    • 36
    • 37
    • ...
    • -
    • 42
    • +
    • 50
    • »
    diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html index 830923076..767d35e1c 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs028.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,20 +214,25 @@ MathJax.Hub.Config({ -

    Disadvantages

    +

    Regression trees

    +

    -

      -
    • Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches
    • -
    • If continuous features are used the tree may become quite large and hence less interpretable
    • -
    • Decision trees are prone to overfit the training data and hence do not well generalize the data if no stopping criteria or improvements like pruning, boosting or bagging are implemented
    • -
    • Small changes in the data may lead to a completely different tree. This issue can be addressed by using ensemble methods like bagging, boosting or random forests
    • -
    • Unbalanced datasets where some target feature values occur much more frequently than others may lead to biased trees since the frequently occurring feature values are preferred over the less frequently occurring ones.
    • -
    • If the number of features is relatively large (high dimensional) and the number of instances is relatively low, the tree might overfit the data
    • -
    • Features with many levels may be preferred over features with less levels since for them it is more easy to split the dataset such that the sub datasets only contain pure target feature values. This issue can be addressed by preferring for instance the information gain ratio as splitting criteria over information gain
    • -
    + +
    # Quadratic training set + noise
    +np.random.seed(42)
    +m = 200
    +X = np.random.rand(m, 1)
    +y = 4 * (X - 0.5) ** 2
    +y = y + np.random.randn(m, 1) / 10
    +
    +

    -However, by aggregating many decision trees, using methods like bagging, random forests, and boosting, the predictive performance of trees can be substantially improved. + +

    from sklearn.tree import DecisionTreeRegressor
     
    +tree_reg = DecisionTreeRegressor(max_depth=2, random_state=42)
    +tree_reg.fit(X, y)
    +

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

  • 37
  • 38
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html index ccafcc714..294420e7b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs029.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,22 +214,81 @@ MathJax.Hub.Config({ -

    Bagging

    - +

    Final regressor code

    -The plain decision trees suffer from high -variance. This means that if we split the training data into two parts -at random, and fit a decision tree to both halves, the results that we -get could be quite different. In contrast, a procedure with low -variance will yield similar results if applied repeatedly to distinct -data sets; linear regression tends to have low variance, if the ratio -of \( n \) to \( p \) is moderately large. + +

    from sklearn.tree import DecisionTreeRegressor
    +
    +tree_reg1 = DecisionTreeRegressor(random_state=42, max_depth=2)
    +tree_reg2 = DecisionTreeRegressor(random_state=42, max_depth=3)
    +tree_reg1.fit(X, y)
    +tree_reg2.fit(X, y)
    +
    +def plot_regression_predictions(tree_reg, X, y, axes=[0, 1, -0.2, 1], ylabel="$y$"):
    +    x1 = np.linspace(axes[0], axes[1], 500).reshape(-1, 1)
    +    y_pred = tree_reg.predict(x1)
    +    plt.axis(axes)
    +    plt.xlabel("$x_1$", fontsize=18)
    +    if ylabel:
    +        plt.ylabel(ylabel, fontsize=18, rotation=0)
    +    plt.plot(X, y, "b.")
    +    plt.plot(x1, y_pred, "r.-", linewidth=2, label=r"$\hat{y}$")
    +
    +plt.figure(figsize=(11, 4))
    +plt.subplot(121)
    +plot_regression_predictions(tree_reg1, X, y)
    +for split, style in ((0.1973, "k-"), (0.0917, "k--"), (0.7718, "k--")):
    +    plt.plot([split, split], [-0.2, 1], style, linewidth=2)
    +plt.text(0.21, 0.65, "Depth=0", fontsize=15)
    +plt.text(0.01, 0.2, "Depth=1", fontsize=13)
    +plt.text(0.65, 0.8, "Depth=1", fontsize=13)
    +plt.legend(loc="upper center", fontsize=18)
    +plt.title("max_depth=2", fontsize=14)
    +
    +plt.subplot(122)
    +plot_regression_predictions(tree_reg2, X, y, ylabel=None)
    +for split, style in ((0.1973, "k-"), (0.0917, "k--"), (0.7718, "k--")):
    +    plt.plot([split, split], [-0.2, 1], style, linewidth=2)
    +for split in (0.0458, 0.1298, 0.2873, 0.9040):
    +    plt.plot([split, split], [-0.2, 1], "k:", linewidth=1)
    +plt.text(0.3, 0.5, "Depth=2", fontsize=13)
    +plt.title("max_depth=3", fontsize=14)
    +
    +plt.show()
    +

    -Bootstrap aggregation, or just bagging, is a -general-purpose procedure for reducing the variance of a statistical -learning method. + +

    tree_reg1 = DecisionTreeRegressor(random_state=42)
    +tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)
    +tree_reg1.fit(X, y)
    +tree_reg2.fit(X, y)
    +
    +x1 = np.linspace(0, 1, 500).reshape(-1, 1)
    +y_pred1 = tree_reg1.predict(x1)
    +y_pred2 = tree_reg2.predict(x1)
    +
    +plt.figure(figsize=(11, 4))
    +
    +plt.subplot(121)
    +plt.plot(X, y, "b.")
    +plt.plot(x1, y_pred1, "r.-", linewidth=2, label=r"$\hat{y}$")
    +plt.axis([0, 1, -0.2, 1.1])
    +plt.xlabel("$x_1$", fontsize=18)
    +plt.ylabel("$y$", fontsize=18, rotation=0)
    +plt.legend(loc="upper center", fontsize=18)
    +plt.title("No restrictions", fontsize=14)
    +
    +plt.subplot(122)
    +plt.plot(X, y, "b.")
    +plt.plot(x1, y_pred2, "r.-", linewidth=2, label=r"$\hat{y}$")
    +plt.axis([0, 1, -0.2, 1.1])
    +plt.xlabel("$x_1$", fontsize=18)
    +plt.title("min_samples_leaf={}".format(tree_reg2.min_samples_leaf), fontsize=14)
    +
    +plt.show()
    +

    @@ -233,7 +315,7 @@ learning method.

  • 38
  • 39
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html index 19bc01de5..fd04d1e03 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs030.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,33 +214,18 @@ MathJax.Hub.Config({ -

    More bagging

    +

    Pros and cons of trees, pros

    -

    -Bagging typically results in improved accuracy -over prediction using a single tree. Unfortunately, however, it can be -difficult to interpret the resulting model. Recall that one of the -advantages of decision trees is the attractive and easily interpreted -diagram that results. +

      +
    • White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)
    • +
    • Trees are very easy to explain to people. In fact, they are even easier to explain than linear regression!
    • +
    • No feature normalization needed
    • +
    • Tree models can handle both continuous and categorical data (Classification and Regression Trees)
    • +
    • Can model nonlinear relationships
    • +
    • Can model interactions between the different descriptive features
    • +
    • Trees can be displayed graphically, and are easily interpreted even by a non-expert (especially if they are small)
    • +
    -

    -However, when we bag a large number of trees, it is no longer -possible to represent the resulting statistical learning procedure -using a single tree, and it is no longer clear which variables are -most important to the procedure. Thus, bagging improves prediction -accuracy at the expense of interpretability. Although the collection -of bagged trees is much more difficult to interpret than a single -tree, one can obtain an overall summary of the importance of each -predictor using the MSE (for bagging regression trees) or the Gini -index (for bagging classification trees). In the case of bagging -regression trees, we can record the total amount that the MSE is -decreased due to splits over a given predictor, averaged over all \( B \) possible -trees. A large value indicates an important predictor. Similarly, in -the context of bagging classification trees, we can add up the total -amount that the Gini index is decreased by splits over a given -predictor, averaged over all \( B \) trees. - -

      @@ -243,7 +251,7 @@ predictor, averaged over all \( B \) trees.
    • 39
    • 40
    • ...
    • -
    • 42
    • +
    • 50
    • »
    diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html index 044ef068d..21e98113b 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs031.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,23 +214,20 @@ MathJax.Hub.Config({ -

    Simple Voting Example, head or tail

    -

    +

    Disadvantages

    + +
      +
    • Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches
    • +
    • If continuous features are used the tree may become quite large and hence less interpretable
    • +
    • Decision trees are prone to overfit the training data and hence do not well generalize the data if no stopping criteria or improvements like pruning, boosting or bagging are implemented
    • +
    • Small changes in the data may lead to a completely different tree. This issue can be addressed by using ensemble methods like bagging, boosting or random forests
    • +
    • Unbalanced datasets where some target feature values occur much more frequently than others may lead to biased trees since the frequently occurring feature values are preferred over the less frequently occurring ones.
    • +
    • If the number of features is relatively large (high dimensional) and the number of instances is relatively low, the tree might overfit the data
    • +
    • Features with many levels may be preferred over features with less levels since for them it is more easy to split the dataset such that the sub datasets only contain pure target feature values. This issue can be addressed by preferring for instance the information gain ratio as splitting criteria over information gain
    • +
    + +However, by aggregating many decision trees, using methods like bagging, random forests, and boosting, the predictive performance of trees can be substantially improved. - -
    heads_proba = 0.51
    -coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)
    -cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1)
    -plt.figure(figsize=(8,3.5))
    -plt.plot(cumulative_heads_ratio)
    -plt.plot([0, 10000], [0.51, 0.51], "k--", linewidth=2, label="51%")
    -plt.plot([0, 10000], [0.5, 0.5], "k-", label="50%")
    -plt.xlabel("Number of coin tosses")
    -plt.ylabel("Heads ratio")
    -plt.legend(loc="lower right")
    -plt.axis([0, 10000, 0.42, 0.58])
    -plt.show()
    -

    @@ -234,7 +254,7 @@ plt.show()

  • 40
  • 41
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html index d0c8d30ae..bd6c12724 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs032.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,54 +214,27 @@ MathJax.Hub.Config({ -

    Using the Voting Classifier

    +

    From a Single Tree to Many Trees, that is 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 +data. This normally means that we have a high variance. Can we reduce +the variance of a statistical learning method? - -

    from sklearn.model_selection import train_test_split
    -from sklearn.datasets import make_moons
    +

    +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 -X, y = make_moons(n_samples=500, noise=0.30, random_state=42) -X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42) +

      +
    1. Votign classifiers
    2. +
    3. Bagging and Pasting
    4. +
    5. Random forests
    6. +
    7. Boosting methods
    8. +
    -from sklearn.ensemble import RandomForestClassifier -from sklearn.ensemble import VotingClassifier -from sklearn.linear_model import LogisticRegression -from sklearn.svm import SVC +We discuss these methods here. -log_clf = LogisticRegression(solver="liblinear", random_state=42) -rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42) -svm_clf = SVC(gamma="auto", random_state=42) - -voting_clf = VotingClassifier( - estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)], - voting='hard') - -voting_clf.fit(X_train, y_train) - -from sklearn.metrics import accuracy_score - -for clf in (log_clf, rnd_clf, svm_clf, voting_clf): - clf.fit(X_train, y_train) - y_pred = clf.predict(X_test) - print(clf.__class__.__name__, accuracy_score(y_test, y_pred)) - -log_clf = LogisticRegression(solver="liblinear", random_state=42) -rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42) -svm_clf = SVC(gamma="auto", probability=True, random_state=42) - -voting_clf = VotingClassifier( - estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)], - voting='soft') -voting_clf.fit(X_train, y_train) - -from sklearn.metrics import accuracy_score - -for clf in (log_clf, rnd_clf, svm_clf, voting_clf): - clf.fit(X_train, y_train) - y_pred = clf.predict(X_test) - print(clf.__class__.__name__, accuracy_score(y_test, y_pred)) -

    @@ -264,6 +260,8 @@ voting_clf.fit(X_train, y_train)

  • 40
  • 41
  • 42
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html index 11262aea5..f614c844d 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs033.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,61 +214,22 @@ MathJax.Hub.Config({ -

    Please, not the moons again! Voting and Bagging

    +

    Bagging

    +

    +The plain decision trees suffer from high +variance. This means that if we split the training data into two parts +at random, and fit a decision tree to both halves, the results that we +get could be quite different. In contrast, a procedure with low +variance will yield similar results if applied repeatedly to distinct +data sets; linear regression tends to have low variance, if the ratio +of \( n \) to \( p \) is moderately large. - -

    from sklearn.model_selection import train_test_split
    -from sklearn.datasets import make_moons
    -
    -X, y = make_moons(n_samples=500, noise=0.30, random_state=42)
    -X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    -from sklearn.ensemble import RandomForestClassifier
    -from sklearn.ensemble import VotingClassifier
    -from sklearn.linear_model import LogisticRegression
    -from sklearn.svm import SVC
    -
    -log_clf = LogisticRegression(random_state=42)
    -rnd_clf = RandomForestClassifier(random_state=42)
    -svm_clf = SVC(random_state=42)
    -
    -voting_clf = VotingClassifier(
    -    estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
    -    voting='hard')
    -voting_clf.fit(X_train, y_train)
    -

    +Bootstrap aggregation, or just bagging, is a +general-purpose procedure for reducing the variance of a statistical +learning method. - -

    from sklearn.metrics import accuracy_score
    -
    -for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
    -    clf.fit(X_train, y_train)
    -    y_pred = clf.predict(X_test)
    -    print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
    -
    -

    - - -

    log_clf = LogisticRegression(random_state=42)
    -rnd_clf = RandomForestClassifier(random_state=42)
    -svm_clf = SVC(probability=True, random_state=42)
    -
    -voting_clf = VotingClassifier(
    -    estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
    -    voting='soft')
    -voting_clf.fit(X_train, y_train)
    -
    -

    - - -

    from sklearn.metrics import accuracy_score
    -
    -for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
    -    clf.fit(X_train, y_train)
    -    y_pred = clf.predict(X_test)
    -    print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
    -

    @@ -270,6 +254,9 @@ voting_clf.fit(X_train, y_train)

  • 40
  • 41
  • 42
  • +
  • 43
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html index 91e4880c1..7ce207a31 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs034.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,64 +214,32 @@ MathJax.Hub.Config({ -

    Now Bagging

    +

    More bagging

    +Bagging typically results in improved accuracy +over prediction using a single tree. Unfortunately, however, it can be +difficult to interpret the resulting model. Recall that one of the +advantages of decision trees is the attractive and easily interpreted +diagram that results. - -

    from sklearn.ensemble import BaggingClassifier
    -from sklearn.tree import DecisionTreeClassifier
    -
    -bag_clf = BaggingClassifier(
    -    DecisionTreeClassifier(random_state=42), n_estimators=500,
    -    max_samples=100, bootstrap=True, n_jobs=-1, random_state=42)
    -bag_clf.fit(X_train, y_train)
    -y_pred = bag_clf.predict(X_test)
    -

    +However, when we bag a large number of trees, it is no longer +possible to represent the resulting statistical learning procedure +using a single tree, and it is no longer clear which variables are +most important to the procedure. Thus, bagging improves prediction +accuracy at the expense of interpretability. Although the collection +of bagged trees is much more difficult to interpret than a single +tree, one can obtain an overall summary of the importance of each +predictor using the MSE (for bagging regression trees) or the Gini +index (for bagging classification trees). In the case of bagging +regression trees, we can record the total amount that the MSE is +decreased due to splits over a given predictor, averaged over all \( B \) possible +trees. A large value indicates an important predictor. Similarly, in +the context of bagging classification trees, we can add up the total +amount that the Gini index is decreased by splits over a given +predictor, averaged over all \( B \) trees. - -

    from sklearn.metrics import accuracy_score
    -print(accuracy_score(y_test, y_pred))
    -
    -

    - - -

    tree_clf = DecisionTreeClassifier(random_state=42)
    -tree_clf.fit(X_train, y_train)
    -y_pred_tree = tree_clf.predict(X_test)
    -print(accuracy_score(y_test, y_pred_tree))
    -
    -

    - - -

    from matplotlib.colors import ListedColormap
    -
    -def plot_decision_boundary(clf, X, y, axes=[-1.5, 2.5, -1, 1.5], alpha=0.5, contour=True):
    -    x1s = np.linspace(axes[0], axes[1], 100)
    -    x2s = np.linspace(axes[2], axes[3], 100)
    -    x1, x2 = np.meshgrid(x1s, x2s)
    -    X_new = np.c_[x1.ravel(), x2.ravel()]
    -    y_pred = clf.predict(X_new).reshape(x1.shape)
    -    custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])
    -    plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)
    -    if contour:
    -        custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])
    -        plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)
    -    plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo", alpha=alpha)
    -    plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs", alpha=alpha)
    -    plt.axis(axes)
    -    plt.xlabel(r"$x_1$", fontsize=18)
    -    plt.ylabel(r"$x_2$", fontsize=18, rotation=0)
    -plt.figure(figsize=(11,4))
    -plt.subplot(121)
    -plot_decision_boundary(tree_clf, X, y)
    -plt.title("Decision Tree", fontsize=14)
    -plt.subplot(122)
    -plot_decision_boundary(bag_clf, X, y)
    -plt.title("Decision Trees with Bagging", fontsize=14)
    -plt.show()
    -

    @@ -272,6 +263,10 @@ plt.show()

  • 40
  • 41
  • 42
  • +
  • 43
  • +
  • 44
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html index 4b7896efb..8bccb0b35 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs035.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,47 +214,23 @@ MathJax.Hub.Config({ -

    Random forests

    - +

    Simple Voting Example, head or tail

    -Random forests provide an improvement over bagged trees by way of a -small tweak that decorrelates the trees. - -

    -As in bagging, we build a -number of decision trees on bootstrapped training samples. But when -building these decision trees, each time a split in a tree is -considered, a random sample of \( m \) predictors is chosen as split -candidates from the full set of \( p \) predictors. The split is allowed to -use only one of those \( m \) predictors. - -

    -A fresh sample of \( m \) predictors is -taken at each split, and typically we choose - -$$ -m\approx \sqrt{p}. -$$ - -

    -In building a random forest, at -each split in the tree, the algorithm is not even allowed to consider -a majority of the available predictors. - -

    -The reason for this is rather clever. Suppose that there is one very -strong predictor in the data set, along with a number of other -moderately strong predictors. Then in the collection of bagged -variable importance random forest trees, most or all of the trees will -use this strong predictor in the top split. Consequently, all of the -bagged trees will look quite similar to each other. Hence the -predictions from the bagged trees will be highly correlated. -Unfortunately, averaging many highly correlated quantities does not -lead to as large of a reduction in variance as averaging many -uncorrelated quanti- ties. In particular, this means that bagging will -not lead to a substantial reduction in variance over a single tree in -this setting. + +

    heads_proba = 0.51
    +coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)
    +cumulative_heads_ratio = np.cumsum(coin_tosses, axis=0) / np.arange(1, 10001).reshape(-1, 1)
    +plt.figure(figsize=(8,3.5))
    +plt.plot(cumulative_heads_ratio)
    +plt.plot([0, 10000], [0.51, 0.51], "k--", linewidth=2, label="51%")
    +plt.plot([0, 10000], [0.5, 0.5], "k-", label="50%")
    +plt.xlabel("Number of coin tosses")
    +plt.ylabel("Heads ratio")
    +plt.legend(loc="lower right")
    +plt.axis([0, 10000, 0.42, 0.58])
    +plt.show()
    +

    @@ -254,6 +253,11 @@ this setting.

  • 40
  • 41
  • 42
  • +
  • 43
  • +
  • 44
  • +
  • 45
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html index af874b3ba..187f9c1c7 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs036.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,20 +214,53 @@ MathJax.Hub.Config({ -

    A simple scikit-learn example

    +

    Using the Voting Classifier

    -

    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")
    -#Cross validation
    -accuracy = cross_validate(Random_Forest_model,X,Y,cv=10)['test_score']
    +
    from sklearn.model_selection import train_test_split
    +from sklearn.datasets import make_moons
    +
    +X, y = make_moons(n_samples=500, noise=0.30, random_state=42)
    +X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    +
    +from sklearn.ensemble import RandomForestClassifier
    +from sklearn.ensemble import VotingClassifier
    +from sklearn.linear_model import LogisticRegression
    +from sklearn.svm import SVC
    +
    +log_clf = LogisticRegression(solver="liblinear", random_state=42)
    +rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)
    +svm_clf = SVC(gamma="auto", random_state=42)
    +
    +voting_clf = VotingClassifier(
    +    estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
    +    voting='hard')
    +
    +voting_clf.fit(X_train, y_train)
    +
    +from sklearn.metrics import accuracy_score
    +
    +for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
    +    clf.fit(X_train, y_train)
    +    y_pred = clf.predict(X_test)
    +    print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
    +
    +log_clf = LogisticRegression(solver="liblinear", random_state=42)
    +rnd_clf = RandomForestClassifier(n_estimators=10, random_state=42)
    +svm_clf = SVC(gamma="auto", probability=True, random_state=42)
    +
    +voting_clf = VotingClassifier(
    +    estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
    +    voting='soft')
    +voting_clf.fit(X_train, y_train)
    +
    +from sklearn.metrics import accuracy_score
    +
    +for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
    +    clf.fit(X_train, y_train)
    +    y_pred = clf.predict(X_test)
    +    print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
     

    @@ -227,6 +283,12 @@ accuracy = cross_validate(Random_Forest_mode

  • 40
  • 41
  • 42
  • +
  • 43
  • +
  • 44
  • +
  • 45
  • +
  • 46
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html index 462ed91d1..3e4b68888 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs037.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,24 +214,60 @@ MathJax.Hub.Config({ -

    Then random forests

    +

    Please, not the moons again! Voting and Bagging

    -

    bag_clf = BaggingClassifier(
    -    DecisionTreeClassifier(splitter="random", max_leaf_nodes=16, random_state=42),
    -    n_estimators=500, max_samples=1.0, bootstrap=True, n_jobs=-1, random_state=42)
    +
    from sklearn.model_selection import train_test_split
    +from sklearn.datasets import make_moons
    +
    +X, y = make_moons(n_samples=500, noise=0.30, random_state=42)
    +X_train, X_test, y_train, y_test = train_test_split(X, y, random_state=42)
    +from sklearn.ensemble import RandomForestClassifier
    +from sklearn.ensemble import VotingClassifier
    +from sklearn.linear_model import LogisticRegression
    +from sklearn.svm import SVC
    +
    +log_clf = LogisticRegression(random_state=42)
    +rnd_clf = RandomForestClassifier(random_state=42)
    +svm_clf = SVC(random_state=42)
    +
    +voting_clf = VotingClassifier(
    +    estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
    +    voting='hard')
    +voting_clf.fit(X_train, y_train)
     

    -

    bag_clf.fit(X_train, y_train)
    -y_pred = bag_clf.predict(X_test)
    -from sklearn.ensemble import RandomForestClassifier
    -rnd_clf = RandomForestClassifier(n_estimators=500, max_leaf_nodes=16, n_jobs=-1, random_state=42)
    -rnd_clf.fit(X_train, y_train)
    -y_pred_rf = rnd_clf.predict(X_test)
    -np.sum(y_pred == y_pred_rf) / len(y_pred) 
    +
    from sklearn.metrics import accuracy_score
    +
    +for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
    +    clf.fit(X_train, y_train)
    +    y_pred = clf.predict(X_test)
    +    print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
    +
    +

    + + +

    log_clf = LogisticRegression(random_state=42)
    +rnd_clf = RandomForestClassifier(random_state=42)
    +svm_clf = SVC(probability=True, random_state=42)
    +
    +voting_clf = VotingClassifier(
    +    estimators=[('lr', log_clf), ('rf', rnd_clf), ('svc', svm_clf)],
    +    voting='soft')
    +voting_clf.fit(X_train, y_train)
    +
    +

    + + +

    from sklearn.metrics import accuracy_score
    +
    +for clf in (log_clf, rnd_clf, svm_clf, voting_clf):
    +    clf.fit(X_train, y_train)
    +    y_pred = clf.predict(X_test)
    +    print(clf.__class__.__name__, accuracy_score(y_test, y_pred))
     

    @@ -230,6 +289,13 @@ np.sum(y_pred =

  • 40
  • 41
  • 42
  • +
  • 43
  • +
  • 44
  • +
  • 45
  • +
  • 46
  • +
  • 47
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html b/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html index 6f47e526d..cadb27ef5 100644 --- a/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html +++ b/doc/pub/DecisionTrees/html/._DecisionTrees-bs038.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -191,11 +214,64 @@ MathJax.Hub.Config({ -

    Feature Importance

    +

    Now Bagging

    -Example will be added here. + +

    from sklearn.ensemble import BaggingClassifier
    +from sklearn.tree import DecisionTreeClassifier
    +
    +bag_clf = BaggingClassifier(
    +    DecisionTreeClassifier(random_state=42), n_estimators=500,
    +    max_samples=100, bootstrap=True, n_jobs=-1, random_state=42)
    +bag_clf.fit(X_train, y_train)
    +y_pred = bag_clf.predict(X_test)
    +
    +

    + + +

    from sklearn.metrics import accuracy_score
    +print(accuracy_score(y_test, y_pred))
    +
    +

    + + +

    tree_clf = DecisionTreeClassifier(random_state=42)
    +tree_clf.fit(X_train, y_train)
    +y_pred_tree = tree_clf.predict(X_test)
    +print(accuracy_score(y_test, y_pred_tree))
    +
    +

    + + +

    from matplotlib.colors import ListedColormap
    +
    +def plot_decision_boundary(clf, X, y, axes=[-1.5, 2.5, -1, 1.5], alpha=0.5, contour=True):
    +    x1s = np.linspace(axes[0], axes[1], 100)
    +    x2s = np.linspace(axes[2], axes[3], 100)
    +    x1, x2 = np.meshgrid(x1s, x2s)
    +    X_new = np.c_[x1.ravel(), x2.ravel()]
    +    y_pred = clf.predict(X_new).reshape(x1.shape)
    +    custom_cmap = ListedColormap(['#fafab0','#9898ff','#a0faa0'])
    +    plt.contourf(x1, x2, y_pred, alpha=0.3, cmap=custom_cmap)
    +    if contour:
    +        custom_cmap2 = ListedColormap(['#7d7d58','#4c4c7f','#507d50'])
    +        plt.contour(x1, x2, y_pred, cmap=custom_cmap2, alpha=0.8)
    +    plt.plot(X[:, 0][y==0], X[:, 1][y==0], "yo", alpha=alpha)
    +    plt.plot(X[:, 0][y==1], X[:, 1][y==1], "bs", alpha=alpha)
    +    plt.axis(axes)
    +    plt.xlabel(r"$x_1$", fontsize=18)
    +    plt.ylabel(r"$x_2$", fontsize=18, rotation=0)
    +plt.figure(figsize=(11,4))
    +plt.subplot(121)
    +plot_decision_boundary(tree_clf, X, y)
    +plt.title("Decision Tree", fontsize=14)
    +plt.subplot(122)
    +plot_decision_boundary(bag_clf, X, y)
    +plt.title("Decision Trees with Bagging", fontsize=14)
    +plt.show()
    +

    @@ -215,6 +291,14 @@ Example will be added here.

  • 40
  • 41
  • 42
  • +
  • 43
  • +
  • 44
  • +
  • 45
  • +
  • 46
  • +
  • 47
  • +
  • 48
  • +
  • ...
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-bs.html b/doc/pub/DecisionTrees/html/DecisionTrees-bs.html index 71dfb146f..ec2e98fd3 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-bs.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-bs.html @@ -64,40 +64,55 @@ Automatically generated HTML file from DocOnce source ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -151,31 +166,39 @@ MathJax.Hub.Config({
  • Classification tree, how to split nodes
  • Visualizing the Tree, Classification
  • Visualizing the Tree, The Moons
  • -
  • Computing the Gini index
  • -
  • Simple Python Code to read in Data and perform Classification
  • -
  • Computing the Gini Factor
  • -
  • Entropy and the ID3 algorithm
  • -
  • Implementing the ID3 Algorithm
  • -
  • Cancer Data again now with Decision Trees and other Methods
  • -
  • Another example, the moons again
  • -
  • Playing around with regions
  • -
  • Regression trees
  • -
  • Final regressor code
  • -
  • Pros and cons of trees, pros
  • -
  • Disadvantages
  • -
  • Bagging
  • -
  • More bagging
  • -
  • Simple Voting Example, head or tail
  • -
  • Using the Voting Classifier
  • -
  • Please, not the moons again! Voting and Bagging
  • -
  • Now Bagging
  • -
  • Random forests
  • -
  • A simple scikit-learn example
  • -
  • Then random forests
  • -
  • Feature Importance
  • -
  • Boosting: AdaBoost
  • -
  • Gradient Boosting
  • -
  • Gradient Boots with Early Stopping
  • +
  • Algorithms for Setting up Decision Trees
  • +
  • The CART algorithm for Classification
  • +
  • The CART algorithm for Regression
  • +
  • Computing the Gini index
  • +
  • Simple Python Code to read in Data and perform Classification
  • +
  • Computing the Gini Factor
  • +
  • Entropy and the ID3 algorithm
  • +
  • Implementing the ID3 Algorithm
  • +
  • Cancer Data again now with Decision Trees and other Methods
  • +
  • Another example, the moons again
  • +
  • Playing around with regions
  • +
  • Regression trees
  • +
  • Final regressor code
  • +
  • Pros and cons of trees, pros
  • +
  • Disadvantages
  • +
  • From a Single Tree to Many Trees, that is meet the Jungle of Methods
  • +
  • Bagging
  • +
  • More bagging
  • +
  • Simple Voting Example, head or tail
  • +
  • Using the Voting Classifier
  • +
  • Please, not the moons again! Voting and Bagging
  • +
  • Now Bagging
  • +
  • Random forests
  • +
  • A simple scikit-learn example
  • +
  • Then random forests
  • +
  • Feature Importance
  • +
  • Boosting, a Bird'e Eye
  • +
  • Adaptive boosting: AdaBoost, Basic Algorithm
  • +
  • AdaBoost Examples
  • +
  • Gradient boosting: Basic Algorithm
  • +
  • Gradient Boosting, Examples
  • +
  • Gradient Boots with Early Stopping
  • +
  • XGBoost: Extreme Gradient Boosting
  • @@ -210,7 +233,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 1, 2019

    +

    Nov 2, 2019


    @@ -234,7 +257,7 @@ MathJax.Hub.Config({

  • 9
  • 10
  • ...
  • -
  • 42
  • +
  • 50
  • »
  • diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html b/doc/pub/DecisionTrees/html/DecisionTrees-reveal.html index 758d6151d..5b1289cc6 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 1, 2019

    +

    Nov 2, 2019


    @@ -194,6 +194,9 @@ given some assumptions, make predictions about the target feature value

    A typical Decision Tree with its pertinent Jargon, Classification Problem

    + +

    +Figure to come here.

    @@ -691,7 +694,31 @@ os.system(cmd)
    -

    Computing the Gini index

    +

    Algorithms for Setting up Decision Trees

    +Two algorithms stand out in the set up of decision trees: + +
      +

    1. The CART (Classification And Regression Tree) algorithm for both classification and regression
    2. +

    3. The ID3 algorithm based on the computation of the information gain for classification
    4. +
    +

    + +We discuss both algorithms with applications here. The popular library -Scikit-Learn_ uses the CART algorithm. For classification problems you can use either the gini index or the entropy to split a tree in two branches. +

    + + +
    +

    The CART algorithm for Classification

    +
    + + +
    +

    The CART algorithm for Regression

    +
    + + +
    +

    Computing the Gini index

    The example we will look at is a classical one in many Machine @@ -732,7 +759,7 @@ The table here summarizes the various attributes and

    -

    Simple Python Code to read in Data and perform Classification

    +

    Simple Python Code to read in Data and perform Classification

    @@ -809,7 +836,7 @@ os.system(cmd)

    -

    Computing the Gini Factor

    +

    Computing the Gini Factor

    The above functions (gini, entropy and misclassification error) are @@ -888,7 +915,7 @@ split = get_split(dataset)

    -

    Entropy and the ID3 algorithm

    +

    Entropy and the ID3 algorithm

    ID3, learns decision trees by constructing @@ -925,7 +952,7 @@ attributes at each step while growing the tree.

    -

    Implementing the ID3 Algorithm

    +

    Implementing the ID3 Algorithm

    @@ -1122,7 +1149,7 @@ attributes at each step while growing the tree.

    -

    Cancer Data again now with Decision Trees and other Methods

    +

    Cancer Data again now with Decision Trees and other Methods

    @@ -1172,7 +1199,7 @@ deep_tree_clf.fit(X_train_scaled, y_train)

    -

    Another example, the moons again

    +

    Another example, the moons again

    @@ -1245,7 +1272,7 @@ plt.show()

    -

    Playing around with regions

    +

    Playing around with regions

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

    -

    Regression trees

    +

    Regression trees

    @@ -1297,7 +1324,7 @@ tree_reg.fit(X, y)

    -

    Final regressor code

    +

    Final regressor code

    @@ -1376,7 +1403,7 @@ plt.show()

    -

    Pros and cons of trees, pros

    +

    Pros and cons of trees, pros

    • White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)
    • @@ -1391,7 +1418,7 @@ plt.show()
      -

      Disadvantages

      +

      Disadvantages

      • Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches
      • @@ -1409,7 +1436,32 @@ However, by aggregating many decision trees, using methods like bagging, random
        -

        Bagging

        +

        From a Single Tree to Many Trees, that is 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 +data. This normally means that we have a high variance. Can we reduce +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 + +

          +

        1. Votign classifiers
        2. +

        3. Bagging and Pasting
        4. +

        5. Random forests
        6. +

        7. Boosting methods
        8. +
        +

        + +We discuss these methods here. +

        + + +
        +

        Bagging

        The plain decision trees suffer from high @@ -1428,7 +1480,7 @@ learning method.

        -

        More bagging

        +

        More bagging

        Bagging typically results in improved accuracy @@ -1457,7 +1509,7 @@ predictor, averaged over all \( B \) trees.

        -

        Simple Voting Example, head or tail

        +

        Simple Voting Example, head or tail

        @@ -1478,7 +1530,7 @@ plt.show()

        -

        Using the Voting Classifier

        +

        Using the Voting Classifier

        @@ -1530,7 +1582,7 @@ voting_clf.fit(X_train, y_train)

        -

        Please, not the moons again! Voting and Bagging

        +

        Please, not the moons again! Voting and Bagging

        @@ -1589,7 +1641,7 @@ voting_clf.fit(X_train, y_train)

        -

        Now Bagging

        +

        Now Bagging

        @@ -1651,7 +1703,7 @@ plt.show()

        -

        Random forests

        +

        Random forests

        Random forests provide an improvement over bagged trees by way of a @@ -1697,7 +1749,7 @@ this setting.

        -

        A simple scikit-learn example

        +

        A simple scikit-learn example

        @@ -1716,7 +1768,7 @@ accuracy = cross_validate(Random_Forest_model,X,Y,cv=Then random forests +

        Then random forests

        @@ -1739,7 +1791,7 @@ np.sum(y_pred == y_pred_rf) / len(y_pred)

        -

        Feature Importance

        +

        Feature Importance

        Example will be added here. @@ -1747,8 +1799,17 @@ Example will be added here.

        -

        Boosting: AdaBoost

        +

        Boosting, a Bird'e Eye

        +
        + +
        +

        Adaptive boosting: AdaBoost, Basic Algorithm

        +
        + + +
        +

        AdaBoost Examples

        @@ -1788,7 +1849,12 @@ plt.show()

        -

        Gradient Boosting

        +

        Gradient boosting: Basic Algorithm

        +
        + + +
        +

        Gradient Boosting, Examples

        @@ -1879,7 +1945,7 @@ plt.show()

        -

        Gradient Boots with Early Stopping

        +

        Gradient Boots with Early Stopping

        @@ -1943,6 +2009,11 @@ error_going_up = 0

        +
        +

        XGBoost: Extreme Gradient Boosting

        +
        + +
    diff --git a/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html b/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html index eb1f7a577..160958595 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees-solarized.html @@ -84,40 +84,55 @@ div { text-align: justify; text-justify: inter-word; } ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -159,7 +174,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 1, 2019

    +

    Nov 2, 2019












    @@ -200,6 +215,9 @@ given some assumptions, make predictions about the target feature value

    A typical Decision Tree with its pertinent Jargon, Classification Problem

    +

    +Figure to come here. +











    @@ -675,7 +693,30 @@ os.system(cmd)











    -

    Computing the Gini index

    +

    Algorithms for Setting up Decision Trees

    +Two algorithms stand out in the set up of decision trees: + +
      +
    1. The CART (Classification And Regression Tree) algorithm for both classification and regression
    2. +
    3. The ID3 algorithm based on the computation of the information gain for classification
    4. +
    + +We discuss both algorithms with applications here. The popular library -Scikit-Learn_ uses the CART algorithm. For classification problems you can use either the gini index or the entropy to split a tree in two branches. + +

    +









    + +

    The CART algorithm for Classification

    + +

    +









    + +

    The CART algorithm for Regression

    + +

    +









    + +

    Computing the Gini index

    The example we will look at is a classical one in many Machine @@ -715,7 +756,7 @@ The table here summarizes the various attributes and











    -

    Simple Python Code to read in Data and perform Classification

    +

    Simple Python Code to read in Data and perform Classification

    @@ -791,7 +832,7 @@ os.system(cmd)











    -

    Computing the Gini Factor

    +

    Computing the Gini Factor

    The above functions (gini, entropy and misclassification error) are @@ -869,7 +910,7 @@ split = get_split(dataset)











    -

    Entropy and the ID3 algorithm

    +

    Entropy and the ID3 algorithm

    ID3, learns decision trees by constructing @@ -905,7 +946,7 @@ attributes at each step while growing the tree.











    -

    Implementing the ID3 Algorithm

    +

    Implementing the ID3 Algorithm

    @@ -1101,7 +1142,7 @@ attributes at each step while growing the tree.











    -

    Cancer Data again now with Decision Trees and other Methods

    +

    Cancer Data again now with Decision Trees and other Methods

    @@ -1150,7 +1191,7 @@ deep_tree_clf.fit(X_train_scaled, y_train)











    -

    Another example, the moons again

    +

    Another example, the moons again

    @@ -1222,7 +1263,7 @@ plt.show()











    -

    Playing around with regions

    +

    Playing around with regions

    @@ -1250,7 +1291,7 @@ plt.show()











    -

    Regression trees

    +

    Regression trees

    @@ -1272,7 +1313,7 @@ tree_reg.fit(X, y)











    -

    Final regressor code

    +

    Final regressor code

    @@ -1350,7 +1391,7 @@ plt.show()











    -

    Pros and cons of trees, pros

    +

    Pros and cons of trees, pros

    • White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)
    • @@ -1364,7 +1405,7 @@ plt.show()









      -

      Disadvantages

      +

      Disadvantages

      • Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches
      • @@ -1381,7 +1422,31 @@ However, by aggregating many decision trees, using methods like bagging, random











        -

        Bagging

        +

        From a Single Tree to Many Trees, that is 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 +data. This normally means that we have a high variance. Can we reduce +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 + +

          +
        1. Votign classifiers
        2. +
        3. Bagging and Pasting
        4. +
        5. Random forests
        6. +
        7. Boosting methods
        8. +
        + +We discuss these methods here. + +

        +









        + +

        Bagging

        The plain decision trees suffer from high @@ -1400,7 +1465,7 @@ learning method.











        -

        More bagging

        +

        More bagging

        Bagging typically results in improved accuracy @@ -1429,7 +1494,7 @@ predictor, averaged over all \( B \) trees.











        -

        Simple Voting Example, head or tail

        +

        Simple Voting Example, head or tail

        @@ -1449,7 +1514,7 @@ plt.show()











        -

        Using the Voting Classifier

        +

        Using the Voting Classifier

        @@ -1500,7 +1565,7 @@ voting_clf.fit(X_train, y_train)











        -

        Please, not the moons again! Voting and Bagging

        +

        Please, not the moons again! Voting and Bagging

        @@ -1558,7 +1623,7 @@ voting_clf.fit(X_train, y_train)











        -

        Now Bagging

        +

        Now Bagging

        @@ -1619,7 +1684,7 @@ plt.show()











        -

        Random forests

        +

        Random forests

        Random forests provide an improvement over bagged trees by way of a @@ -1663,7 +1728,7 @@ this setting.











        -

        A simple scikit-learn example

        +

        A simple scikit-learn example

        @@ -1681,7 +1746,7 @@ accuracy = cross_validate(Random_Forest_model,X,Y,cv=Then random forests +

        Then random forests

        @@ -1703,7 +1768,7 @@ np.sum(y_pred == y_pred_rf) / len(y_pred)











        -

        Feature Importance

        +

        Feature Importance

        Example will be added here. @@ -1711,8 +1776,17 @@ Example will be added here.











        -

        Boosting: AdaBoost

        +

        Boosting, a Bird'e Eye

        +

        +









        + +

        Adaptive boosting: AdaBoost, Basic Algorithm

        + +

        +









        + +

        AdaBoost Examples

        @@ -1751,7 +1825,12 @@ plt.show()











        -

        Gradient Boosting

        +

        Gradient boosting: Basic Algorithm

        + +

        +









        + +

        Gradient Boosting, Examples

        @@ -1841,7 +1920,7 @@ plt.show()











        -

        Gradient Boots with Early Stopping

        +

        Gradient Boots with Early Stopping

        @@ -1903,6 +1982,9 @@ error_going_up = 0 print("Minimum validation MSE:", min_val_error)

    +









    + +

    XGBoost: Extreme Gradient Boosting

    diff --git a/doc/pub/DecisionTrees/html/DecisionTrees.html b/doc/pub/DecisionTrees/html/DecisionTrees.html index 0d5d09fec..dc47b1555 100644 --- a/doc/pub/DecisionTrees/html/DecisionTrees.html +++ b/doc/pub/DecisionTrees/html/DecisionTrees.html @@ -89,40 +89,55 @@ div { text-align: justify; text-justify: inter-word; } ('Classification tree, how to split nodes', 2, None, '___sec13'), ('Visualizing the Tree, Classification', 2, None, '___sec14'), ('Visualizing the Tree, The Moons', 2, None, '___sec15'), - ('Computing the Gini index', 2, None, '___sec16'), + ('Algorithms for Setting up Decision Trees', 2, None, '___sec16'), + ('The CART algorithm for Classification', 2, None, '___sec17'), + ('The CART algorithm for Regression', 2, None, '___sec18'), + ('Computing the Gini index', 2, None, '___sec19'), ('Simple Python Code to read in Data and perform Classification', 2, None, - '___sec17'), - ('Computing the Gini Factor', 2, None, '___sec18'), - ('Entropy and the ID3 algorithm', 2, None, '___sec19'), - ('Implementing the ID3 Algorithm', 2, None, '___sec20'), + '___sec20'), + ('Computing the Gini Factor', 2, None, '___sec21'), + ('Entropy and the ID3 algorithm', 2, None, '___sec22'), + ('Implementing the ID3 Algorithm', 2, None, '___sec23'), ('Cancer Data again now with Decision Trees and other Methods', 2, None, - '___sec21'), - ('Another example, the moons again', 2, None, '___sec22'), - ('Playing around with regions', 2, None, '___sec23'), - ('Regression trees', 2, None, '___sec24'), - ('Final regressor code', 2, None, '___sec25'), - ('Pros and cons of trees, pros', 2, None, '___sec26'), - ('Disadvantages', 2, None, '___sec27'), - ('Bagging', 2, None, '___sec28'), - ('More bagging', 2, None, '___sec29'), - ('Simple Voting Example, head or tail', 2, None, '___sec30'), - ('Using the Voting Classifier', 2, None, '___sec31'), + '___sec24'), + ('Another example, the moons again', 2, None, '___sec25'), + ('Playing around with regions', 2, None, '___sec26'), + ('Regression trees', 2, None, '___sec27'), + ('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', + 2, + None, + '___sec31'), + ('Bagging', 2, None, '___sec32'), + ('More bagging', 2, None, '___sec33'), + ('Simple Voting Example, head or tail', 2, None, '___sec34'), + ('Using the Voting Classifier', 2, None, '___sec35'), ('Please, not the moons again! Voting and Bagging', 2, None, - '___sec32'), - ('Now Bagging', 2, None, '___sec33'), - ('Random forests', 2, None, '___sec34'), - ('A simple scikit-learn example', 2, None, '___sec35'), - ('Then random forests', 2, None, '___sec36'), - ('Feature Importance', 2, None, '___sec37'), - ('Boosting: AdaBoost', 2, None, '___sec38'), - ('Gradient Boosting', 2, None, '___sec39'), - ('Gradient Boots with Early Stopping', 2, None, '___sec40')]} + '___sec36'), + ('Now Bagging', 2, None, '___sec37'), + ('Random forests', 2, None, '___sec38'), + ('A simple scikit-learn example', 2, None, '___sec39'), + ('Then random forests', 2, None, '___sec40'), + ('Feature Importance', 2, None, '___sec41'), + ("Boosting, a Bird'e Eye", 2, None, '___sec42'), + ('Adaptive boosting: AdaBoost, Basic Algorithm', + 2, + None, + '___sec43'), + ('AdaBoost Examples', 2, None, '___sec44'), + ('Gradient boosting: Basic Algorithm', 2, None, '___sec45'), + ('Gradient Boosting, Examples', 2, None, '___sec46'), + ('Gradient Boots with Early Stopping', 2, None, '___sec47'), + ('XGBoost: Extreme Gradient Boosting', 2, None, '___sec48')]} end of tocinfo --> @@ -164,7 +179,7 @@ MathJax.Hub.Config({
    [2] Department of Physics and Astronomy and National Superconducting Cyclotron Laboratory, Michigan State University

    -

    Nov 1, 2019

    +

    Nov 2, 2019












    @@ -205,6 +220,9 @@ given some assumptions, make predictions about the target feature value

    A typical Decision Tree with its pertinent Jargon, Classification Problem

    +

    +Figure to come here. +











    @@ -680,7 +698,30 @@ os.system(cmd)











    -

    Computing the Gini index

    +

    Algorithms for Setting up Decision Trees

    +Two algorithms stand out in the set up of decision trees: + +
      +
    1. The CART (Classification And Regression Tree) algorithm for both classification and regression
    2. +
    3. The ID3 algorithm based on the computation of the information gain for classification
    4. +
    + +We discuss both algorithms with applications here. The popular library -Scikit-Learn_ uses the CART algorithm. For classification problems you can use either the gini index or the entropy to split a tree in two branches. + +

    +









    + +

    The CART algorithm for Classification

    + +

    +









    + +

    The CART algorithm for Regression

    + +

    +









    + +

    Computing the Gini index

    The example we will look at is a classical one in many Machine @@ -720,7 +761,7 @@ The table here summarizes the various attributes and











    -

    Simple Python Code to read in Data and perform Classification

    +

    Simple Python Code to read in Data and perform Classification

    @@ -796,7 +837,7 @@ os.system(cmd)











    -

    Computing the Gini Factor

    +

    Computing the Gini Factor

    The above functions (gini, entropy and misclassification error) are @@ -874,7 +915,7 @@ split = get_split(dataset)











    -

    Entropy and the ID3 algorithm

    +

    Entropy and the ID3 algorithm

    ID3, learns decision trees by constructing @@ -910,7 +951,7 @@ attributes at each step while growing the tree.











    -

    Implementing the ID3 Algorithm

    +

    Implementing the ID3 Algorithm

    @@ -1106,7 +1147,7 @@ attributes at each step while growing the tree.











    -

    Cancer Data again now with Decision Trees and other Methods

    +

    Cancer Data again now with Decision Trees and other Methods

    @@ -1155,7 +1196,7 @@ deep_tree_clf.fit(X_train_scaled, y_train)











    -

    Another example, the moons again

    +

    Another example, the moons again

    @@ -1227,7 +1268,7 @@ plt.show()











    -

    Playing around with regions

    +

    Playing around with regions

    @@ -1255,7 +1296,7 @@ plt.show()











    -

    Regression trees

    +

    Regression trees

    @@ -1277,7 +1318,7 @@ tree_reg.fit(X, y)











    -

    Final regressor code

    +

    Final regressor code

    @@ -1355,7 +1396,7 @@ plt.show()











    -

    Pros and cons of trees, pros

    +

    Pros and cons of trees, pros

    • White box, easy to interpret model. Some people believe that decision trees more closely mirror human decision-making than do the regression and classification approaches discussed earlier (think of support vector machines)
    • @@ -1369,7 +1410,7 @@ plt.show()









      -

      Disadvantages

      +

      Disadvantages

      • Unfortunately, trees generally do not have the same level of predictive accuracy as some of the other regression and classification approaches
      • @@ -1386,7 +1427,31 @@ However, by aggregating many decision trees, using methods like bagging, random











        -

        Bagging

        +

        From a Single Tree to Many Trees, that is 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 +data. This normally means that we have a high variance. Can we reduce +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 + +

          +
        1. Votign classifiers
        2. +
        3. Bagging and Pasting
        4. +
        5. Random forests
        6. +
        7. Boosting methods
        8. +
        + +We discuss these methods here. + +

        +









        + +

        Bagging

        The plain decision trees suffer from high @@ -1405,7 +1470,7 @@ learning method.











        -

        More bagging

        +

        More bagging

        Bagging typically results in improved accuracy @@ -1434,7 +1499,7 @@ predictor, averaged over all \( B \) trees.











        -

        Simple Voting Example, head or tail

        +

        Simple Voting Example, head or tail

        @@ -1454,7 +1519,7 @@ plt.show()











        -

        Using the Voting Classifier

        +

        Using the Voting Classifier

        @@ -1505,7 +1570,7 @@ voting_clf.fit(X_train, y_train)











        -

        Please, not the moons again! Voting and Bagging

        +

        Please, not the moons again! Voting and Bagging

        @@ -1563,7 +1628,7 @@ voting_clf.fit(X_train, y_train)











        -

        Now Bagging

        +

        Now Bagging

        @@ -1624,7 +1689,7 @@ plt.show()











        -

        Random forests

        +

        Random forests

        Random forests provide an improvement over bagged trees by way of a @@ -1668,7 +1733,7 @@ this setting.











        -

        A simple scikit-learn example

        +

        A simple scikit-learn example

        @@ -1686,7 +1751,7 @@ accuracy = cross_validate(Random_Forest_mode











        -

        Then random forests

        +

        Then random forests

        @@ -1708,7 +1773,7 @@ np.sum(y_pred =











        -

        Feature Importance

        +

        Feature Importance

        Example will be added here. @@ -1716,8 +1781,17 @@ Example will be added here.











        -

        Boosting: AdaBoost

        +

        Boosting, a Bird'e Eye

        +

        +









        + +

        Adaptive boosting: AdaBoost, Basic Algorithm

        + +

        +









        + +

        AdaBoost Examples

        @@ -1756,7 +1830,12 @@ plt.show()











        -

        Gradient Boosting

        +

        Gradient boosting: Basic Algorithm

        + +

        +









        + +

        Gradient Boosting, Examples

        @@ -1846,7 +1925,7 @@ plt.show()











        -

        Gradient Boots with Early Stopping

        +

        Gradient Boots with Early Stopping

        @@ -1908,6 +1987,9 @@ error_going_up = print("Minimum validation MSE:", min_val_error)

    +









    + +

    XGBoost: Extreme Gradient Boosting

    diff --git a/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb b/doc/pub/DecisionTrees/ipynb/DecisionTrees.ipynb index 964cf0fc9..3739cfe22 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 1, 2019**\n", + "Date: **Nov 2, 2019**\n", "\n", "Copyright 1999-2019, Morten Hjorth-Jensen. Released under CC Attribution-NonCommercial 4.0 license\n", "\n", @@ -47,6 +47,7 @@ "\n", "## A typical Decision Tree with its pertinent Jargon, Classification Problem\n", "\n", + "Figure to come here.\n", "\n", "\n", "\n", @@ -92,40 +93,11 @@ }, { "cell_type": "code", - "execution_count": 30, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "2nd degree coefficients:\n", - "zero power: -7.159472988729101\n", - "first power: 0.07804791022278464\n", - "second power: -0.0005586058040523115\n" - ] - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 1, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "%matplotlib inline\n", "\n", @@ -536,469 +508,11 @@ }, { "cell_type": "code", - "execution_count": 31, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " mean radius mean texture mean perimeter mean area mean smoothness \\\n", - "0 17.990 10.38 122.80 1001.0 0.11840 \n", - "1 20.570 17.77 132.90 1326.0 0.08474 \n", - "2 19.690 21.25 130.00 1203.0 0.10960 \n", - "3 11.420 20.38 77.58 386.1 0.14250 \n", - "4 20.290 14.34 135.10 1297.0 0.10030 \n", - "5 12.450 15.70 82.57 477.1 0.12780 \n", - "6 18.250 19.98 119.60 1040.0 0.09463 \n", - "7 13.710 20.83 90.20 577.9 0.11890 \n", - "8 13.000 21.82 87.50 519.8 0.12730 \n", - "9 12.460 24.04 83.97 475.9 0.11860 \n", - "10 16.020 23.24 102.70 797.8 0.08206 \n", - "11 15.780 17.89 103.60 781.0 0.09710 \n", - "12 19.170 24.80 132.40 1123.0 0.09740 \n", - "13 15.850 23.95 103.70 782.7 0.08401 \n", - "14 13.730 22.61 93.60 578.3 0.11310 \n", - "15 14.540 27.54 96.73 658.8 0.11390 \n", - "16 14.680 20.13 94.74 684.5 0.09867 \n", - "17 16.130 20.68 108.10 798.8 0.11700 \n", - "18 19.810 22.15 130.00 1260.0 0.09831 \n", - "19 13.540 14.36 87.46 566.3 0.09779 \n", - "20 13.080 15.71 85.63 520.0 0.10750 \n", - "21 9.504 12.44 60.34 273.9 0.10240 \n", - "22 15.340 14.26 102.50 704.4 0.10730 \n", - "23 21.160 23.04 137.20 1404.0 0.09428 \n", - "24 16.650 21.38 110.00 904.6 0.11210 \n", - "25 17.140 16.40 116.00 912.7 0.11860 \n", - "26 14.580 21.53 97.41 644.8 0.10540 \n", - "27 18.610 20.25 122.10 1094.0 0.09440 \n", - "28 15.300 25.27 102.40 732.4 0.10820 \n", - "29 17.570 15.05 115.00 955.1 0.09847 \n", - ".. ... ... ... ... ... \n", - "539 7.691 25.44 48.34 170.4 0.08668 \n", - "540 11.540 14.44 74.65 402.9 0.09984 \n", - "541 14.470 24.99 95.81 656.4 0.08837 \n", - "542 14.740 25.42 94.70 668.6 0.08275 \n", - "543 13.210 28.06 84.88 538.4 0.08671 \n", - "544 13.870 20.70 89.77 584.8 0.09578 \n", - "545 13.620 23.23 87.19 573.2 0.09246 \n", - "546 10.320 16.35 65.31 324.9 0.09434 \n", - "547 10.260 16.58 65.85 320.8 0.08877 \n", - "548 9.683 19.34 61.05 285.7 0.08491 \n", - "549 10.820 24.21 68.89 361.6 0.08192 \n", - "550 10.860 21.48 68.51 360.5 0.07431 \n", - "551 11.130 22.44 71.49 378.4 0.09566 \n", - "552 12.770 29.43 81.35 507.9 0.08276 \n", - "553 9.333 21.94 59.01 264.0 0.09240 \n", - "554 12.880 28.92 82.50 514.3 0.08123 \n", - "555 10.290 27.61 65.67 321.4 0.09030 \n", - "556 10.160 19.59 64.73 311.7 0.10030 \n", - "557 9.423 27.88 59.26 271.3 0.08123 \n", - "558 14.590 22.68 96.39 657.1 0.08473 \n", - "559 11.510 23.93 74.52 403.5 0.09261 \n", - "560 14.050 27.15 91.38 600.4 0.09929 \n", - "561 11.200 29.37 70.67 386.0 0.07449 \n", - "562 15.220 30.62 103.40 716.9 0.10480 \n", - "563 20.920 25.09 143.00 1347.0 0.10990 \n", - "564 21.560 22.39 142.00 1479.0 0.11100 \n", - "565 20.130 28.25 131.20 1261.0 0.09780 \n", - "566 16.600 28.08 108.30 858.1 0.08455 \n", - "567 20.600 29.33 140.10 1265.0 0.11780 \n", - "568 7.760 24.54 47.92 181.0 0.05263 \n", - "\n", - " mean compactness mean concavity mean concave points mean symmetry \\\n", - "0 0.27760 0.300100 0.147100 0.2419 \n", - "1 0.07864 0.086900 0.070170 0.1812 \n", - "2 0.15990 0.197400 0.127900 0.2069 \n", - "3 0.28390 0.241400 0.105200 0.2597 \n", - "4 0.13280 0.198000 0.104300 0.1809 \n", - "5 0.17000 0.157800 0.080890 0.2087 \n", - "6 0.10900 0.112700 0.074000 0.1794 \n", - "7 0.16450 0.093660 0.059850 0.2196 \n", - "8 0.19320 0.185900 0.093530 0.2350 \n", - "9 0.23960 0.227300 0.085430 0.2030 \n", - "10 0.06669 0.032990 0.033230 0.1528 \n", - "11 0.12920 0.099540 0.066060 0.1842 \n", - "12 0.24580 0.206500 0.111800 0.2397 \n", - "13 0.10020 0.099380 0.053640 0.1847 \n", - "14 0.22930 0.212800 0.080250 0.2069 \n", - "15 0.15950 0.163900 0.073640 0.2303 \n", - "16 0.07200 0.073950 0.052590 0.1586 \n", - "17 0.20220 0.172200 0.102800 0.2164 \n", - "18 0.10270 0.147900 0.094980 0.1582 \n", - "19 0.08129 0.066640 0.047810 0.1885 \n", - "20 0.12700 0.045680 0.031100 0.1967 \n", - "21 0.06492 0.029560 0.020760 0.1815 \n", - "22 0.21350 0.207700 0.097560 0.2521 \n", - "23 0.10220 0.109700 0.086320 0.1769 \n", - "24 0.14570 0.152500 0.091700 0.1995 \n", - "25 0.22760 0.222900 0.140100 0.3040 \n", - "26 0.18680 0.142500 0.087830 0.2252 \n", - "27 0.10660 0.149000 0.077310 0.1697 \n", - "28 0.16970 0.168300 0.087510 0.1926 \n", - "29 0.11570 0.098750 0.079530 0.1739 \n", - ".. ... ... ... ... \n", - "539 0.11990 0.092520 0.013640 0.2037 \n", - "540 0.11200 0.067370 0.025940 0.1818 \n", - "541 0.12300 0.100900 0.038900 0.1872 \n", - "542 0.07214 0.041050 0.030270 0.1840 \n", - "543 0.06877 0.029870 0.032750 0.1628 \n", - "544 0.10180 0.036880 0.023690 0.1620 \n", - "545 0.06747 0.029740 0.024430 0.1664 \n", - "546 0.04994 0.010120 0.005495 0.1885 \n", - "547 0.08066 0.043580 0.024380 0.1669 \n", - "548 0.05030 0.023370 0.009615 0.1580 \n", - "549 0.06602 0.015480 0.008160 0.1976 \n", - "550 0.04227 0.000000 0.000000 0.1661 \n", - "551 0.08194 0.048240 0.022570 0.2030 \n", - "552 0.04234 0.019970 0.014990 0.1539 \n", - "553 0.05605 0.039960 0.012820 0.1692 \n", - "554 0.05824 0.061950 0.023430 0.1566 \n", - "555 0.07658 0.059990 0.027380 0.1593 \n", - "556 0.07504 0.005025 0.011160 0.1791 \n", - "557 0.04971 0.000000 0.000000 0.1742 \n", - "558 0.13300 0.102900 0.037360 0.1454 \n", - "559 0.10210 0.111200 0.041050 0.1388 \n", - "560 0.11260 0.044620 0.043040 0.1537 \n", - "561 0.03558 0.000000 0.000000 0.1060 \n", - "562 0.20870 0.255000 0.094290 0.2128 \n", - "563 0.22360 0.317400 0.147400 0.2149 \n", - "564 0.11590 0.243900 0.138900 0.1726 \n", - "565 0.10340 0.144000 0.097910 0.1752 \n", - "566 0.10230 0.092510 0.053020 0.1590 \n", - "567 0.27700 0.351400 0.152000 0.2397 \n", - "568 0.04362 0.000000 0.000000 0.1587 \n", - "\n", - " mean fractal dimension ... worst radius \\\n", - "0 0.07871 ... 25.380 \n", - "1 0.05667 ... 24.990 \n", - "2 0.05999 ... 23.570 \n", - "3 0.09744 ... 14.910 \n", - "4 0.05883 ... 22.540 \n", - "5 0.07613 ... 15.470 \n", - "6 0.05742 ... 22.880 \n", - "7 0.07451 ... 17.060 \n", - "8 0.07389 ... 15.490 \n", - "9 0.08243 ... 15.090 \n", - "10 0.05697 ... 19.190 \n", - "11 0.06082 ... 20.420 \n", - "12 0.07800 ... 20.960 \n", - "13 0.05338 ... 16.840 \n", - "14 0.07682 ... 15.030 \n", - "15 0.07077 ... 17.460 \n", - "16 0.05922 ... 19.070 \n", - "17 0.07356 ... 20.960 \n", - "18 0.05395 ... 27.320 \n", - "19 0.05766 ... 15.110 \n", - "20 0.06811 ... 14.500 \n", - "21 0.06905 ... 10.230 \n", - "22 0.07032 ... 18.070 \n", - "23 0.05278 ... 29.170 \n", - "24 0.06330 ... 26.460 \n", - "25 0.07413 ... 22.250 \n", - "26 0.06924 ... 17.620 \n", - "27 0.05699 ... 21.310 \n", - "28 0.06540 ... 20.270 \n", - "29 0.06149 ... 20.010 \n", - ".. ... ... ... \n", - "539 0.07751 ... 8.678 \n", - "540 0.06782 ... 12.260 \n", - "541 0.06341 ... 16.220 \n", - "542 0.05680 ... 16.510 \n", - "543 0.05781 ... 14.370 \n", - "544 0.06688 ... 15.050 \n", - "545 0.05801 ... 15.350 \n", - "546 0.06201 ... 11.250 \n", - "547 0.06714 ... 10.830 \n", - "548 0.06235 ... 10.930 \n", - "549 0.06328 ... 13.030 \n", - "550 0.05948 ... 11.660 \n", - "551 0.06552 ... 12.020 \n", - "552 0.05637 ... 13.870 \n", - "553 0.06576 ... 9.845 \n", - "554 0.05708 ... 13.890 \n", - "555 0.06127 ... 10.840 \n", - "556 0.06331 ... 10.650 \n", - "557 0.06059 ... 10.490 \n", - "558 0.06147 ... 15.480 \n", - "559 0.06570 ... 12.480 \n", - "560 0.06171 ... 15.300 \n", - "561 0.05502 ... 11.920 \n", - "562 0.07152 ... 17.520 \n", - "563 0.06879 ... 24.290 \n", - "564 0.05623 ... 25.450 \n", - "565 0.05533 ... 23.690 \n", - "566 0.05648 ... 18.980 \n", - "567 0.07016 ... 25.740 \n", - "568 0.05884 ... 9.456 \n", - "\n", - " worst texture worst perimeter worst area worst smoothness \\\n", - "0 17.33 184.60 2019.0 0.16220 \n", - "1 23.41 158.80 1956.0 0.12380 \n", - "2 25.53 152.50 1709.0 0.14440 \n", - "3 26.50 98.87 567.7 0.20980 \n", - "4 16.67 152.20 1575.0 0.13740 \n", - "5 23.75 103.40 741.6 0.17910 \n", - "6 27.66 153.20 1606.0 0.14420 \n", - "7 28.14 110.60 897.0 0.16540 \n", - "8 30.73 106.20 739.3 0.17030 \n", - "9 40.68 97.65 711.4 0.18530 \n", - "10 33.88 123.80 1150.0 0.11810 \n", - "11 27.28 136.50 1299.0 0.13960 \n", - "12 29.94 151.70 1332.0 0.10370 \n", - "13 27.66 112.00 876.5 0.11310 \n", - "14 32.01 108.80 697.7 0.16510 \n", - "15 37.13 124.10 943.2 0.16780 \n", - "16 30.88 123.40 1138.0 0.14640 \n", - "17 31.48 136.80 1315.0 0.17890 \n", - "18 30.88 186.80 2398.0 0.15120 \n", - "19 19.26 99.70 711.2 0.14400 \n", - "20 20.49 96.09 630.5 0.13120 \n", - "21 15.66 65.13 314.9 0.13240 \n", - "22 19.08 125.10 980.9 0.13900 \n", - "23 35.59 188.00 2615.0 0.14010 \n", - "24 31.56 177.00 2215.0 0.18050 \n", - "25 21.40 152.40 1461.0 0.15450 \n", - "26 33.21 122.40 896.9 0.15250 \n", - "27 27.26 139.90 1403.0 0.13380 \n", - "28 36.71 149.30 1269.0 0.16410 \n", - "29 19.52 134.90 1227.0 0.12550 \n", - ".. ... ... ... ... \n", - "539 31.89 54.49 223.6 0.15960 \n", - "540 19.68 78.78 457.8 0.13450 \n", - "541 31.73 113.50 808.9 0.13400 \n", - "542 32.29 107.40 826.4 0.10600 \n", - "543 37.17 92.48 629.6 0.10720 \n", - "544 24.75 99.17 688.6 0.12640 \n", - "545 29.09 97.58 729.8 0.12160 \n", - "546 21.77 71.12 384.9 0.12850 \n", - "547 22.04 71.08 357.4 0.14610 \n", - "548 25.59 69.10 364.2 0.11990 \n", - "549 31.45 83.90 505.6 0.12040 \n", - "550 24.77 74.08 412.3 0.10010 \n", - "551 28.26 77.80 436.6 0.10870 \n", - "552 36.00 88.10 594.7 0.12340 \n", - "553 25.05 62.86 295.8 0.11030 \n", - "554 35.74 88.84 595.7 0.12270 \n", - "555 34.91 69.57 357.6 0.13840 \n", - "556 22.88 67.88 347.3 0.12650 \n", - "557 34.24 66.50 330.6 0.10730 \n", - "558 27.27 105.90 733.5 0.10260 \n", - "559 37.16 82.28 474.2 0.12980 \n", - "560 33.17 100.20 706.7 0.12410 \n", - "561 38.30 75.19 439.6 0.09267 \n", - "562 42.79 128.70 915.0 0.14170 \n", - "563 29.41 179.10 1819.0 0.14070 \n", - "564 26.40 166.10 2027.0 0.14100 \n", - "565 38.25 155.00 1731.0 0.11660 \n", - "566 34.12 126.70 1124.0 0.11390 \n", - "567 39.42 184.60 1821.0 0.16500 \n", - "568 30.37 59.16 268.6 0.08996 \n", - "\n", - " worst compactness worst concavity worst concave points worst symmetry \\\n", - "0 0.66560 0.71190 0.26540 0.4601 \n", - "1 0.18660 0.24160 0.18600 0.2750 \n", - "2 0.42450 0.45040 0.24300 0.3613 \n", - "3 0.86630 0.68690 0.25750 0.6638 \n", - "4 0.20500 0.40000 0.16250 0.2364 \n", - "5 0.52490 0.53550 0.17410 0.3985 \n", - "6 0.25760 0.37840 0.19320 0.3063 \n", - "7 0.36820 0.26780 0.15560 0.3196 \n", - "8 0.54010 0.53900 0.20600 0.4378 \n", - "9 1.05800 1.10500 0.22100 0.4366 \n", - "10 0.15510 0.14590 0.09975 0.2948 \n", - "11 0.56090 0.39650 0.18100 0.3792 \n", - "12 0.39030 0.36390 0.17670 0.3176 \n", - "13 0.19240 0.23220 0.11190 0.2809 \n", - "14 0.77250 0.69430 0.22080 0.3596 \n", - "15 0.65770 0.70260 0.17120 0.4218 \n", - "16 0.18710 0.29140 0.16090 0.3029 \n", - "17 0.42330 0.47840 0.20730 0.3706 \n", - "18 0.31500 0.53720 0.23880 0.2768 \n", - "19 0.17730 0.23900 0.12880 0.2977 \n", - "20 0.27760 0.18900 0.07283 0.3184 \n", - "21 0.11480 0.08867 0.06227 0.2450 \n", - "22 0.59540 0.63050 0.23930 0.4667 \n", - "23 0.26000 0.31550 0.20090 0.2822 \n", - "24 0.35780 0.46950 0.20950 0.3613 \n", - "25 0.39490 0.38530 0.25500 0.4066 \n", - "26 0.66430 0.55390 0.27010 0.4264 \n", - "27 0.21170 0.34460 0.14900 0.2341 \n", - "28 0.61100 0.63350 0.20240 0.4027 \n", - "29 0.28120 0.24890 0.14560 0.2756 \n", - ".. ... ... ... ... \n", - "539 0.30640 0.33930 0.05000 0.2790 \n", - "540 0.21180 0.17970 0.06918 0.2329 \n", - "541 0.42020 0.40400 0.12050 0.3187 \n", - "542 0.13760 0.16110 0.10950 0.2722 \n", - "543 0.13810 0.10620 0.07958 0.2473 \n", - "544 0.20370 0.13770 0.06845 0.2249 \n", - "545 0.15170 0.10490 0.07174 0.2642 \n", - "546 0.08842 0.04384 0.02381 0.2681 \n", - "547 0.22460 0.17830 0.08333 0.2691 \n", - "548 0.09546 0.09350 0.03846 0.2552 \n", - "549 0.16330 0.06194 0.03264 0.3059 \n", - "550 0.07348 0.00000 0.00000 0.2458 \n", - "551 0.17820 0.15640 0.06413 0.3169 \n", - "552 0.10640 0.08653 0.06498 0.2407 \n", - "553 0.08298 0.07993 0.02564 0.2435 \n", - "554 0.16200 0.24390 0.06493 0.2372 \n", - "555 0.17100 0.20000 0.09127 0.2226 \n", - "556 0.12000 0.01005 0.02232 0.2262 \n", - "557 0.07158 0.00000 0.00000 0.2475 \n", - "558 0.31710 0.36620 0.11050 0.2258 \n", - "559 0.25170 0.36300 0.09653 0.2112 \n", - "560 0.22640 0.13260 0.10480 0.2250 \n", - "561 0.05494 0.00000 0.00000 0.1566 \n", - "562 0.79170 1.17000 0.23560 0.4089 \n", - "563 0.41860 0.65990 0.25420 0.2929 \n", - "564 0.21130 0.41070 0.22160 0.2060 \n", - "565 0.19220 0.32150 0.16280 0.2572 \n", - "566 0.30940 0.34030 0.14180 0.2218 \n", - "567 0.86810 0.93870 0.26500 0.4087 \n", - "568 0.06444 0.00000 0.00000 0.2871 \n", - "\n", - " worst fractal dimension \n", - "0 0.11890 \n", - "1 0.08902 \n", - "2 0.08758 \n", - "3 0.17300 \n", - "4 0.07678 \n", - "5 0.12440 \n", - "6 0.08368 \n", - "7 0.11510 \n", - "8 0.10720 \n", - "9 0.20750 \n", - "10 0.08452 \n", - "11 0.10480 \n", - "12 0.10230 \n", - "13 0.06287 \n", - "14 0.14310 \n", - "15 0.13410 \n", - "16 0.08216 \n", - "17 0.11420 \n", - "18 0.07615 \n", - "19 0.07259 \n", - "20 0.08183 \n", - "21 0.07773 \n", - "22 0.09946 \n", - "23 0.07526 \n", - "24 0.09564 \n", - "25 0.10590 \n", - "26 0.12750 \n", - "27 0.07421 \n", - "28 0.09876 \n", - "29 0.07919 \n", - ".. ... \n", - "539 0.10660 \n", - "540 0.08134 \n", - "541 0.10230 \n", - "542 0.06956 \n", - "543 0.06443 \n", - "544 0.08492 \n", - "545 0.06953 \n", - "546 0.07399 \n", - "547 0.09479 \n", - "548 0.07920 \n", - "549 0.07626 \n", - "550 0.06592 \n", - "551 0.08032 \n", - "552 0.06484 \n", - "553 0.07393 \n", - "554 0.07242 \n", - "555 0.08283 \n", - "556 0.06742 \n", - "557 0.06969 \n", - "558 0.08004 \n", - "559 0.08732 \n", - "560 0.08321 \n", - "561 0.05905 \n", - "562 0.14090 \n", - "563 0.09873 \n", - "564 0.07115 \n", - "565 0.06637 \n", - "566 0.07820 \n", - "567 0.12400 \n", - "568 0.07039 \n", - "\n", - "[569 rows x 30 columns]\n", - " malignant benign\n", - "0 1 0\n", - "1 1 0\n", - "2 1 0\n", - "3 1 0\n", - "4 1 0\n", - "5 1 0\n", - "6 1 0\n", - "7 1 0\n", - "8 1 0\n", - "9 1 0\n", - "10 1 0\n", - "11 1 0\n", - "12 1 0\n", - "13 1 0\n", - "14 1 0\n", - "15 1 0\n", - "16 1 0\n", - "17 1 0\n", - "18 1 0\n", - "19 0 1\n", - "20 0 1\n", - "21 0 1\n", - "22 1 0\n", - "23 1 0\n", - "24 1 0\n", - "25 1 0\n", - "26 1 0\n", - "27 1 0\n", - "28 1 0\n", - "29 1 0\n", - ".. ... ...\n", - "539 0 1\n", - "540 0 1\n", - "541 0 1\n", - "542 0 1\n", - "543 0 1\n", - "544 0 1\n", - "545 0 1\n", - "546 0 1\n", - "547 0 1\n", - "548 0 1\n", - "549 0 1\n", - "550 0 1\n", - "551 0 1\n", - "552 0 1\n", - "553 0 1\n", - "554 0 1\n", - "555 0 1\n", - "556 0 1\n", - "557 0 1\n", - "558 0 1\n", - "559 0 1\n", - "560 0 1\n", - "561 0 1\n", - "562 1 0\n", - "563 1 0\n", - "564 1 0\n", - "565 1 0\n", - "566 1 0\n", - "567 1 0\n", - "568 0 1\n", - "\n", - "[569 rows x 2 columns]\n" - ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 31, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 2, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import os\n", "from sklearn.datasets import load_breast_cancer\n", @@ -1044,20 +558,11 @@ }, { "cell_type": "code", - "execution_count": 32, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 32, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 3, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "# Common imports\n", "import numpy as np\n", @@ -1089,6 +594,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ + "## Algorithms for Setting up Decision Trees\n", + "Two algorithms stand out in the set up of decision trees:\n", + "1. The CART (Classification And Regression Tree) algorithm for both classification and regression\n", + "\n", + "2. The ID3 algorithm based on the computation of the information gain for classification\n", + "\n", + "We discuss both algorithms with applications here. The popular library -Scikit-Learn_ uses the CART algorithm. For classification problems you can use either the **gini** index or the **entropy** to split a tree in two branches.\n", + "\n", + "## The CART algorithm for Classification\n", + "\n", + "\n", + "## The CART algorithm for Regression\n", + "\n", + "\n", + "\n", "## Computing the Gini index\n", "\n", "The example we will look at is a classical one in many Machine\n", @@ -1130,78 +650,11 @@ }, { "cell_type": "code", - "execution_count": 33, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - " (0, 0)\t1.0\n", - " (0, 7)\t1.0\n", - " (0, 9)\t1.0\n", - " (0, 13)\t1.0\n", - " (1, 3)\t1.0\n", - " (1, 5)\t1.0\n", - " (1, 8)\t1.0\n", - " (1, 12)\t1.0\n", - " (2, 3)\t1.0\n", - " (2, 5)\t1.0\n", - " (2, 8)\t1.0\n", - " (2, 11)\t1.0\n", - " (3, 1)\t1.0\n", - " (3, 5)\t1.0\n", - " (3, 8)\t1.0\n", - " (3, 12)\t1.0\n", - " (4, 2)\t1.0\n", - " (4, 6)\t1.0\n", - " (4, 8)\t1.0\n", - " (4, 12)\t1.0\n", - " (5, 2)\t1.0\n", - " (5, 4)\t1.0\n", - " (5, 10)\t1.0\n", - " (5, 12)\t1.0\n", - " (6, 2)\t1.0\n", - " :\t:\n", - " (8, 12)\t1.0\n", - " (9, 3)\t1.0\n", - " (9, 4)\t1.0\n", - " (9, 10)\t1.0\n", - " (9, 12)\t1.0\n", - " (10, 2)\t1.0\n", - " (10, 6)\t1.0\n", - " (10, 10)\t1.0\n", - " (10, 12)\t1.0\n", - " (11, 3)\t1.0\n", - " (11, 6)\t1.0\n", - " (11, 10)\t1.0\n", - " (11, 11)\t1.0\n", - " (12, 1)\t1.0\n", - " (12, 6)\t1.0\n", - " (12, 8)\t1.0\n", - " (12, 11)\t1.0\n", - " (13, 1)\t1.0\n", - " (13, 5)\t1.0\n", - " (13, 10)\t1.0\n", - " (13, 12)\t1.0\n", - " (14, 2)\t1.0\n", - " (14, 6)\t1.0\n", - " (14, 8)\t1.0\n", - " (14, 11)\t1.0\n", - "Train set accuracy with Decision Tree: 0.73\n" - ] - }, - { - "data": { - "text/plain": [ - "0" - ] - }, - "execution_count": 33, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 4, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "# Common imports\n", "import numpy as np\n", @@ -1288,73 +741,11 @@ }, { "cell_type": "code", - "execution_count": 34, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "X1 < 0.000 Gini=0.408\n", - "X1 < 0.000 Gini=0.408\n", - "X1 < 1.000 Gini=0.394\n", - "X1 < 2.000 Gini=0.394\n", - "X1 < 2.000 Gini=0.394\n", - "X1 < 2.000 Gini=0.394\n", - "X1 < 1.000 Gini=0.394\n", - "X1 < 0.000 Gini=0.408\n", - "X1 < 0.000 Gini=0.408\n", - "X1 < 2.000 Gini=0.394\n", - "X1 < 0.000 Gini=0.408\n", - "X1 < 1.000 Gini=0.394\n", - "X1 < 1.000 Gini=0.394\n", - "X1 < 2.000 Gini=0.394\n", - "X2 < 0.000 Gini=0.408\n", - "X2 < 0.000 Gini=0.408\n", - "X2 < 0.000 Gini=0.408\n", - "X2 < 1.000 Gini=0.407\n", - "X2 < 2.000 Gini=0.407\n", - "X2 < 2.000 Gini=0.407\n", - "X2 < 2.000 Gini=0.407\n", - "X2 < 1.000 Gini=0.407\n", - "X2 < 2.000 Gini=0.407\n", - "X2 < 1.000 Gini=0.407\n", - "X2 < 1.000 Gini=0.407\n", - "X2 < 1.000 Gini=0.407\n", - "X2 < 0.000 Gini=0.408\n", - "X2 < 1.000 Gini=0.407\n", - "X3 < 0.000 Gini=0.408\n", - "X3 < 0.000 Gini=0.408\n", - "X3 < 0.000 Gini=0.408\n", - "X3 < 0.000 Gini=0.408\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 0.000 Gini=0.408\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 0.000 Gini=0.408\n", - "X3 < 1.000 Gini=0.367\n", - "X3 < 0.000 Gini=0.408\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 1.000 Gini=0.405\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 1.000 Gini=0.405\n", - "X4 < 1.000 Gini=0.405\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 1.000 Gini=0.405\n", - "X4 < 1.000 Gini=0.405\n", - "X4 < 0.000 Gini=0.408\n", - "X4 < 1.000 Gini=0.405\n", - "Split: [X3 < 1.000]\n" - ] - } - ], + "execution_count": 5, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "# Split a dataset based on an attribute and an attribute value\n", "def test_split(index, value, dataset):\n", @@ -1458,37 +849,11 @@ }, { "cell_type": "code", - "execution_count": 35, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "['Outlook', 'Temperature', 'Humidity', 'Wind']\n", - "System entropy 0.863120568566631\n", - "Outlook\n", - "(Sunny)\n", - "(Overcast)\n", - "(Rain)\n", - "Humidity\n", - "(High)\n", - "(Normal)\n", - "1\n", - "Temperature\n", - "(Mild)\n", - "(Cool)\n", - "Wind\n", - "(Weak)\n", - "(Strong)\n", - "1\n", - "1\n", - "0\n", - "0\n", - "1\n" - ] - } - ], + "execution_count": 6, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import re\n", "import math\n", @@ -1688,32 +1053,11 @@ }, { "cell_type": "code", - "execution_count": 36, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "(426, 30)\n", - "(143, 30)\n", - "Test set accuracy with Logistic Regression: 0.95\n", - "Test set accuracy with SVM: 0.63\n", - "Test set accuracy with Decision Trees: 0.90\n", - "Test set accuracy Logistic Regression with scaled data: 0.96\n", - "Test set accuracy SVM with scaled data: 0.96\n", - "Test set accuracy with Decision Trees and scaled data: 0.90\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:757: ConvergenceWarning: lbfgs failed to converge. Increase the number of iterations.\n", - " \"of iterations.\", ConvergenceWarning)\n" - ] - } - ], + "execution_count": 7, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "import matplotlib.pyplot as plt\n", "import numpy as np\n", @@ -1767,20 +1111,11 @@ }, { "cell_type": "code", - "execution_count": 37, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 8, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from __future__ import division, print_function, unicode_literals\n", "\n", @@ -1857,20 +1192,11 @@ }, { "cell_type": "code", - "execution_count": 38, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 9, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "np.random.seed(6)\n", "Xs = np.random.rand(100, 2) - 0.5\n", @@ -1903,8 +1229,10 @@ }, { "cell_type": "code", - "execution_count": 39, - "metadata": {}, + "execution_count": 10, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "# Quadratic training set + noise\n", @@ -1917,24 +1245,11 @@ }, { "cell_type": "code", - "execution_count": 40, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "DecisionTreeRegressor(criterion='mse', max_depth=2, max_features=None,\n", - " max_leaf_nodes=None, min_impurity_decrease=0.0,\n", - " min_impurity_split=None, min_samples_leaf=1,\n", - " min_samples_split=2, min_weight_fraction_leaf=0.0,\n", - " presort=False, random_state=42, splitter='best')" - ] - }, - "execution_count": 40, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 11, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.tree import DecisionTreeRegressor\n", "\n", @@ -1951,20 +1266,11 @@ }, { "cell_type": "code", - "execution_count": 41, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 12, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.tree import DecisionTreeRegressor\n", "\n", @@ -2008,20 +1314,11 @@ }, { "cell_type": "code", - "execution_count": 42, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 13, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "tree_reg1 = DecisionTreeRegressor(random_state=42)\n", "tree_reg2 = DecisionTreeRegressor(random_state=42, min_samples_leaf=10)\n", @@ -2091,6 +1388,26 @@ "\n", "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", + "\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", + "data. This normally means that we have a high variance. Can we reduce\n", + "the variance of a statistical learning method?\n", + "\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", + "\n", + "2. Bagging and Pasting\n", + "\n", + "3. Random forests\n", + "\n", + "4. Boosting methods\n", + "\n", + "We discuss these methods here.\n", + "\n", "## Bagging\n", "\n", "The **plain** decision trees suffer from high\n", @@ -2135,20 +1452,11 @@ }, { "cell_type": "code", - "execution_count": 43, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 14, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "heads_proba = 0.51\n", "coin_tosses = (np.random.rand(10000, 10) < heads_proba).astype(np.int32)\n", @@ -2173,24 +1481,11 @@ }, { "cell_type": "code", - "execution_count": 44, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.872\n", - "SVC 0.888\n", - "VotingClassifier 0.896\n", - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.872\n", - "SVC 0.888\n", - "VotingClassifier 0.912\n" - ] - } - ], + "execution_count": 15, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import make_moons\n", @@ -2246,37 +1541,11 @@ }, { "cell_type": "code", - "execution_count": 45, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", - " FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/ensemble/forest.py:248: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n", - " \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/svm/base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "VotingClassifier(estimators=[('lr', LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, max_iter=100, multi_class='warn',\n", - " n_jobs=None, penalty='l2', random_state=42, solver='warn',\n", - " tol=0.0001, verbose=0, warm_start=False)), ('rf', RandomFore...rbf', max_iter=-1, probability=False, random_state=42,\n", - " shrinking=True, tol=0.001, verbose=False))],\n", - " flatten_transform=None, n_jobs=None, voting='hard', weights=None)" - ] - }, - "execution_count": 45, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 16, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.model_selection import train_test_split\n", "from sklearn.datasets import make_moons\n", @@ -2300,36 +1569,11 @@ }, { "cell_type": "code", - "execution_count": 46, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.872\n", - "SVC 0.888\n", - "VotingClassifier 0.896\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", - " FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/ensemble/forest.py:248: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n", - " \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/svm/base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", - " FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/svm/base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n" - ] - } - ], + "execution_count": 17, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", @@ -2341,37 +1585,11 @@ }, { "cell_type": "code", - "execution_count": 47, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", - " FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/ensemble/forest.py:248: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n", - " \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/svm/base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n" - ] - }, - { - "data": { - "text/plain": [ - "VotingClassifier(estimators=[('lr', LogisticRegression(C=1.0, class_weight=None, dual=False, fit_intercept=True,\n", - " intercept_scaling=1, max_iter=100, multi_class='warn',\n", - " n_jobs=None, penalty='l2', random_state=42, solver='warn',\n", - " tol=0.0001, verbose=0, warm_start=False)), ('rf', RandomFore...'rbf', max_iter=-1, probability=True, random_state=42,\n", - " shrinking=True, tol=0.001, verbose=False))],\n", - " flatten_transform=None, n_jobs=None, voting='soft', weights=None)" - ] - }, - "execution_count": 47, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 18, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "log_clf = LogisticRegression(random_state=42)\n", "rnd_clf = RandomForestClassifier(random_state=42)\n", @@ -2385,42 +1603,11 @@ }, { "cell_type": "code", - "execution_count": 48, - "metadata": {}, - "outputs": [ - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", - " FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/ensemble/forest.py:248: FutureWarning: The default value of n_estimators will change from 10 in version 0.20 to 100 in 0.22.\n", - " \"10 in version 0.20 to 100 in 0.22.\", FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/svm/base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n", - "/usr/local/lib/python3.7/site-packages/sklearn/linear_model/logistic.py:432: FutureWarning: Default solver will be changed to 'lbfgs' in 0.22. Specify a solver to silence this warning.\n", - " FutureWarning)\n" - ] - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "LogisticRegression 0.864\n", - "RandomForestClassifier 0.872\n", - "SVC 0.888\n", - "VotingClassifier 0.912\n" - ] - }, - { - "name": "stderr", - "output_type": "stream", - "text": [ - "/usr/local/lib/python3.7/site-packages/sklearn/svm/base.py:196: FutureWarning: The default value of gamma will change from 'auto' to 'scale' in version 0.22 to account better for unscaled features. Set gamma explicitly to 'auto' or 'scale' to avoid this warning.\n", - " \"avoid this warning.\", FutureWarning)\n" - ] - } - ], + "execution_count": 19, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", "\n", @@ -2439,8 +1626,10 @@ }, { "cell_type": "code", - "execution_count": 49, - "metadata": {}, + "execution_count": 20, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "from sklearn.ensemble import BaggingClassifier\n", @@ -2455,17 +1644,11 @@ }, { "cell_type": "code", - "execution_count": 50, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.904\n" - ] - } - ], + "execution_count": 21, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.metrics import accuracy_score\n", "print(accuracy_score(y_test, y_pred))" @@ -2473,17 +1656,11 @@ }, { "cell_type": "code", - "execution_count": 51, - "metadata": {}, - "outputs": [ - { - "name": "stdout", - "output_type": "stream", - "text": [ - "0.856\n" - ] - } - ], + "execution_count": 22, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "tree_clf = DecisionTreeClassifier(random_state=42)\n", "tree_clf.fit(X_train, y_train)\n", @@ -2493,20 +1670,11 @@ }, { "cell_type": "code", - "execution_count": 52, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 23, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from matplotlib.colors import ListedColormap\n", "\n", @@ -2591,21 +1759,11 @@ }, { "cell_type": "code", - "execution_count": 53, - "metadata": {}, - "outputs": [ - { - "ename": "AttributeError", - "evalue": "'list' object has no attribute 'XXX'", - "output_type": "error", - "traceback": [ - "\u001b[0;31m---------------------------------------------------------------------------\u001b[0m", - "\u001b[0;31mAttributeError\u001b[0m Traceback (most recent call last)", - "\u001b[0;32m\u001b[0m in \u001b[0;36m\u001b[0;34m\u001b[0m\n\u001b[1;32m 3\u001b[0m \u001b[0;32mfrom\u001b[0m \u001b[0msklearn\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mmodel_selection\u001b[0m \u001b[0;32mimport\u001b[0m \u001b[0mcross_validate\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 4\u001b[0m \u001b[0;31m# Data set not specificied\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0;32m----> 5\u001b[0;31m \u001b[0mX\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataset\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mXXX\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[0m\u001b[1;32m 6\u001b[0m \u001b[0mY\u001b[0m \u001b[0;34m=\u001b[0m \u001b[0mdataset\u001b[0m\u001b[0;34m.\u001b[0m\u001b[0mYYY\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n\u001b[1;32m 7\u001b[0m \u001b[0;31m#Instantiate the model with 100 trees and entropy as splitting criteria\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0;34m\u001b[0m\u001b[0m\n", - "\u001b[0;31mAttributeError\u001b[0m: 'list' object has no attribute 'XXX'" - ] - } - ], + "execution_count": 24, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.ensemble import RandomForestClassifier\n", "from sklearn.preprocessing import LabelEncoder\n", @@ -2628,8 +1786,10 @@ }, { "cell_type": "code", - "execution_count": 54, - "metadata": {}, + "execution_count": 25, + "metadata": { + "collapsed": false + }, "outputs": [], "source": [ "bag_clf = BaggingClassifier(\n", @@ -2639,20 +1799,11 @@ }, { "cell_type": "code", - "execution_count": 55, - "metadata": {}, - "outputs": [ - { - "data": { - "text/plain": [ - "0.976" - ] - }, - "execution_count": 55, - "metadata": {}, - "output_type": "execute_result" - } - ], + "execution_count": 26, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "bag_clf.fit(X_train, y_train)\n", "y_pred = bag_clf.predict(X_test)\n", @@ -2671,35 +1822,25 @@ "\n", "Example will be added here.\n", "\n", - "## Boosting: AdaBoost" + "\n", + "## Boosting, a Bird'e Eye\n", + "\n", + "\n", + "\n", + "\n", + "## Adaptive boosting: AdaBoost, Basic Algorithm\n", + "\n", + "\n", + "## AdaBoost Examples" ] }, { "cell_type": "code", - "execution_count": 56, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 27, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "from sklearn.ensemble import AdaBoostClassifier\n", "\n", @@ -2738,35 +1879,21 @@ "cell_type": "markdown", "metadata": {}, "source": [ - "## Gradient Boosting" + "## Gradient boosting: Basic Algorithm\n", + "\n", + "\n", + "\n", + "\n", + "## Gradient Boosting, Examples" ] }, { "cell_type": "code", - "execution_count": 57, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "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KCJSCsVOEYkCJbgZJKrMa73zRK0xs5yvYcOGhbKtdevWYWb85Cc/KXjZBx98EDPjmWeeCaUslbZkyRImT57Myy+/XO2iSMQodkabYmRlKEZWn5ooZFGvnc7irDXlcUrHHHMMI0aMYPLkye3TunXrFsq2unXrRmtrK0OHDi142bFjx9La2sqee+4ZSlkqbcmSJVx88cXstNNO7L333tUujkRMcuxU3IwWxcjKUIysPiW4earVjhO1ZsyYMZ3+7tatG/369dtieibr16/PO7ibWd7rTbX11lsXvaxIXChuRo9ipNQLNVHIU72OcVnLjj/+eHbaaSf+9a9/MWbMGJqbm7nooosAuPHGGznkkEPo378/vXr1Yt999+XWW2/ttHy622/nnXceXbp04fXXX+eII46gR48e7LDDDkyZMgXnXPt86W6/jRkzhkMPPZQHHniAkSNH0r17d/baay/uu+++Lcp+4403sssuu7DVVlsxYsQIHnjgAcaMGcORRx6ZdZ83btzIpEmT+OhHP8pWW21Fv379OOigg/j3v//dPo9zjiuvvJK99tqLrbbaigEDBnD66aezYsUKAGbPns1uu+0GwEknndR+W/P222/P99BLnVDcjDfFSMXIOFMNbp7qdYzLYsXltuSSJUs46aSTOPfcc9l9993p0aMHAHPnzm0P7gCPPfYYJ510Ehs2bODkk0/Ouk7nHMceeyxf/epXOeecc7jrrrs4//zzGTZsGF/60peyLjtr1ix+8IMfMGnSJHr37s3ll1/Osccey5w5c9h+++0B+Pvf/86Xv/xlPv/5zzN16lQWLlzIGWecwbp16xg5cmTW9V9yySVceeWVTJkyhT333JMVK1bw7LPPsmzZsvZ5zjrrLK666irOOussxo8fzzvvvMMFF1zAq6++yuOPP86wYcO4/fbbOf7445k8eTJHHHEEADvvvHPWbUv9UdzMTDFSMVLKzDmnl3Psu+++Lp2nn3bussv8v8n/ryWvvvpqqOt7+mnnmpuda2z0/1bzeG2//fZuwoQJad/7n//5Hwe4Bx98MOs6Nm/e7DZu3OhOPPFEt99++7VPX7t2rQPclClT2qede+65DnC33npr+7S2tja38847u8985jPt0x544AEHuNbW1vZp+++/v+vataubN29e+7R33nnHAe7nP/95+7R99tnHjRo1qlMZn3rqKQe4I444Iuu+jB8/3n3pS1/K+P5rr73mzMxdfvnlnab/85//dIB74IEHnHPOzZo1ywHupptuyrq9hLDPsTgBprsIxLhyvXLFzquvjn/cVIxUjEwoV4wsVD3E1FJjp5ooZJFoP3bhhf5f8E/sifKv7SiI023J7t27t/+6TjZ79my++MUvst1229GlSxeampq4+eabee211/Ja76c//en2/5sZe+yxB2+//XbO5fbYY4/2WgiAIUOGsM0227Qvu379el588UU+//nPd1rugAMOYNCgQTnX/7GPfYx77rmHiy66iKeffnqLp+H84x//wDnHhAkT2LRpU/vr4IMPplu3bvzrX//KuQ2R5Nh55pnRr6WsNMVIxUgpPyW4WcQpCEVJnMbB3HbbbbeY9sEHH3DooYcye/ZsfvrTn/Lkk0/y3HPPMWHCBNatW5dznY2NjbS0tHSa1q1bt7yW7dOnzxbTkpddsGABzjkGDBiwxXwDBw7Muf7JkydzwQUXcMcdd3DggQfSr18/vva1r7F8+XKA9uebDxkyhKampvZX165dWb9+PUuXLs25jXrS2gpTpvh/pYNiZ3aKkYqR9axScVNtcLNQ+7HixOmRpekeefjEE08wf/587rnnHkaPHt0+PQrP/h44cCBm1h5kky1cuDBnAO/WrRsXXHABF1xwAe+//z733nsv3//+99mwYQM33HADffv2BWDatGntbe2S9e/fP5wdqQEaISAzxc7sFCPLRzEy2ioZN5XgZhGnIBQ1cX5k6Zo1awBoampqn7Zo0SLuv//+ahWp3VZbbcXIkSO54447mDRpUvv0p556ivfff7+g8RYHDRrE6aefzl//+ldeeeUVAA4//HDMjHfffZcJEyZkXDYxTNDatWuL3JP40yNpM1PszE0xsjwUI6OtknFTCW4OcQ5CUpyDDjqIHj16cPrpp3PRRRexcuVKLrnkEgYOHMi7775b7eJxySWX8JnPfIYvfOELnHLKKSxYsICLL76YgQMH0tCQvdXRJz/5Sfbff3/22WcfttlmG6ZPn86jjz7KWWedBcDuu+/OmWeeyWmnncYrr7zCQQcdRLdu3Xj77bd56KGH+Pa3v80BBxzAkCFDaGlp4ZZbbmH48OF0796dHXfckd69e1fiEESCaimzU+ysXYqRipHFqmTcVIIbeHP5mxz752OLWnbZMli8GPr3hz59YL/B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aQ5Ieyvq61//uuvVq5dbsmSJc865iy++2HXt2tU9/PDDBZVz8+bNrlevXu7CCy8saLm4ids5lu47Xiyq2ETBRSh2Zjqmidg5m12cA/f7s2YXeojLLm7nbz7yjZHljoO5YmBbW5vbuHFjztemTZtK3tdcqn0skkX1nIxS7Kx64hqVVyEJbnsyi/830S6sudk5O/Ykx2TchXfckPf6qi2qX5RSzJ492wHu2GOP7TT9yiuvdIBbs2ZNznX85Cc/cWbm1q9fv8V77733nuvevbs7++yz3R/+8AfX0NDg/vznPxdV1o9//OPusMMOK2rZuIjjORZWm89qJ7jlfuUbO9PFTec6Yucr7O4cuBdufiWv9VVSHM/fXPKNkZWIg9li4GOPPebwzWWyvg455JCS9zWXah+LZFE+J6MSO+PSBjdSEj16EwMVJwYef+QR+PY/uzCjDbbfIX07sriwi63aRQDA/ai4ZoDPP/88AJdddlmn6UuWLKGlpYXm5mYALr30Um666SbeeOMN7rrrLo4++uj2ed977z1aWlro2rXrFusfNGgQZ555Jj//+c/ZtGkTv/71r/niF7/YaZ5s607Wv39/5syZk/Y9qR61+QxXurgJHbGz37FdYAGM3CMmsdOiESNx5Y2RpcTBMGLgvvvuy3PPPZdzf3r1SjcwiBfG9QCqfyziIiqxUwluETI9T33sWBi1pAsznofHHt/E/02C446D006rZmnr04wZMxg2bBjDhw/vNP2FF15g7733bv/7sMMOY8KECZxyyilbrGPdunV069Yt4zZ23nln1q9fz8c//nG++c1vbvF+tnUna25uZu3atbl2SSJET9UqXKa4mXiP7XyCe9f/beLqcxU7yy3fGFlKHAwjBvbs2ZORI0fm2h0syw+OMK4HUP1jUQsqGTuV4BYp0y+UpgY/luMtt22C5+Chh/z0uAXqYmtOo2LGjBmMGjVqi+kvvPACn/vc59r/HjNmTMZ19O3blw8++CDte4888ginn346Y8eO5amnnuLll1/uFChzrTvZsmXL6NevX17zSvXF6BG9kZO1Zid4PO8VUzbxb2IQO4usOY2KfGNkKXEwjBj4+OOP84lPfCLnOg455BCmZXgCSBjXA6j+sYi7SsfOWIyiECddEkPdNHT0BL7zzioVpk4553jhhRfYZ599Ok1fvnw5b7311hbTM9l1113Z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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "data": { - "image/png": "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WE488cSw9gGcccYZ3HDDDZxwwgk899xzPPjggwwZMoSffvqJ8ePHc+ONNwK2e0VJSQklJSXsvffeAY/16quvMn78eNq2bct//vMfZs+ezZdffsnhhx/Oj36jEL/77jsuv/xyrrrqKubNm8fee+/Nqaee2qBv7fjx4/nxxx+ZPXs2r732GnfccQfZ2dkBr0fXUWezId755nfsaF07FEWJb1xoRscY49oCdATmA2XAD8CZQeq9ApT6LFXAF+GOP3LkSBOOJUuMuf12+xktX331VeANEB9LlDz88MMGCLiMHz++Ub0///nPDfYfP368GThwYIP1CRMmBD3f999/b9LS0szNN9/coHzx4sUGMPPnz/f5SjEDBw401dXVdWVXXnmlAcz06dPryqqrq02XLl3M+eef38jeiy++uMF5br31VpOWlmZWrFhRZw9gHn744bo6/fv3N0cffXSD/Xbu3Gk6depkLr/88qD/mzHGnHfeeQYwc+fObVB+zDHHmIKCAuPxeBrYd8UVVzQ6RiTn3759u8nLy2v0/91xxx0GMDfddFNd2U033WTwuTYWLlxoAHPvvfcG/T+89q1atarRNv/jjxw50gwYMKDB77R69WqTkZFhrrzyyrqyI4880mRkZJiVK1fWlW3atMmkpaWZ2267zRhjzJYtWwxgnn/++aC2BSPovRkNw4bZ++jTTxttApYaF7Uw2qVVtPOkk+z3MW9es3RTUZQkJyPDakVlZaNNkWqn25HNWY74dQPOAmaLyP7+lYwx44wxbb0LsAR4prkn96ZCmjrVfro293Hru5l2aSLz58/no48+arDMnDmzUb3x48c3WB86dChr166tWx81ahQLFizghhtuYPHixVRVVTWo/8Ybb+DxeDjrrLMaRFEPPvhg8vPzeffddxvUHzt2bIOBSvvttx8Axx13XF1ZRkYGAwYMCBh1PO200xqsn3HGGXg8Hj788MOA38OqVav47rvvGtmXm5tLUVFRI/sCkZ6ezsSJExudd+3atY0ifRMmTGjS+b/44gvKysoC/n/heP311xERLrzwwrB1w1FWVsYnn3zC6aef3uB36tu3L4cddhjvvPNOg/oDBw5k4MCBdetdu3ala9eudddQp06d6NevH9dddx0PPvggq1ataraNURHfkc2W104nsvnt0h2x0U1FURKfmhq7pKVBZmaTD+Oasyki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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - } - ], + "execution_count": 28, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "np.random.seed(42)\n", "X = np.random.rand(100, 1) - 0.5\n", @@ -2861,28 +1988,11 @@ }, { "cell_type": "code", - "execution_count": 58, - "metadata": {}, - "outputs": [ - { - "data": { - "image/png": "iVBORw0KGgoAAAANSUhEUgAAAqAAAAEeCAYAAABVFKddAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADl0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uIDMuMC4wLCBodHRwOi8vbWF0cGxvdGxpYi5vcmcvqOYd8AAAIABJREFUeJzs3Xl8VNX9//HXJ5CwhS2AuIEgoiKKqLgEtyDWVuuCtdUqPxWV4lprpa1iS0tFRa1+XfqtC63UuuvXpa64mxY0VXFDkApuCCq7gAlLCDm/P869MLmZSWayzJK8n4/HfUxy75k7Z7Lc+dyzfI455xARERERSZe8TFdARERERFoXBaAiIiIiklYKQEVEREQkrRSAioiIiEhaKQAVERERkbRSACoiIiIiaaUAVJqVmY01s9WJvk/wnMvN7JOmfm0RERHJDgpApRYze8rMXklwbJCZOTM7qoGnvx/YteG1i1untkGdRjX3a4mI5DozKzezMSmUH2Nm5UmUO9zM5ptZm0ZVMMeY2Q/N7H0zU0yVAv2wJJ67gBFm1i/OsXOAhcDLDTmxc269c25Zw6uWna+VKjMriLPPzCy/qc4nIomZ2d3BjWu4rTCzZ8xs9yZ8jX7BuYc11Tmz3J+Aq51zmwHMrCTyMw63Gj9jM+tiZrea2ddmttHMPjGzkxO9SMx5ezbz+0mKc+5ZYDMwOtN1ySUKQCWeZ4GlwFmxO4Pg6HRgmnOuOth3Q3DHu97MPjeza82sXaITx+sWN7MJZrbUzL4zs7uBjpHjB5rZS8EHxFozm2FmB8QU+SJ4fCK4KH1Sx2tdYGafmlmlmS0ws7NjjoUtqWPN7DEzqwjKnlrfDyx4zjwz22BmH5vZxWZmkfOeZ2ZPmlkFcKWZHRns/4GZzQI2AiNTqGeN89VXRxGp5WVgu2A7CugAPJHRGuUoMxsO7A48EufwYLb+nLcDFsQ8Lx94CRgInAzsBowBPm+COqXzxvzvwMVpfL3c55zTpq3WBlyLb+nMi9n3I/xdXp+Yfb8HhgP9gB8Ci4E/xBwfC6yu4/vT8IHXz/Dd5b8H1gKfxJQ5Evh/wKBguw1YCXQPjm8HOPxFa1ugZ4LX+glQCVwQvNYlQBVwdHC8bXCeRUG9dsHf0W8EdqzjZ3U+8DVwEtAfOAFYBpwXOe9S4Gxg5+DndWSw/wPge8H+ninUs8b5Mv03o01bLm3A3cAzkX3HBv9bHWL27QA8BHwbbM8CA2OO9wGeBFYB64D/Aj8NjrnIVpqgLv2C4z8F/gWsB94DhgB7Am8AFcBMoH/kuecCnwTXjE+An0WO7wKUAhuAj4P3WA6MSeE9jgHK6/l5/i/wRGRfSfC+etbxvHHAZ0BBkr+38GcVu90dHCsFbgduAJYDbwf7uwJTg+vyd8HPeFjkvMOD/euAr4LzdIk5fhjwn+BntwZ4C9gz5njfoC67ZPpvO1e2jFdAW3Zu+LtRBxwVs+9ZYHo9z7sI+G/M9/UFoG8Bt0fOUUpMABrnNSy4uIQX+TAgGxUpF32tN4GpkTL3EXwoxJxncszxAnwA+tM66vMVcGpk36+A2ZHz3hQpEwagJ0T2J1vPmxLVSZs2bXVvRAJQoDNwb/h/G+zrCMwPyg7Bt/D9DX9z3jEo8zS+BW9v/A3oD4AfBMf2D/5Xv4+/OS5KUJd+QbmPgWOC13kNmBs8jsC3Is4Cno553onApuC6uyvw8+D744LjecCHwL+BfYCDg3NsIghAk3yPY6g/AP0A+G1kX0nwvr4AvgFeAUZEyjwX/NzvBJYAHwGTgPwEr9MG3xjigD2Cn2vX4FgpPsC8MXgfg/CfFzPxn18H4APyyfiGju2C5+2FDyzH4z/7DgTKgEeD423xgfkNwIDg3KcBgyJ1WwKck+m/7VzZMl4Bbdm7Bf/MDwVfb49vhftxpMwpwOvBP145/i57Xczx+gLQ74AzIuecQs0W0N74u9f5+DvPcqAa+E1wPNkAdC1wZqTMecCyyHl+EinzFXBxgp9R2Pq6LqhXuG0AKiLnHR15bhiA7hDZn2w9R8erkzZt2urf8AFXVcz/rAO+pGar1tn47mKL2dcG3wNzcvD9bGJ6fSKv0S8477B66hKWOzdmX9ga+6OYfWOICQSDa++0OO9rZvD1Ufheq74xxw8JzjsmhfdY43UTvIfVwFmRfbsF1679gGJ871U1cGhMmf8G18tpQbmT8J8nN9TxWiXEaVnFf2bNjuw7Ivj9dojsf5+tnyH3AHdFjg8NXmMboCj4+vB6fgbvEtOAoa3urS0iid0F/NXMivAXoFX4riYAzOwQ/EzzPwAv4i9AJwLXNHE97gO64buiF+JbJEvxrZNNwUW+3xTneKLx0uH+n+FbLus6b0WCcyTaH5Xs+UQkOf/GdwEDdMcPe3nRzA50zi3CB0T9ge+CId2hjviWMIBbgDvM7Af4Fr4nnHPvNLA+s2O+Xho8fhjZ18nMOjrn1uFb+KZFzjETOD74ehDwlXPuy5jjb+KDwFAy7zEZHfCB5BbOuY/xrbqhsmBy66+BGcG+PHzX+M+cn7z0jpn1AG4ys1+7ILJLQfRnvx/+vSyPvL/2bH1/+wG7mNkpMcfDwgOcc2XB/IQXzGeIeQXfOhr7cwU/dKJDivVttRSASl0eBf6MH395NnCPcy42ODsYWOicuzrckWDmfF3mAQfh70BDB0XKHAKMc849F7zGdvhul9DmYKsv9ce8oM7/iJz7oxTrHOtr/IfCzs65+xtxnljNUU8RqW2dc25LzmEzG4vvZRkHTMQHR+/jx2ZGrQJwzt1lZi/gu86PBN4wsynOuUkNqE/s9dXVsa++CcSpBG31vsckrcAH8fV5M/Ja3wCbguAzNA8fNPbED7dKRfTGPA9/jT40Ttm1MWX+BtwUp8xXAM65s8zsZvwQi+OBq81slHPuhZiyRQ2ob6ulAFQScs6tN7MH8ONxuuNbRGPNB/oGs8TfAo7Gz2JMxS3AXWb2Dv6O+GT83Whs+qT5wOnBTPHObJ0YFNbTmdmXwEgzex3Y6Jz7Ns5r/Ql4wMzew89+/SH+QnhcinXeInjtScD/mNla4HkgP3gP2zrnrmvAaZu8niKSFIdvHQwzcbwLnAqscM4lXNTCObcYP0xoqpldBvwCf92sDIo0V17M8GY19toce7M6D9jBzPoELbrgx0HGBrBJvcckvIcfk1mfofigM/Q6cJqZ5bkguwp+POs6fFAbTyo/13fxw7iqnXOf1VFmcOzNSDzOuQ/wY12vM7PpwJnACwBmFraovptEnQSlYZL6/Q0ffL7hnJsXe8A59wT+jvFW/B10Cb47PmlBq+FV+HGf7+LHDN0SKTYG3wX/HvAAfrD6okiZS/EzyRcBbyd4rUeBX+InCM0FLsSPuZqeSp3jnPcOfIvJGPzF6d/48aefN/B8zVJPEamlnZltG2yD8D0+hfiJReCHGC0FnjSfZL2/mR1mZjea2UAAM7slSKW2s5kNxbeQhQHgMny37PfNrLeZdW3i+v8Jf3N+oZkNNLOf43NRXh8cfxk/xvIeMxtqZsX4a3ZVzDnqfY9JegEf/G5hZpeY2aigboPNbAowCj9jPnQ7vuXwFjPbzcy+D/wRuK2O7veF+JuFH5pZLzMrrKNeL+OD3CfN7Ojg/RWb2R/NLGwVvQ44wMzuMLN9zGwXMzvWzO4M3kd/8ykGh5vZTmY2Aj9hK7ZX6iB8w8jr9f6kxMv0IFRt2rRp06Yt3Rt+so6L2dbie3JOipTrjc/xuAwfYHyOH3cZpnv7M34SzwZ89+tDxEwsxN+MfokfJlSaoC79iExWAoYF+/rF7PtBsK8wZt95+PRLm4ifhmlXfHqhjUE9j6d2Gqb63uMY6p+E1B3fajk4Zt9vgtdcj+/OnwEcE+e5B+FTTa0PXvtK6knLhB8i8Q2+xfruYF8p8L9xynbGN2wsxreeLgp+TwMiP+/ng7+DCvzY2ytjfj6P47vjNwa/z+uJmamPbxi5I9N/17m0WfCDExEREWkwM7sW6OWcOyfTdUknM9sGP9xhmHOuQT1frVFSXfBmVmRmTwQrwyw0s9MSlDMzu87MVgbbdRYz7czMpppfJaba4qxDa2a/NLMl5le7mWZ1rKgjItKSpXDdbRd0HS41s1Vm9rSZ7ZDu+orgM6B8Zq1sLXh8C/YFCj5Tk+wY0L/gm61748eX3G5mg+OUG4cf37E3fnzEcfhVGkIf4NNc1BqkG4z7uBy/FOFO+NVd/phk/UREWppkr7u/wOdYHILP1/stvltYJK2cc2udc1vWgm8tnHNvOeceznQ9ck29AaiZdcInhp3onCt3zs0EnsKvCR51JnCjc26xc+4r/GoEY8KDzrm/OOdeIZIrLOa5dznn5jo/g3ly7HNFRFqLFK+7/YEXnHNLnXMbgIfxq+aIiGStZNIw7QpUOefmx+z7ADg8TtnBwbHYcsleCAcTk+Q8eG5vM+vhnFsZW9DMxhEkD+7UqdN+u+++e5IvkZwPP4TCQujfv0lPKyI55J133lnhnOuVoZdP5bp7F34G8fb4xSBGA3EzJjT3tVNEJNlrZzIBaCFbk7WG1uBnlcUruyZSrtDMzNU/2ynecwlep0YA6pybis+5xrBhw9ysWbPqOXVqSkqgqgpmzmzS04pIDjGzhRl8+VSuuwvws3q/ws+0/hC/NngtzX3tFBFJ9tqZzBjQcqBLZF8X/Bre9ZXtgk/dkMxU+3jPJcHrNKuddoIvowtsiYikTyrX3b8A7YAeQCd8uhjljBWRrJZMADofaBtJSLs3PkF21NzgWH3l4on33KXR7vd06NsXvvoKNkVXBBcRSY9UrrtD8XkQVznnNuInIB1gZj3TUE8RkQapNwB1zlXg76ivNLNOZnYwcAJwb5zi9wCXmtkOwXik8fhkvwCYWUGwXJUB+WbW3szyYp57jpntYWbdgN/FPjeddtoJqqvh668z8eoi0tqleN19GzjDzLqaWT4+08jXzrlEyxiKiGRcsmmYLgA64FdJeBA43zk318wONbPymHJ34pcw+xCYAzwb7Au9iF/pYDh+HNJ64DAA59zz+JUFXsOvMrCQFJd1bCp9+/rHhZkcASYirV2y191f4TOLLMCvxHMMcGK6KysikopkJiHhnFuFz+8Z3T8DP1g+/N7hl976TYLzlNTzOv8D/E8ydWpOO+3kHzUOVEQyJYXr7kr8zHcRkZyRbAtoq9Knj39UC6iIiIhI01MAGkfHjtCrl1pARaRlKyuDKVP8o4hIOiXVBd8a9e2rFlARabkqKmDkSKishIICeOUVKC7OdK1EpLVQC2gCygUqIi3Zd9/54HPzZv9YWprpGolIrmlML4paQBPo2xeefx6cA7NM10ZEpGl17gyrVm1tAS0pyXSNRCSXlJU1rhdFLaAJOAfr1sELL2S6JiIiTa9TJ/+BMXmyut9FJHWlpY3rRVELaBxlZXD77f7rUaPgtdd0cRaRlqe4WNc2EWmYkhLf8tnQXhS1gMZRWgpVVf7rTZs0NkpEWgfNiheRZBUXN64XRS2gcZSUQLt2sH49tGmjsVEi0gItWwa33OK/LiqirP9pjDyqjWbFi0jSGtOLogA0jjCq/973/ABbXYRFpMVZtAguuWTLt0t/WkBl5Sk1xnPp2icizUUBaALFxbDXXlBeXn9ZEZGcs8028NOfwpw58OqrHLThNQoKTtGseBGp36ZNMHMmbNjQ4FMoAK3DgAH+5ysi0uL06eO74F9/HV59lW3/eSfruJMVvQbx6SPvcGBxh0zXUESy1ZQp8Ic/NOoUCkDrsPPO8OCDW2d4iYi0OPvvD/vsA++9B0DP5fPo2e1jYGhm6yUi2euzz/zjXnvBDjvUPPb880mdQgFoHQYMgOpq+OIL2HXXTNdGRKQZFBTAu+/6r0eM8IM/V63KaJVEJMtVVPjH3/0OTj655rEkV+9RGqY6DBjgHz/9NLP1EJHWx8yKzOwJM6sws4VmdlqCctPNrDxmqzSzDxv0okVF/jEIQJWWSUTiWrfOP3bq1OBTqAW0DmEAGrY0i4ik0V+ASqA3vj/8WTP7wDk3N7aQc+7o2O/NrBR4tUGvGBOANnaZPRFpwcIAtGPHBp9CLaB12HZb/7NVC6iIpJOZdQJOAiY658qdczOBp4DT63leP+BQ4J4GvXBMANrYZfZEpAULu+Ab0QKqALQOZn4ikgJQEUmzXYEq59z8mH0fAIPred4ZwAzn3BcNetWYADRcZq9NG6VlEpGIJmgBVRd8PRSAikgGFAJrI/vWAJ3red4ZwFWJDprZOGAcQN++fWsXCALQj15YRMHwRcx4AGa+VcABx/VW97uIbBW2gCoAbT4DBsBLL4FzSU/sEhFprHKgS2RfF+C7RE8ws0OAbYFHE5Vxzk0FpgIMGzbMRY9/vLyI3YA9Zj8EJz4EwH4A29wExZdEi4tIa9UEk5DUBV+PAQP8mvDffJPpmohIKzIfaGtmA2P27Q3MTVAe4Ezgcedcg9dvm77ucN5mfxaxI4vYkfUduvsDs2Y19JQi0hJpElLzUyomEUk351wF8DhwpZl1MrODgROAe+OVN7MOwMnA3Y153QN/2JPDO7xF/zaL2K3DIr787Z3+wMaNjTmtiLQQZWUw5RqHUxd88wsD0FtvhbZtlYZERNLmAmAasAxYCZzvnJtrZocC051zhTFlRwGrgdca84LFxT7dUmmpn3S02/J2/oACUJFWL0zNZhs3MsE5qgvakdemTYPPpwC0HmHX+2OPwbPPKheeiKSHc24VPrCM7p+Bn6QUu+9B4MGmeN3i4phr3AtBALphQ1OcWkRyWJiarWu1b/3c2KYjHRpxPgWg9Xj9df/o3NZceApARaRVaN/eP6oFVKTVO75LKW3sJTrYd+Agr3PDJyCBAtB6lZRAXp5fE1658ESkVWkXvwu+rGxrN71uyEVah8GTf8rgqqVbvm+3Q69GnU8BaD2Ki+Goo/wFd/p0XWxFpBVpV7sLXkt0irRS337rHydNgvx8OPbYRp1OAWgS9t8fXnwRhg3LdE1ERNIoThd8vCU6FYCKtHDhOESAiRN913AjKQ1TEvr1813wixdnuiYiImkUpwteS3SKtEKbNvnHtm2bJPgEtYAmZaed/OMXX0D//hmtiohI+sTpgo+malLrp0grELZ+FhQ02SkVgCahXz//+MUXmayFiEiaJZgFXyNVk4i0fGEAGt6UNgF1wSehTx+/DrwCUBFpVWK64MvKYMoUPwlJRFqZ8CZULaDpVVAAO+ygAFREWpkgAHUbNmjmu0hr1gxd8GoBTVK/frBwYaZrISKSRsGEA9u8maqNm2vMfBeRViRTXfBmVmRmT5hZhZktNLPTEpQzM7vOzFYG23VmZjHHh5rZO2a2LngcGnOsnZndYWZLzWyVmT1tZjs0/i02jZ12UguoiLQyZls+cDoXbNTMd5HWqhm64JNtAf0LUAn0BkYDt5vZ4DjlxuHXLt4bGAIcB5wLYGYFwJPAfUB34B/Ak8F+gF8AxcHztge+Bf6c+ltqHv36+TRMVVWZromISBoFAej0f25k8mR1v4u0SpnogjezTsBJwETnXLlzbibwFHB6nOJnAjc65xY7574CbgTGBMdK8GNOb3bObXTO3QoYcERwvD/wgnNuqXNuA/AwEC/IzYh+/XziZeUCFZFWJZgJf8CQDUyYoOBTpFXK0BjQXYEq59z8mH0fED84HBwci1duMDDbOedijs+OOX4XcLCZbW9mHfEtrdPjVcjMxpnZLDObtXz58iTeQuMpFZOItEqxyehXr4arroLf/tavhjJnTmbrJiLpEQSgaze2a7JsGMnMgi8E1kb2rQE6Jyi7JlKuMBgHGj0WPc8CYBHwFbAZ+BC4KF6FnHNTgakAw4YNc/HKNLUwANVEJBFpVcIAdMIEeOklWLly67HXX4dXX63z6WVlSlovkvOCMaCzPixg4pymyYaRTAtoOdAlsq8L8F0SZbsA5UGrZ33n+QvQDugBdAIeJ0ELaCb06eMf1QIqIumQ7OTPoOy+ZvZvMysPJnL+oskqsu22/vGhh7YGn6f5qqz77Js6W0PKymDkSN9YOnKkcoiK5IpaeX+DFtCN1QVNlg0jmRbQ+UBbMxvonFsQ7NsbmBun7Nzg2Ftxys0FxpuZxXTDD8EHngBDgd8651YBmNmfgSvNrKdzbkUqb6o5tGsHPXvCU0/BUUfpTl5Eml3s5M+hwLNm9oFzrsa118x6As8DvwQeBQqAHZusFv/4Bzz/PISX7f33h+23hwce4LuF3zJxYuLWkNJS/0EV+4Gla6dIdgtvHGvk/Q0C0E157WhjTZMNo94A1DlXYWaP44PBsfgL4QnA8DjF7wEuNbPnAAeMZ+tM9lJ81/rFZnYH8LNgf9h/8zZwhpmVAuuAC4CvsyH4BP8LWbUKVqzwvxjNBBWR5hIz+XNP51w5MNPMwsmfl0eKX4qfwHl/8P1GYF6TVaZfPzjvvJr71q8HoBvfsnmzo7LS4gaXJSX+gyr8IFP6JpHsV1rqe9yrq/1jaSkU9/dd8MNHFDB5ZNMMqUk2DdMFQAdgGfAgcL5zbq6ZHWpm5THl7gSexo/fnAM8G+zDOVeJT9F0BrAaOBsYFewH+BWwAT8WdDlwDHBiw99a0yot9b8MUCJmEWl2qUz+PAhYZWZvmNmyIIdy33gnbbIJnB06UF3QjnZUUpi3PmFwWVzsb9aVvkkkd/TosTXeqa7234dd8D23K2iybBhJLcUZdIuPirN/Bn5yUfi9A34TbPHO8x6wX4JjK/Ez37NSSYlfFKSqSnfyItLsUpn8uSOwL/A9/M3/9fiGgoOjBZtyAmdeUXdYsoRrfv0tw07omPADqbhYgadILggnDH75JeTl+eAzLy8Y+t2r6dMwaS34JBUXwx//6LOP/O//6oIqIs0qlcmf64EnnHNvA5jZH4EVZtbVORfNPNJ0uvsAtP36b4GsWbRORBogdtxn27Z+27w5psHt3WAlpHQvxSneicGAgPz8zNZDRFq8LZM/Y/Ylmvw5Gz/mPpSW1HRr23YH4OH/Xc73j9jEf2Zsgk31bFpKTiQrxU4YrKqCs8+ODJ1phkT0agFNwS67+LuCjz7KdE1EpCVLcfLn34HHzOxWfIA6EZjZ1K2f0Xyeyyq70wV4ufoIP3r/sCRO0rYt3HEHnHNOU1ZNRBopOmHwjDMiPb0KQDMrPx8GDoR5TTe/VEQkkQuAafjJnyuJmfwJTHfOFQI45141syvwkz47AjOBhDlDGyJeWpZtThzFumtfJZ9NALRpA3lWx0mqq33TymuvKQAVySYTJ1L80kss3RnWroUuXaDzLyNlvvrKPzZhF7wC0BQNGqTV50Sk+SU7+TPYdztwe3PVJV4+zwlTxlJ2/NjkVzl66CE49VR1w4tkkw0b/PK6+BmO8WY51rDLLk320gpAUzRoEPzznz43VhPeCIiIZK1E+TxTmuHeNvi4UQAqkj3WBCN1uneH556ru2znzrDHHk320gpAU7THHr4nacEC2HPPTNdGRKT5hfk862rtnDoVHnsMTjoJxo2Lc5IwAN20qRlrKiIpWb3aP/bsCQcdlNaXVgCaokGD/OO8eQpARaT1qKu1c+pUOPdc//WLL/rHWkGoWkBFsk/YAtq1a53FopMQm4IC0BTtthuYaSa8iEjoscdqf68AVCQHhC2g3bolLBJ3bfgmCEKVBzRFHTv6pZE1E15ExDvppLq/B7YmUFYAKpI9kmgBjTcJsSmoBbQBBg1SACoiEgpbO5MaA6oAVCQj4najhy2gdQSgiSYhNpYC0Abo2hVeeAFmzoRDDsl0bUREMm/cuASBZ0iTkEQyJtqNfvPNfo33U79eQz+osws+mUmIDaEANEVlZfDoo74p+nvfg1df1brwIiL1UguoSGa8/z5VE5/k8g2Oage2HpaeD87Bl1bqA9B6JiGllHItSQpAU1Ra6oNP8LlAS0sVgIqI1EtjQEUyY+xYDn3nHQ6N3VcdPLrgcbvt0lsnFICmrKTEJ6Bfv37r9yIiUg+1gIpkxooVAHxz8i/4ZEU3OnaE55/3jWlt2sBpF3aj/2lNunpvUhSApigcCzF5MkyfDttsk+kaiYjkAI0BFcmMoMVsu1suZ7tttwWgMmZCUv8M9eIqDVMDFBfD7cGqy488ktm6iIjkBLWAimTGhg3+sUOHLbuKi2HChMwOIVQA2kA77eRXrVIAKiKSBAWgIpkRjhls3z6z9YhQANoIJ58M778P48f72fEiIpKAJiGJpN/mzX7Yi5nPv5RFFIA2ws47+8ebbvL5tRSEikhTMbMiM3vCzCrMbKGZxZ0lYGaTzGyTmZXHbDunu771ClpAy9dU6Vopki6x3e9mma1LhALQRgjXg3euaZenEhEB/gJUAr2B0cDtZjY4QdmHnXOFMdtnaatlkt5+zwegG77bpBt2kWZUVgZTpgT/Y1na/Q6aBd8oJSWQlwfV1U27PJWItG5m1gk4CdjTOVcOzDSzp4DTgcszWrkGmvmftuwPtKVqyw27ciiLNK3oikczHljPflBjAlK2UAtoIxQXwymn+J6lF1/UxVREmsyuQJVzbn7Mvg+ARC2gx5nZKjOba2bnJzqpmY0zs1lmNmv58uVNWd96DT/cjwFtS5Vu2EWaSWmpDz43b/aPb8+oPQM+WygAbaQjj/Rj6jOwiICItFyFwNrIvjVA5zhlHwEGAb2AnwG/N7NT453UOTfVOTfMOTesV69eTVnfeh14sO9wa9+2ilde0Q27SGPU6GaPUVLiWz7btPGPxUPVBd9i7bGHf/zoIxgwILN1EZEWoxzoEtnXBfguWtA591HMt2+Y2S3Aj4EHm696DRBMQmpbvUnBp0gjRLvZY2/owsVywiTze+cFAahaQFueQYP840cf1V1ORCQF84G2ZjYwZt/ewNwknuuA7JruCr5JBvyg+erqusuKSELRbvboBOgaSebXKwBtsbp2hR12gLnJfCyIiCTBOVcBPA5caWadzOxg4ATg3mhZMzvBzLqbdwBwMfBkemucBLOtQejmzQm7EEWkbtFu9jrHU8dZBSlbqAu+Ceyxh1pARaTJXQBMA5YBK4HznXNzzexQYLpzrjAo99OgXDtgMXCdc+4fmahwvfLzYfNm3ny9ipE5rWc4AAAgAElEQVTH5MftQhSRukW72ev831EappZt8GCYOtX3KuWpTVlEmoBzbhUwKs7+GfhJSuH3cSccZaVgHOjM0qpaXYgKQEWSV1wc+Z9xLv4qY+Xl/lEtoC3THnvAunXw5ZfQr1+mayMikqWCAPSw4k0UFGydRKGUTCKNUFkJ++0Hc+YkLqMAtGWKnQmvAFREJIEgAN1/n6rkuxBFpG5ffLE1+GwbJ6xr3x5+8IO0VikZCkCbQOxM+GOOyWxdRESyQVlZnAAz3yejp6qqdheiiDTMt9/6x2HD4O23M1uXFCgAbQJFRX578EE4+GBdVEWkdUuYpzBsnYk3Vk1EGiYMQLt3z2w9UpTUlBkzKzKzJ8yswswWmtlpCcqZmV1nZiuD7Tozs5jjQ83sHTNbFzwOjTx/XzP7t5mVm9lSM/tF495eepSVwerV8O67/qKrtCIi0polzFMYBqCbNmWoZiItUEsOQIG/AJVAb2A0cLuZxVuTeBx+1ubewBDgOOBcADMrwOemuw/oDvwDeDLYj5n1BJ4H7gR6ALsALzboXaVZaamfgAbxk8KKiLQmCfMUqgVUpOklCECzPdduvV3wZtYJOAnY0zlXDsw0s6eA04HLI8XPBG50zi0Onnsjfm3iO4CS4PVuds454FYz+xVwBD7wvBR4wTl3f3CujcC8xr299Agvths3+jRMmtEpIq1ZwjyFYQD65Zd+YkT79tC7d4ZqKdJCxAlA61quM1sk0wK6K1DlnJsfs+8DIF4L6ODgWLxyg4HZQfAZmh1z/CBglZm9YWbLzOxpM+sbr0JmNs7MZpnZrOXLlyfxFppXcTG8+qpfFenAA7Pvlywikm41lgMMhZOQjjrKpwzZdlu4665MVE+k5YgTgNa3XGc2SGYSUiGwNrJvDdA5Qdk1kXKFwTjQ6LHoeXYE9gW+B3wIXA88CBwcfRHn3FRgKsCwYcNc9HgmDB8OZ5wBf/ubzwnasWOmayQikmXOOQduusmv2rFuHaxYAS++6PeLSGL/93/w9NPxj/3nP/4xJgANe2azOdduMgFoOdAlsq8L8F0SZbsA5c45Z2b1nWc98IRz7m0AM/sjsMLMujrnooFrVjrhBPjzn+Gll/zXIiIS4+KL/QYwaxbsvz/L/vURn5ap50ikThdc4G/Y6rLzzlu+TGm5zgxJJgCdD7Q1s4HOuQXBvr2BuXHKzg2OvRWn3FxgvJlZTDf8EPwEJ/Dd8bGtmVnRspmKww6DwkKYPBm22SY7f+EiItngzTW7cyDQfel/WX7Iiaw6xKezo317mDhx6wofIrJ1Sc2//tU3aUZtsw2MGFFjV7bn2q03AHXOVZjZ48CVZjYWGAqcAAyPU/we4FIzew4fQI4H/hwcKwU2Axeb2R34yUkArwaPfwceM7Nb8cHqRGBmrrR+gr+hX78e3nnHD/7NxkG/IiLZ4NW3CunInuzFHI6v/if8O+Zgz56+O0lEvMpK/3jWWT69RAuQbBqmC4AOwDL8uMzznXNzzezQoGs9dCfwNH4M5xzg2WAfzrlKfIqmM4DVwNnAqGA/zrlXgSuC5yzDp2GKm280W8WmY9q4MTsH/YqIZIOSEhjV/gVOynucnxY8zsdTHt/aPb8mZ9odRJpfVZUfN52X12KCT0hyJSTn3Cp88BjdPwM/uSj83gG/CbZ453kP2K+O17kduD2ZOmWjkhJo1863giodk4hIfOEynZfdsj0rV55ISQnsVgw8Vg233goVFQ06X7aOdRNplLD1M17Xew7TUpxNKBz0e/rp/oZFF0IRaSgzKwLuAo4CVgATnHMP1FG+AJ/6rrNzbsf01DJ1deYnLPTtGZ99WM7SJCcm5UK+Q5FG2bjRP7Zrl9l6NLFku+AlScXFvhdp4UL45JNM10ZEcliyK9CFfg1kPjFyPerKTzjn804ALFlQnvSyxrmQ71CkUVpoC6gC0GZw3HH+MVHKLhGRusSsQDfROVfunJsJhCvQxSvfH/h/wJT01bJhEi7TCbw517eAdqQi6WCyrvOJtAgKQCVZ/fvDnnsqABWRBktlBTrw2UauwOdTTigbVpELhypNnly7u3zfQ30LaCHlSQeTdZ1PpEVooV3wGgPaTI47Dq67Dn7/ezj6aF0URSQlSa9AZ2YnAm2cc0+YWUldJ82WVeQS5Sfc51DfArpt5wpeeSH562a25zsUaRS1gEoq+vXzWROuvpqkxzKJiASSWoEu6Kq/Hrg4TfVqXp2CFlBXroBSJKQAVFIRrphVXa2B8SKSsi0r0MXsi7cC3UCgHzDDzJYAjwPbmdkSM+uXhno2rSAApaJia1JlkdauhXbBKwBtJiNGbM0Xq4HxIpIK51wFPpi80sw6mdnB+BXo7o0UnQP0wa9QNxQYCywNvl6Uvho3kTZt/FKczvmEyiKSsAW0rAymTMndHlaNAW0mxcVw7bXw61/7bnh1J4lIii4ApuFXhltJzAp0wHTnXKFzrgpYEj7BzFYB1c65JXHPmAsKC2HDBnj8cejiRyG8u3EwL3wyQInmpXUKA9CYFtCWkP9WAWgzuugimDQJ5s+vt6iISA3JrkAXOVYKZG0S+qR07erHMJ2+NePUznTlqrwlTG7XPic/aEWSFXdVr7ALPqYFNF7+21z7v1AXfDNq3x5+8AN46ik/FlREROoxZQocf7xPJXLccVTmd6Qba9im+huNp5cWLWzVnDgxMnk5Thd8S8h/qwC0mZ1wAnz9tW8NzdVxGiIiafOTn8CTT/o796eeonLAHgBsn7c0Zz9oRZKRcFWvOJOQWkL+W3XBN7NttvGPd9wBd9+du38oIiKZUDigN/wXfnnaUna4QNdPabnCVs1wXOeWm60Ek5ByPf+tAtBm9u67/tG53B2nISKSMb17A/DjQ5dCnGtn3DFzIjkobNWs9ffcQvOAKgBtZrF3NG3bqvtIRCQlQQDKZ5/BkpqT+2fNgr/+6GUu3XQtna2cVYcMpaj0ccjT6DLJTXFbNVtoHlAFoM2suBheegl++EPYe2/doYuIpGTbbf3jddf5LcYwfJ4qABwwYyF8/jkMGJDGCoo0M7WASkMddhhcconPB/rFF36ZThERqd972x5Ne7uD7m4VBnQvgoJ8f6xyE3y7Cp6y4ymhlIFugV9FSSQXrVkDy5bV3v/11/5RLaDSEOPG+QB0zBifZUQtoSIi9Xv+04FMzPuIzZt9ypnJv/JDmcJxcgArSmG7ew+AecC6dRmrq0iDLVsGO+9c9w2UWkClIRYv9sOS/vUvn99Ls+FFROoXnRnco0ftFWAmTABe7OQDULWASi7673/932779rBjnLUkCgvhxBPTX69mpAA0TUpL/Ux48OOJNRteRKR+0ZnBCVeA6dTJP0EBqOSiNWv848iR8Mwzma1LmigATZOSEj98Y/16342k2fAiIsmJzgyOmytRAajksjAA7do1s/VIIwWgaRLexY8a5SdoqvVTRCR1CXMlKgCVXBYGoF26ZLYeaaQANI2Ki/3SnI884teGV6o6EZHUxc2VqABUclRZGWx8ag0l0KpaQBUCpdkhh/gbnblzM10TEZHcV1bmM4t8tVoBqOSesjI/7PPtl3wL6MI1CkClmRxyiH+cOTOz9RCR7GZmRWb2hJlVmNlCMzstQblfmtlnZrbWzL42s5vMLGd7t8KAsqwsubIjR8LEiXDXQwpAJfeEk+o6Ox+A/vfrrin9D+QyBaBp1r+/X9jj9dczXRMRyXJ/ASqB3sBo4HYzGxyn3FPAvs65LsCewN7AxWmrZROKDShHjqz/Azh2RvzazT4A/eaTilbx4S0tQ5hmrJv5ADS/Z9eU/gdymQLQNDPzraBqARWRRMysE3ASMNE5V+6cm4kPNE+PlnXOfeqcWx0+FagGdklbZZtQvBRLdQk/vNu0gY1tfQD6/GMVreLDW1qG4lXPsuBHl/H97m8DsLKqa0r/A7lMAWgGHHIILFwIl12mC6SIxLUrUOWcmx+z7wMgXgsoZnaama0FVuBbQO9MUG6cmc0ys1nLly9v6jo3WmxAWSPFUgLhjPjJk+HiCT4APWvz3zhz810t/sNbWoANG+Ckk9jh/uvpvupTAHYbsX1K/wO5TAFoBnTu7B9vuEF36SISVyGwNrJvDdA5XmHn3ANBF/yuwB3A0gTlpjrnhjnnhvXq1asp69skYgPKZFeLKy72KyENPHHPLfsu4LYW/+EtLcAnn/iVaXr3hmuvhQceYMiZ+6T8P5Crcnagei775hv/WF0dWclDRMQrB6IJAbsA39X1JOfcAjObC9wG/KiZ6tas4qZYSsbQof4Te+RIduq1jlee1HVVslNZmf/c32/hfI4Cvh0wjO6XXbbleIP/B3KMAtAMOOIIvyrSxo1+TKju0kUkYj7Q1swGOucWBPv2BpJJ4NYWGNBsNctm/fsD0LPjenq2gg9wyRGbN8PJJ8PcuaxfD0WL4EQH3fkWgHve2o0DylpH0BlLXfAZUFwMr70Gw4ZBVRXcd5+64UVkK+dcBfA4cKWZdTKzg4ETgHujZc1srJltE3y9BzABeCWd9c0aHTr4x/Xrt+xqLSltJIstWACPPw4ff0yHLz9mN/cxu/MxvVkGwGvVJa1yvLIC0AwpLoarr/Zf33abxoKKSC0XAB2AZcCDwPnOublmdqiZlceUOxj40MwqgOeC7Yq01zYbRALQVNM6iTSLykr/uOuuvPfAPIa2m8ceNo/dmUcfW8yL7Y5rlT2h6oLPoHfe8V3wzvnueI0FFZGQc24VMCrO/hn4SUrh92els15ZLRKAxkvrpGuspF0YgHbuzD6n7s7t/fzfYo8esHKlH4bXGv8ukwpAzawIuAs4Cp/mY4Jz7oE45Qy4Fhgb7PobcLlzzgXHhwbnGQTMA85xzr0fOUcBPt1IZ+fcjg15U7mipATat9/aW9Qa74BERJpMfj7k5fmxTVVVlJS0paDAf/5rVrxkTBiAFhQArWeSUX2S7YJPdkWOcfg79r2BIcBxwLmwJbB8ErgP6A78A3gy2B/r10D2JahrBmHKkaOP9jPi8zQgQkSk4cxqtII2JK2TSJOLBKDi1RvypLIiB3AmcKNzbrFz7ivgRmBMcKwE3+J6s3Nuo3PuVvyqHUfEvFZ/4P8BUxr8jnJMcTE8/LDPDXrWWRqjJCLSKEEAesu16ykr25onVMGnZMymTf4xPz+z9cgyybS5pbIix+DgWLxyg4HZYXd8YHbkPH/GD55fTx2yfTWPVM2Z47vh583zXUQKQkVEGmZjXnvAB6CaeCRZQS2gcSUTgKayIkdhcCy2XGEwNjR6rMZ5zOxEoI1z7on6KpTtq3mkqrTUT0QC/3d63XVKGyIi0hAVm30LaEH1ei3HKdlBAWhcyUxCSmVFjmjZLkC5c84FaUPinifo5r8eOCapWrcw4frH4WzNJ5+Ep5/2yeo1bklEJHntuneAlVCYt14TjyQ7KACNK5kW0C0rcsTsS7Qix9zgWLxyc4EhQWtoaEiwfyDQD5hhZkvwCZi3M7MlZtYviTrmtNiB8qed5vdVV/vUTJMmqSVURCRZnXr4FtCLf7ZeN/CSHTQGNK56A9BUVuQA7gEuNbMdzGx7YDxwd3CsFNgMXGxm7czsomD/q8AcoA8wNNjGAkuDrxc17K3llnCg/EUX+dRM4IPQl15SAmURkaQFk5DO+Ml6BZ+SHdQCGleyiX+SXZHjTuBp4EN8UPlssA/nXCU+RdMZwGrgbGCUc67SOVflnFsSbsAqoDr4fnPj32buKC6GV1+Fww/33zuHxjGJiCQrznKcIslqlqVbFYDGlVQi+hRW5HDAb4It3nneA/ZL4vVKgRadhL4uxcX+H2DECN8Nn5fX8sYxTZo0iUcffZQ5c+Yk/ZwxY8awYsUKnnnmmWasmYjktDAAHT16a3dSVJs2fn3O889PX70k64VLt4YLFzTZEA4FoHEp9XmWCltCd9oJunWDfffNdI3qN2bMGMyMc845p9axyy67DDPj2GOPBeBXv/oV//rXv1I6/y233MJ9993XJHUVkRZq+HD/uHYtLFsWf/vmG5g2LbP1lKwTb+nWxiorg1ee1xjQeBSAZrHhw+Gvf4Xly+GUU3JjHGifPn145JFHqKio2LKvqqqKe+65h759+27ZV1hYSI8ePVI6d9euXenWrVuT1VVEWqDx4/0C20uWxN/ee8+XW7w4s/WUrBNmpGnTpubSrQ3tlg9bVF993reAfrVcLaCxFIBmuU6dfBf8k0/CEUfA1KnZnSN0yJAhDBw4kEceeWTLvmeffZb27dtTEjOOYNKkSey5555bvh8zZgzHHnsst9xyCzvssAPdu3fnrLPOYt26dbXKhEpKSjj//PMZP348RUVF9OrVi1tuuYWNGzdy4YUX0q1bN/r27cu9926dL/fFF19gZsyaNatGvc2MRx99tEaZhx56iMMPP5wOHTqwzz77MHv2bObMmcPw4cPp1KkThxxyCJ9//nmT/exEpIkUFUHv3vG3Pff0F9WlS7d2jUY0yzhAyXrxlm4Ng8iJE1OfEBy2qLZ1/u/s868UgMZSAJrlYnupN2zwQ5Ya8o+QTueccw7TYrq3pk2bxllnnUXNDFy1zZgxgzlz5vDyyy/z8MMP88QTT3DLLbfU+Zz777+fzp078+abb3L55ZdzySWXMGrUKHbddVdmzZrFmWeeydixY/nmm29Sfh9/+MMfuOyyy3jvvffo1q0bp556Kj//+c+5+uqreeutt9iwYQMXX3xxyucVkQxq2xa2397P8Pz661qHGxNwSO6LLt3amG75sEW1vfkAtO8uCkBjKQDNciUlPiF9mzZg5lMzbd6c3TlCTzvtNGbNmsWCBQtYsmQJzz//PGPGjKn3eV26dOGOO+5g0KBBHHXUUfzkJz/hlVdeqfM5gwcPZtKkSQwcOJBLL72Unj17kp+fzy9+8Qt22WUXfv/73+Oc4/XXX0/5fVx66aUcc8wx7L777owfP56PPvqIn//854wYMYLBgwdz0UUX8dprr6V8XpFkmFmRmT1hZhVmttDMTktQ7tdmNsfMvjOzz83s1+muazZJqvVyx2CO65AhvrU0Zhs6sojF64tYtrmIRet7sOGP16al3pKdEnXLJyNsUR1xiB8D2neAxoDGSmoWvGRO+AdcWgo9esDFF/vgM8wROmNG9q2W1L17d0488USmTZtGt27dKCkpqTH+M5E99tiDNm3abPl+++23580336zzOUOGDNnytZmxzTbbsNdee23Zl5+fT/fu3Vm2bFnK7yP23L179waoce7evXtTUVHBunXr6NixY8rnF6nHX4BKoDc+J/KzZvaBcy66CIjh09vNBgYAL5rZIufcQ2mtbRZIehbz0UfDf/4D39Ve0K9DsIUOXHA/cHkz1ViyXexncElJ6p+1xcXAvpUwA82Cj1AAmgOKi7f+0e+1F1xxxdb148MugWwKQAHOPvtszjzzTAoLC7nyyiuTek5+ZIagmVFdXZ3yc+o6T16eb/T3GcO8TeEqFXWcOxw+EG9ffXUUSVWwPPFJwJ7OuXJgppk9BZxOJBpyzl0f8+3HZvYkcDDQ6gLQeN2lca+Nv/89/OIXvmAcb78Nc5/6lDG3HUBHUz7R1i72MzgZZWWRgFVpmOJSAJpjiovhmmv8hKQNG3wQethhma5VbSNHjqSgoIAVK1YwalStFLIZ06tXL4AaY0Lff//9TFVHJJFdgSrn3PyYfR8Ah9f1pGCp40MJFgCJc3wcMA5Iqlci14TdpWELaJ3dpV27Jjy0//dh/8Hr4DaU0F7qFRtwQpxWeAWgcSkAzUFhjtAbb4THHoPrr4fLgzaRhnYTNDUzY/bs2TjnaNeuXWYrE6NDhw4cdNBBXHfddQwYMIA1a9YwYcKETFdLJKoQWBvZtwboXM/zJuHH9v893kHn3FRgKsCwYcNcvDK5rLHdpTVoRSVJQnTYx5lnxmmF11rwcSkAzVHFxXDppfDEE/DUU/D0036QtHP+8eyz4YwzMhuIdu5c32dlZkybNo2xY8ey//77M2DAAG677TYOy8ZmZGnNyoEukX1dgNqDFgNmdhF+LOihzrmNzVi3rJZqd2lCYQAakwpOJCo67GPJEj9hOC8vphV+tlpA47HYsXC5aNiwYS6a07G1mDLFpwpJMIyJDh2yb4KSSK4ws3ecc8My9NqdgG+Bwc65BcG+e4CvnXO1ZsSY2dnAlcBhzrnPknmN1nztTEp1tb+bB3+RzVPSmFalqsrP+K3Hm2/CD38Y5Pts6xuBqqr8n87//I9vDOK003xL0aOPwkknNX/dMyzZa6daQHNY7HinsPWzqso/gu85mjjRJ9VVECqSO5xzFWb2OHClmY3Fz4I/ARgeLWtmo4FrgBHJBp+ShLw8v5b8hg1+SzLTRa0JKJJ7Fi+GvfeGVavqLXogsCL8JnZdgyrg4mALqQu+BgWgOSw63gngnnvg73/3Qalz/viMGXDrrf5/SRdFkZxxATANWAasBM53zs01s0OB6c65wqDcVUAP4O2YxR7uc86dl+4KtzgdO/rgc926pALQpNNASXZ7911YtQqXl8e66vZbdrdvD23qaAjfVFVzca2CAsgPo6ztt4cDDmie+uYoBaA5LjreqbjYj/2cNMnnCQ1TNZ13nh+Xkp8PZ50F++7rl0tWQCqytdWqRw9YsQJGjMh0jcA5twqolULCOTcDP0kp/L5/OuvVqqQ4ESnRqjlqEc0xwbjfeYN/zJCPHmbzZt/LOPn3fpWkRG6YAr/7nR+9kZcHV02qu3xrpwC0BSou9gHojBlb78Y2b94ajN4ZJGgx83d0ukuXbBMbEK5cufUxbOlv7LEVK3xsMXs2zJ3r8z7G8nFH507N/kYlu6U4ESmaBqpHD7WI5qTg992zT0cKPvFDQfPy/O+zLuHKhUmlARMFoC1VdAWlSy7Zmjc05Jzf99e/Jv7Q1sVSUhXNiZdKsLh8OXzzDdxxR/zJdWEPc3PPnfQ3bl2yM42DpE/Y7Z5kC2h0WFTSifEluwQB6Db9OnLzzXDhhf53eMklfjGYRL/D4mK4+WafHvGkk/S7ro8C0BYsuoJSOD500ybfRWDmP8j/HjdjoL+Tu/VWBaOZ0hyTGRrasugcvPiibxBavhy6d4fVq33rTmEhvPyy/3t5+2145hk/GS4vz/+NVVXVrEOYogQSZ3BIpDkCz7w83722efPWrrOCAli/fm3ClEfSSkS64JP5n4wOi0o6Mb5kj7DFu1MnVq70153q6vpvIsrKfJBaWel7IOsKVkUBaKsRXhTPOKNmkDFrFjz+ePznbNzox46CTy9xyin+HGvW1LwAR4MaBatevGBv+XI//nbtWh+s9ezpj3Xo4LuF993XX+j++U8/hjfMBHP88XDssf5COGuWX8Rl7VooKvKP++/vX/Ptt6FbN3/Ozp3h2299sLh2rf8d3n67vwGJBnJ5eX5fqgHeDTckPpYouHSu7sDTzL/n6uqaN0p5ef49mNW+iWrMsXbtfKtFNOgePvy7itR+GtLixHTBN2SCUZMmxpf0qQj+9Tt2TGl1LbV4p0YBaCsTvTsvK4Pp032wGf1gBr8P/Af3fff5DfwH+s9/Dp99Bs89tzX9UziuNPqBnmqLW7L/tPfffz+//e1v+fLLL+nbty9XX301o0ePrvM58QLmuuqS6rEvv4QPP/SLAzRFi111te/Seeyxxp+rrtdoiPDvJd7+/PymCwib63elGyapU0wXfOlbDQsumiwxvqRP2ALasWNKNxEpLQUrCkBbu+hY0eiHfryxo+ADzptuqn0+53xv1XnnJQ6+6uqCDQOXK67w/8S9evmu3q5dfevhkCH+5nTePFix4n4eeGAcmzb5i8XChQs555xx/POfsP/+o/n2W9hxR99iG7bcPvigXz0qNmBu02ZrV3G8lkGIH6DVdawuiYK25joWW6a5WxbDfeFKXNA8AWFdxxt6TKSWsAX0j3/k3PZ/ZS8H1cAaith96J+AnpmsnTSXmAAUkr+JUIt3anI+AP34448pidxmnHzyyVxwwQWsW7eOY445ptZzxowZw5gxY1ixYgU//vGPax0///zzOeWUU1i0aBGnn356rePjx4/nuOOO4+OPP+bcc8+tdfx3v/sdRx55JO+//z6XXHJJrePXXHMNw4cP54033uCKK66odfzmm29m6NChvPzyy1x11VW1jt95553stttuPP3009x44421jt9777306dOHhx9+mNtvv73W8UcffZSePXty9913c/fdd9c6/txzz9GxY0duu+02dt/9EZYs8cuLhQFOXl4peXlQVXUD8Ezk2R0wmx6UnQy8EjneA+ceCwLPCUBZjaPO7Uhl5X1MmgRwCfB+5Pm7EixlDZwH1JydunHjOh599Lc8+uho4P8BiyPPLwamBF+fhHMrI2MURwITg6+Ppro6OvngWOBXAFRXl1DbycAFmK0DjqkVFJqNIT9/DLCCysraf3t5eefTtu0pbNq0COdOp6jI528Nz9O27Xiqq4+juvpjoObfnp+g8zucOxL/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\n", - "text/plain": [ - "
    " - ] - }, - "metadata": {}, - "output_type": "display_data" - }, - { - "name": "stdout", - "output_type": "stream", - "text": [ - "61\n", - "Minimum validation MSE: 0.002712853325235463\n" - ] - } - ], + "execution_count": 29, + "metadata": { + "collapsed": false + }, + "outputs": [], "source": [ "\n", "from sklearn.model_selection import train_test_split\n", @@ -2944,32 +2054,14 @@ ] }, { - "cell_type": "code", - "execution_count": null, + "cell_type": "markdown", "metadata": {}, - "outputs": [], - "source": [] + "source": [ + "## XGBoost: Extreme Gradient Boosting" + ] } ], - "metadata": { - "kernelspec": { - "display_name": "Python 3", - "language": "python", - "name": "python3" - }, - "language_info": { - "codemirror_mode": { - "name": "ipython", - "version": 3 - }, - "file_extension": ".py", - "mimetype": "text/x-python", - "name": "python", - "nbconvert_exporter": "python", - "pygments_lexer": "ipython3", - "version": "3.7.4" - } - }, + "metadata": {}, "nbformat": 4, "nbformat_minor": 2 } diff --git a/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz b/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz index 866e8bc6f..cc84654c3 100644 Binary files a/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz and b/doc/pub/DecisionTrees/ipynb/ipynb-DecisionTrees-src.tar.gz differ diff --git a/doc/pub/DecisionTrees/pdf/DecisionTrees-minted.pdf b/doc/pub/DecisionTrees/pdf/DecisionTrees-minted.pdf index 3038a8757..233d1821a 100644 Binary files a/doc/pub/DecisionTrees/pdf/DecisionTrees-minted.pdf and b/doc/pub/DecisionTrees/pdf/DecisionTrees-minted.pdf differ diff --git a/doc/pub/Regression/ipynb/Regression.ipynb b/doc/pub/Regression/ipynb/Regression.ipynb index e130e0cb5..de49dad97 100644 --- a/doc/pub/Regression/ipynb/Regression.ipynb +++ b/doc/pub/Regression/ipynb/Regression.ipynb @@ -4663,9 +4663,37 @@ }, { "cell_type": "code", - "execution_count": 26, + "execution_count": 2, "metadata": {}, - "outputs": [], + "outputs": [ + { + "name": "stdout", + "output_type": "stream", + "text": [ + "Runtime: 2.03806 sec\n", + "Bootstrap Statistics :\n", + "original bias std. error\n", + " 99.7977 14.8857 99.7961 0.148807\n" + ] + }, + { + "name": "stderr", + "output_type": "stream", + "text": [ + "/usr/local/lib/python3.7/site-packages/ipykernel_launcher.py:34: MatplotlibDeprecationWarning: scipy.stats.norm.pdf\n" + ] + }, + { + "data": { + "image/png": "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\n", + "text/plain": [ + "
    " + ] + }, + "metadata": {}, + "output_type": "display_data" + } + ], "source": [ "from numpy import *\n", "from numpy.random import randint, randn\n", diff --git a/doc/src/DecisionTrees/DecisionTrees.do.txt b/doc/src/DecisionTrees/DecisionTrees.do.txt index c04e655e0..a734ad86b 100644 --- a/doc/src/DecisionTrees/DecisionTrees.do.txt +++ b/doc/src/DecisionTrees/DecisionTrees.do.txt @@ -35,6 +35,7 @@ given some assumptions, make predictions about the target feature value !split ===== A typical Decision Tree with its pertinent Jargon, Classification Problem ===== +Figure to come here. @@ -462,6 +463,23 @@ os.system(cmd) !ec +!split +===== Algorithms for Setting up Decision Trees ===== +Two algorithms stand out in the set up of decision trees: +o The CART (Classification And Regression Tree) algorithm for both classification and regression +o The ID3 algorithm based on the computation of the information gain for classification + +We discuss both algorithms with applications here. The popular library -Scikit-Learn_ uses the CART algorithm. For classification problems you can use either the _gini_ index or the _entropy_ to split a tree in two branches. + +!split +===== The CART algorithm for Classification ===== + + +!split +===== The CART algorithm for Regression ===== + + + !split ===== Computing the Gini index ===== @@ -1127,6 +1145,24 @@ plt.show() However, by aggregating many decision trees, using methods like bagging, random forests, and boosting, the predictive performance of trees can be substantially improved. + +!split +===== From a Single Tree to Many Trees, that is 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 +data. This normally means that we have a high variance. Can we reduce +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 Bagging and Pasting +o Random forests +o Boosting methods + +We discuss these methods here. + !split ===== Bagging ===== @@ -1426,9 +1462,19 @@ np.sum(y_pred == y_pred_rf) / len(y_pred) Example will be added here. -!split -===== Boosting: AdaBoost ===== +!split +===== Boosting, a Bird'e Eye ===== + + + + +!split +===== Adaptive boosting: AdaBoost, Basic Algorithm ===== + + +!split +===== AdaBoost Examples ===== !bc pycod from sklearn.ensemble import AdaBoostClassifier @@ -1461,14 +1507,17 @@ for subplot, learning_rate in ((121, 1), (122, 0.5)): save_fig("boosting_plot") plt.show() - - - !ec !split -===== Gradient Boosting ===== +===== Gradient boosting: Basic Algorithm ===== + + + + +!split +===== Gradient Boosting, Examples ===== !bc pycod np.random.seed(42) X = np.random.rand(100, 1) - 0.5 @@ -1617,3 +1666,7 @@ for n_estimators in range(1, 120): print(gbrt.n_estimators) print("Minimum validation MSE:", min_val_error) !ec + +!split +===== XGBoost: Extreme Gradient Boosting ===== +