SlideShare a Scribd company logo
1 of 44
Download to read offline
Accelerating the Random Forest algorithm for commodity parallel
hardware
Mark Seligman
Suiji
August 5, 2015
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 1 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 2 / 44
Outline
Introduction
Random Forests
Implementation
Examples and anecdotes
Ongoing work
Summary and future work
Q & A
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 3 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 4 / 44
Arborist project
Began as proprietary implementation of Random Forest (TM) algorithm.
Aim was enhanced performance across a wide variety of hardware, data and workflows.
GPU acceleration a key concern.
Open-sourced and rewritten following dissolution of venture.
Arborist is the project name.
Pyborist is the Python implementation, under development.
Rborist is the R package.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 5 / 44
Project design goals
Language-agnostic, compiled core.
Minimal reliance on call-backs and external libraries.
Minimize data movement.
Ready extensibility.
Common source base for all spins.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 6 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 7 / 44
Binary decision trees, briefly
Prediction method presenting a series of true/false questions about the data.
Answer to given question determines which (of two) questions to pose next.
Successive T/F branching relationship justifies “tree” nomenclature.
Different data take different paths through the tree.
Terminal (or “leaf”) node in path reports score for that path (and data).
Can build single tree and refine: “boosting”.
Can build “forest” of (typically) 100 − 1000 trees.
Overall average (regression) or plurality (classification) derived from each tree’s score.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 8 / 44
Random Forests
Random Forest is trademarked, registered to Leo Breiman (dec.) and Adele Cutler.
Predicts or validates vector of data (“response”)
Numerical: “regression”.
Categorical: “classification”.
Trains on design matrix of observations: “predictor” columns.
Columns individually either numerical or categorical (“factors”).
Trees trained on randomly-selected (“bagged”) set of matrix rows.
Predictors sampled randomly throughout training - separately chosen for each node.
Validation on held-out subset: different for each tree.
Independent prediction on separately-provided test sets.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 9 / 44
Training as tree building
Begins with a root node, together with the bagged set.
Bagging: can view as indicator set of row indices, with multiplicities.
Subnode construction (“splitting”) is driven by information content.
Nodes with sufficient information branch into two new subnodes.
Branch is annotated with splitting criterion, determining its sense.
If no splitting, the node is terminal: leaf.
Tree construction can proceed depth-first, breadth-first, ...
Construction terminates when frontier nodes exhaust information content.
User may also constrain termination: node count, tree depth, node width, ...
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 10 / 44
Building trees: splitting as conditioning
Splitting has the consequence of partitioning the training data into progressively smaller
subsets.
Operationally, the splitting criterion conditions the data into complementary subspaces.
The left successor inherits the subspace satisfying the criterion.
The right successor inherits its complement.
From this perspective, the root node trains on all bagged observations.
Successor nodes, similarly, train on data conditioned by the parent.
As we’ll see, the conditioned subspaces can be characterized as row sections of the design.
In other words, the splitting criteria define successive bipartitions on row indices.
From this perspective, then, the algorithm would seem to terminate naturally.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 11 / 44
Splitting: predictor perspective
Splitting criteria are formulated as order or subset relations with respect to some
predictor:
E.g., numerical predictor: p <= 3.2 ? branch left : branch right.
Factor predictor: q ∈ {3, 8, 17} ? branch left : branch right.
At a given node, candidate criteria obtained over randomly-sampled set of predictors.
Each predictor evaluates a series of (L/R) trial subsets:
For numerical predictors, trials are distinct cuts in the linear order.
For factors, trials are partitions over the runs of identical predictor values.
Criterion derived from trial maximizing “impurity” (separation) on response.
The predictor/criterion pair best “separating” the response is chosen for splitting.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 12 / 44
Predictor ordering ⇐⇒ row index permutation
Trial score is a function only of response - evaluated according to predictor order.
Irrespective of predictor, a given node is scored over a unique set of response indices.
The role of the predictor is to dictate the order to walk the indices.
That is, predictor values play no role in scoring the trials.
Hence only predictor ranks (and runs), affect scoring.
Each trial, in particular the “winner”, determines a bipartition of predictor ranks.
The predictor ranks, in turn, define a bipartition of row indices:
One set of indices characterizes the left branch.
Its complement characterizes the right branch.
Throughout training, then, the frontier nodes train over a (highly-disconnected) partition
of the original bagged data, as row sections.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 13 / 44
Trial generation: 4 cases, divergent work loads
Predictor
Response Numerical Factor
Regression Index walk Index walk → run sets
(weighted variance) Run set sort
Run set walk: O(# runs)
Classification Index walk Index walk → run sets
(Gini gain) Run set walk: O(2# runs)
Index walks are linear in node width, but differ in state maintained.
Power set walks resort to sampling above ∼ 10 runs.
Binary classification walks runs linearly.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 14 / 44
Aside: performance is data-dependent
As with linear algebra, the appropriate treatment depends on the contents of the (design)
matrix: SVD, for example.
E.g., regression has regular access patterns and tends to run very quickly.
Constraints in response or predictor values - may benefit from numerical simplification.
Will ties play a significant role? - sparse data can train very quickly.
Custom implementations rely heavily on the answer to such questions.
It therefore makes sense to strive for extensibility and ease of customization.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 15 / 44
Data locality
Computers store data in hierarchy:
Registers.
Caches (L1 - L3).
RAM.
Disk.
CPU operates on registers.
Loading registers consumes many clock cycles, depending upon position in hierarchy.
Performance therefore best when data is spatially (hence temporally) local.
Similarly, loops over vectors most efficient when data in consecutive iterations separated
by predictable and short(ish) strides.
“Regular” access patterns allow compiler, and hence hardware, to do a good job.
Regularity is crucial for GPUs, which excel at performing identical operations on
contiguous data.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 16 / 44
Algorithm: observations
Splitting is “embarrassingly parallel”: trials can be evaluated on all nodes in the frontier,
and all candidate predictors, at the same time.
However, ranks corresponding to a node’s row indices vary with predictor.
Naive solution is to sort observations at each splitting step.
Approach used by early implementations.
Does not scale well.
Predictor ordering used repeatedly: suggests pre-ordering.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 17 / 44
Algorithm: cont.
With pre-ordering, index walk accumulates per-node state by row index lookup.
Original Arborist approach.
No data locality, as index lookup is irregular.
Large state budget: must be swapped as indexed node changes.
“Restaging”: maintain separately-sorted state vectors for each predictor, by node.
Begin with pre-sorted list, update via (stable) bipartition at each node.
Current Arborist approach. Data locality improves with tree depth.
Only modest amount of state to move: 16 bytes to include doubles.
Splitting becomes quite regular: next datum prefetchable by hardware.
Each node/predictor pair restageable on SIMD hardware
Partition using parallel scan.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 18 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 19 / 44
Organization
Compiled code with various language front-ends.
R was the driving language, but Python now under active development.
Front-end “bridges” wherever possible: Rcpp, Cython.
Minimal use of front-end call-backs: PRNG, sampling, sorting.
Common code base also supports GPU version, largely as a subtyped extension.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 20 / 44
Look and feel
Guided by existing packages. Many options the same, or similar.
Supports only numeric and factor data: leaves type-wrangling to the user.
Predictor sampling: continuous predProb (Bernoulli) - vs. discrete max features (w/o
replacement).
Breadth-first implementation; introduces specification of terminating level.
Introduces information-based stopping criterion, minRatio.
Unlimited (essentially) factor cardinality: blessing as well as curse.
Many useful package options remain to be implemented.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 21 / 44
Distinguishing features
Decoupling of splitting from row-lookup: restaging + highly regular node walk.
Both stages benefit from resulting data locality and regularity.
Restaging maintained as stable partition (amenable to SIMD parallelization).
Training produces lightweight, serial “pre-tree”.
Rich intermediate state: e.g., frontier maps reveal quantiles.
Amenability to workflow internalization: “loopless” behavior.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 22 / 44
Training wheels, early experience
Began with R front end.
Compare performance with randomForest package.
“Medium” data: large, but in-memory.
Speedups typically observed as row counts approach 500 − 1000.
Linear scaling with # predictors, # trees, as expected.
Log-linear with # rows, also as expected.
Regression much easier to accelerate than classification.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 23 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 24 / 44
Feature trials: Bernoulli vs. w/o replacement
German credit-scoring data1: binary response, 1000 rows.
7 numerical predictors.
13 categorical predictors, cardinalities range from 2 to 10.
Graphs to follow compare misprediction, execution times at various predictor selections.
Accuracy, as function of trial metric:
Bernoulli (blue) and w/o replacement (green) appear to track well.
Performance of Rborist generally 2-3 ×, in this regime.
1 Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml].
Irvine, CA: University of California, School of Information and Computer Science.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 25 / 44
q q
q
q
q
q q
q
q
q
q
q
q
q
q q
q
q
q
5 10 15
0.200.220.240.260.280.300.32
Misprediction: predProb (Rborist) vs. mtry (RF)
mtry (default = 4) or equivalent (default = 4.8)
Mispredictionrate
q
q
q
q q q
q
q
q
q
q
q
q
q
q
q
q
q
q
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 26 / 44
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q
q q
q
q
5 10 15
2.02.53.03.54.04.5
Execution time ratios: randomForest / Rborist
(equivalent) mtry
Ratio
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 27 / 44
Instructive user account
Arborist performance problem noted in recent blog post.2
Airline flight-delay data tested on various RF packages.
8 predictors; various row counts: 104, 105, 106, 107.
Slowdown appears due to error in large-cardinality sampling.
In fact, Github version had already repiared salient problem.
Nonetheless, suggests improvements either implemented or to-be.
2 “Benchmarking Random Forest Implementations”, Szilard Pafka, DataScience.LA, May 19,
2015.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 28 / 44
Account, cont.
Splitting now parallelized across all pairs, rather than by-predictor.
Class weighting to treat unbalanced data.
Binary classification with high-cardinality factors:
Replaces sampling with n log n method.
Points to need for more, and broader, testing.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 29 / 44
GPU: pilot study with University of Washington team
GWAS data provided by Dept. Global Health 3.
100 samples, up to ∼ 106
predictors.
Binary response: HIV detected or not.
Purely categorical predictors with cardinality = 3: SNPs.
Bespoke CPU and GPU versions spun off for the data set.
Each tree trained (almost) entirely on GPU.
Results illustrate potential - for highly regular data sets.
Drop-off on right is an artefact from copying data.frame.
3 Courtesy of Lingappam lab.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 30 / 44
CPU vs. GPU: execution time ratios of bespoke versions
q
q
q
q
q
q
q
q
0 50000 100000 150000 200000 250000
1520253035404550
CPU vs GPU: timing ratios (1000 trees)
Predictor count
Ratio
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 31 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 32 / 44
GPU-centric packages
ad hoc version not scalable as implemented: rewritten.
Restaging now implemented as stable partition via parallel scan.
Nvidia engineers concur with this solution, anticipate good scaling.
In general, though, data need not be so regular as this.
Mixed predictor types and multiple cardinalities present load-balancing challenges.
Dynamic parallelism option available for irregular workloads.
Predictor selection thwarts data locality: adjacent columns not necessarily used.
Lowest-hanging fruit may be isolated special cases such as SNP data.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 33 / 44
GPU vs. CPU
Highly regular regression/numeric case may perform well on GPU.
On-GPU transpose: restaging, splitting employ different major orderings.
For now: split on CPU and restage (highly regular) on GPU.
Multiple trees can be restaged at once via software pipeline:
Masks transfer latency by overlapping training of multiple trees.
Keeps CPU busy by dispatching less-regular tasks to multiple cores.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 34 / 44
CPU-level parallelism
Original work focused on predictor-level parallelism, emphasizing wider data sets.
Node-level parallelism has emerged as equal player (e.g., flight-delay data).
But with high core count and closely-spaced data, false sharing looms as potential threat.
Infrastructure now in place to support hierarchical parellization:
Head node orders predictors and scatters copies.
Multiple nodes each train blocks of trees on multicore hardware.
GPU participation also possible.
Head node gathers pretrees, builds forest, validates.
Remaining implementation chiefly a matter of scheduling and tuning.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 35 / 44
CPU: load balancing
Mixed factor, numerical predictors offer greatest challenge, especially for classification.
In some cases, may benefit from parallelizing trial generations themselves.
Irrespective of data types, inter-level pass following splitting is inherently sequential.
May make sense to pipeline: overlap splitting of one tree with interlevel of another.
N.B.: Much more performance-testing is needed to investigate these scenarios.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 36 / 44
Additional projects
Sparse internal representation.
Inchoate; main challenge is defining interface.
NA handling.
Some variants easier to implement than others.
Post-processing: facilitate use by other utilities.
Feature contributions.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 37 / 44
Pyborist: goals
Encourage flexing, testing by broader ML community.
Honor precedent of scikit-learn: features, style.
Provide R-like abstractions: data frames and factors.
Attempt to minimize impact of host language on user data.
Stress software organization and design.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 38 / 44
Pyborist: key ingredients
Cython bridge: emphasis on compilation.
Pandas: “dataframe” and “category” essential.
NumPy: PRNG, sort and sampling call-backs.
Considered other options: SWIG, CFFI, ctypes ...
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 39 / 44
1 Outline
2 Introduction
3 Random Forests
4 Implementation
5 Examples and anecdotes: R
6 Ongoing work
7 Summary and future work
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 40 / 44
Summary
Only a few rigid design principles:
Constrain data movement.
Language-agnostic, compiled core implementation.
Common source base.
Plenty of opportunities for improvement.
Load balancing appears to be lowest-hanging fruit: both CPU and GPU.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 41 / 44
Longer term
Solicit help, comments from the community.
Expanded use of templating: large, small types.
Out-of-memory support.
Generalized dispatch, fat binaries.
Plugins for other splitting methods: non-Gini.
Internalize additional workflows.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 42 / 44
Acknowledgments
Stephen Elston, Quanta Analytics.
Abraham Flaxman, Dept. Global Health, U.W.
Seattle PuPPy.
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 43 / 44
Thank you
mseligman@suiji.org
@suijidata
blog.suiji.org (“Mood Stochastic”)
github.com/suiji/Arborist
Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 44 / 44

More Related Content

What's hot

Conistency of random forests
Conistency of random forestsConistency of random forests
Conistency of random forestsHoang Nguyen
 
Machine learning basics using trees algorithm (Random forest, Gradient Boosting)
Machine learning basics using trees algorithm (Random forest, Gradient Boosting)Machine learning basics using trees algorithm (Random forest, Gradient Boosting)
Machine learning basics using trees algorithm (Random forest, Gradient Boosting)Parth Khare
 
Machine Learning - Decision Trees
Machine Learning - Decision TreesMachine Learning - Decision Trees
Machine Learning - Decision TreesRupak Roy
 
Introduction to Some Tree based Learning Method
Introduction to Some Tree based Learning MethodIntroduction to Some Tree based Learning Method
Introduction to Some Tree based Learning MethodHonglin Yu
 
Introduction to Random Forest
Introduction to Random Forest Introduction to Random Forest
Introduction to Random Forest Rupak Roy
 
Supervised and unsupervised learning
Supervised and unsupervised learningSupervised and unsupervised learning
Supervised and unsupervised learningAmAn Singh
 
Understanding random forests
Understanding random forestsUnderstanding random forests
Understanding random forestsMarc Garcia
 
13 random forest
13 random forest13 random forest
13 random forestVishal Dutt
 
Understanding the Machine Learning Algorithms
Understanding the Machine Learning AlgorithmsUnderstanding the Machine Learning Algorithms
Understanding the Machine Learning AlgorithmsRupak Roy
 
Understanding Bagging and Boosting
Understanding Bagging and BoostingUnderstanding Bagging and Boosting
Understanding Bagging and BoostingMohit Rajput
 
WEKA: Algorithms The Basic Methods
WEKA: Algorithms The Basic MethodsWEKA: Algorithms The Basic Methods
WEKA: Algorithms The Basic MethodsDataminingTools Inc
 
WEKA: Credibility Evaluating Whats Been Learned
WEKA: Credibility Evaluating Whats Been LearnedWEKA: Credibility Evaluating Whats Been Learned
WEKA: Credibility Evaluating Whats Been LearnedDataminingTools Inc
 
RapidMiner: Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid MinerRapidMiner: Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid MinerDataminingTools Inc
 
Machine Learning Decision Tree Algorithms
Machine Learning Decision Tree AlgorithmsMachine Learning Decision Tree Algorithms
Machine Learning Decision Tree AlgorithmsRupak Roy
 
Data Reduction Stratergies
Data Reduction StratergiesData Reduction Stratergies
Data Reduction StratergiesAnjaliSoorej
 
Machine learning session6(decision trees random forrest)
Machine learning   session6(decision trees random forrest)Machine learning   session6(decision trees random forrest)
Machine learning session6(decision trees random forrest)Abhimanyu Dwivedi
 
Supervised learning and Unsupervised learning
Supervised learning and Unsupervised learning Supervised learning and Unsupervised learning
Supervised learning and Unsupervised learning Usama Fayyaz
 
Machine learning session8(svm nlp)
Machine learning   session8(svm nlp)Machine learning   session8(svm nlp)
Machine learning session8(svm nlp)Abhimanyu Dwivedi
 

What's hot (20)

Conistency of random forests
Conistency of random forestsConistency of random forests
Conistency of random forests
 
Machine learning basics using trees algorithm (Random forest, Gradient Boosting)
Machine learning basics using trees algorithm (Random forest, Gradient Boosting)Machine learning basics using trees algorithm (Random forest, Gradient Boosting)
Machine learning basics using trees algorithm (Random forest, Gradient Boosting)
 
Machine Learning - Decision Trees
Machine Learning - Decision TreesMachine Learning - Decision Trees
Machine Learning - Decision Trees
 
Introduction to Some Tree based Learning Method
Introduction to Some Tree based Learning MethodIntroduction to Some Tree based Learning Method
Introduction to Some Tree based Learning Method
 
Introduction to Random Forest
Introduction to Random Forest Introduction to Random Forest
Introduction to Random Forest
 
Decision tree
Decision treeDecision tree
Decision tree
 
Supervised and unsupervised learning
Supervised and unsupervised learningSupervised and unsupervised learning
Supervised and unsupervised learning
 
Understanding random forests
Understanding random forestsUnderstanding random forests
Understanding random forests
 
13 random forest
13 random forest13 random forest
13 random forest
 
Understanding the Machine Learning Algorithms
Understanding the Machine Learning AlgorithmsUnderstanding the Machine Learning Algorithms
Understanding the Machine Learning Algorithms
 
Understanding Bagging and Boosting
Understanding Bagging and BoostingUnderstanding Bagging and Boosting
Understanding Bagging and Boosting
 
WEKA: Algorithms The Basic Methods
WEKA: Algorithms The Basic MethodsWEKA: Algorithms The Basic Methods
WEKA: Algorithms The Basic Methods
 
WEKA: Credibility Evaluating Whats Been Learned
WEKA: Credibility Evaluating Whats Been LearnedWEKA: Credibility Evaluating Whats Been Learned
WEKA: Credibility Evaluating Whats Been Learned
 
RapidMiner: Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid MinerRapidMiner: Data Mining And Rapid Miner
RapidMiner: Data Mining And Rapid Miner
 
Machine Learning Decision Tree Algorithms
Machine Learning Decision Tree AlgorithmsMachine Learning Decision Tree Algorithms
Machine Learning Decision Tree Algorithms
 
Data Reduction Stratergies
Data Reduction StratergiesData Reduction Stratergies
Data Reduction Stratergies
 
Primer on major data mining algorithms
Primer on major data mining algorithmsPrimer on major data mining algorithms
Primer on major data mining algorithms
 
Machine learning session6(decision trees random forrest)
Machine learning   session6(decision trees random forrest)Machine learning   session6(decision trees random forrest)
Machine learning session6(decision trees random forrest)
 
Supervised learning and Unsupervised learning
Supervised learning and Unsupervised learning Supervised learning and Unsupervised learning
Supervised learning and Unsupervised learning
 
Machine learning session8(svm nlp)
Machine learning   session8(svm nlp)Machine learning   session8(svm nlp)
Machine learning session8(svm nlp)
 

Similar to Accelerating Random Forest Algorithm for Parallel Hardware

Algoritma Random Forest beserta aplikasi nya
Algoritma Random Forest beserta aplikasi nyaAlgoritma Random Forest beserta aplikasi nya
Algoritma Random Forest beserta aplikasi nyabatubao
 
IRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification AlgorithmsIRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification AlgorithmsIRJET Journal
 
IRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification AlgorithmsIRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification AlgorithmsIRJET Journal
 
Applied machine learning: Insurance
Applied machine learning: InsuranceApplied machine learning: Insurance
Applied machine learning: InsuranceGregg Barrett
 
Data Science - Part V - Decision Trees & Random Forests
Data Science - Part V - Decision Trees & Random Forests Data Science - Part V - Decision Trees & Random Forests
Data Science - Part V - Decision Trees & Random Forests Derek Kane
 
Handling Imbalanced Data: SMOTE vs. Random Undersampling
Handling Imbalanced Data: SMOTE vs. Random UndersamplingHandling Imbalanced Data: SMOTE vs. Random Undersampling
Handling Imbalanced Data: SMOTE vs. Random UndersamplingIRJET Journal
 
Chap_05_Data_Collection_and_Analysis.ppt
Chap_05_Data_Collection_and_Analysis.pptChap_05_Data_Collection_and_Analysis.ppt
Chap_05_Data_Collection_and_Analysis.pptRosaHildaFlix
 
Machine Learning.pdf
Machine Learning.pdfMachine Learning.pdf
Machine Learning.pdfBeyaNasr1
 
Comparative study of various supervisedclassification methodsforanalysing def...
Comparative study of various supervisedclassification methodsforanalysing def...Comparative study of various supervisedclassification methodsforanalysing def...
Comparative study of various supervisedclassification methodsforanalysing def...eSAT Publishing House
 
Artificial intyelligence and machine learning introduction.pptx
Artificial intyelligence and machine learning introduction.pptxArtificial intyelligence and machine learning introduction.pptx
Artificial intyelligence and machine learning introduction.pptxChandrakalaV15
 
IRJET - Rainfall Forecasting using Weka Data Mining Tool
IRJET - Rainfall Forecasting using Weka Data Mining ToolIRJET - Rainfall Forecasting using Weka Data Mining Tool
IRJET - Rainfall Forecasting using Weka Data Mining ToolIRJET Journal
 
An Introduction to Random Forest and linear regression algorithms
An Introduction to Random Forest and linear regression algorithmsAn Introduction to Random Forest and linear regression algorithms
An Introduction to Random Forest and linear regression algorithmsShouvic Banik0139
 
IMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHES
IMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHESIMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHES
IMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHESVikash Kumar
 
Mis End Term Exam Theory Concepts
Mis End Term Exam Theory ConceptsMis End Term Exam Theory Concepts
Mis End Term Exam Theory ConceptsVidya sagar Sharma
 
Review of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & PredictionReview of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & PredictionIRJET Journal
 
SURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASET
SURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASETSURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASET
SURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASETEditor IJMTER
 

Similar to Accelerating Random Forest Algorithm for Parallel Hardware (20)

Algoritma Random Forest beserta aplikasi nya
Algoritma Random Forest beserta aplikasi nyaAlgoritma Random Forest beserta aplikasi nya
Algoritma Random Forest beserta aplikasi nya
 
IRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification AlgorithmsIRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification Algorithms
 
IRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification AlgorithmsIRJET- Performance Evaluation of Various Classification Algorithms
IRJET- Performance Evaluation of Various Classification Algorithms
 
Applied machine learning: Insurance
Applied machine learning: InsuranceApplied machine learning: Insurance
Applied machine learning: Insurance
 
Data Science - Part V - Decision Trees & Random Forests
Data Science - Part V - Decision Trees & Random Forests Data Science - Part V - Decision Trees & Random Forests
Data Science - Part V - Decision Trees & Random Forests
 
AI Algorithms
AI AlgorithmsAI Algorithms
AI Algorithms
 
Handling Imbalanced Data: SMOTE vs. Random Undersampling
Handling Imbalanced Data: SMOTE vs. Random UndersamplingHandling Imbalanced Data: SMOTE vs. Random Undersampling
Handling Imbalanced Data: SMOTE vs. Random Undersampling
 
Chap_05_Data_Collection_and_Analysis.ppt
Chap_05_Data_Collection_and_Analysis.pptChap_05_Data_Collection_and_Analysis.ppt
Chap_05_Data_Collection_and_Analysis.ppt
 
PythonML.pptx
PythonML.pptxPythonML.pptx
PythonML.pptx
 
A STUDY OF DECISION TREE ENSEMBLES AND FEATURE SELECTION FOR STEEL PLATES FAU...
A STUDY OF DECISION TREE ENSEMBLES AND FEATURE SELECTION FOR STEEL PLATES FAU...A STUDY OF DECISION TREE ENSEMBLES AND FEATURE SELECTION FOR STEEL PLATES FAU...
A STUDY OF DECISION TREE ENSEMBLES AND FEATURE SELECTION FOR STEEL PLATES FAU...
 
Machine Learning.pdf
Machine Learning.pdfMachine Learning.pdf
Machine Learning.pdf
 
Comparative study of various supervisedclassification methodsforanalysing def...
Comparative study of various supervisedclassification methodsforanalysing def...Comparative study of various supervisedclassification methodsforanalysing def...
Comparative study of various supervisedclassification methodsforanalysing def...
 
Artificial intyelligence and machine learning introduction.pptx
Artificial intyelligence and machine learning introduction.pptxArtificial intyelligence and machine learning introduction.pptx
Artificial intyelligence and machine learning introduction.pptx
 
IRJET - Rainfall Forecasting using Weka Data Mining Tool
IRJET - Rainfall Forecasting using Weka Data Mining ToolIRJET - Rainfall Forecasting using Weka Data Mining Tool
IRJET - Rainfall Forecasting using Weka Data Mining Tool
 
Bank loan purchase modeling
Bank loan purchase modelingBank loan purchase modeling
Bank loan purchase modeling
 
An Introduction to Random Forest and linear regression algorithms
An Introduction to Random Forest and linear regression algorithmsAn Introduction to Random Forest and linear regression algorithms
An Introduction to Random Forest and linear regression algorithms
 
IMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHES
IMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHESIMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHES
IMAGE CLASSIFICATION USING DIFFERENT CLASSICAL APPROACHES
 
Mis End Term Exam Theory Concepts
Mis End Term Exam Theory ConceptsMis End Term Exam Theory Concepts
Mis End Term Exam Theory Concepts
 
Review of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & PredictionReview of Algorithms for Crime Analysis & Prediction
Review of Algorithms for Crime Analysis & Prediction
 
SURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASET
SURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASETSURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASET
SURVEY ON CLASSIFICATION ALGORITHMS USING BIG DATASET
 

More from PyData

Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...PyData
 
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif WalshUnit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif WalshPyData
 
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake BolewskiThe TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake BolewskiPyData
 
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...PyData
 
Deploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne BauerDeploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne BauerPyData
 
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaGraph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaPyData
 
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...PyData
 
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroRESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroPyData
 
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...PyData
 
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven LottAvoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven LottPyData
 
Words in Space - Rebecca Bilbro
Words in Space - Rebecca BilbroWords in Space - Rebecca Bilbro
Words in Space - Rebecca BilbroPyData
 
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...PyData
 
Pydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica PuertoPydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica PuertoPyData
 
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...PyData
 
Extending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will AydExtending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will AydPyData
 
Measuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen HooverMeasuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen HooverPyData
 
What's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper SeaboldWhat's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper SeaboldPyData
 
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...PyData
 
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-WardSolving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-WardPyData
 
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...PyData
 

More from PyData (20)

Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
Michal Mucha: Build and Deploy an End-to-end Streaming NLP Insight System | P...
 
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif WalshUnit testing data with marbles - Jane Stewart Adams, Leif Walsh
Unit testing data with marbles - Jane Stewart Adams, Leif Walsh
 
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake BolewskiThe TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
The TileDB Array Data Storage Manager - Stavros Papadopoulos, Jake Bolewski
 
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...Using Embeddings to Understand the Variance and Evolution of Data Science... ...
Using Embeddings to Understand the Variance and Evolution of Data Science... ...
 
Deploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne BauerDeploying Data Science for Distribution of The New York Times - Anne Bauer
Deploying Data Science for Distribution of The New York Times - Anne Bauer
 
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam LermaGraph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
Graph Analytics - From the Whiteboard to Your Toolbox - Sam Lerma
 
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
Do Your Homework! Writing tests for Data Science and Stochastic Code - David ...
 
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo MazzaferroRESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
RESTful Machine Learning with Flask and TensorFlow Serving - Carlo Mazzaferro
 
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
Mining dockless bikeshare and dockless scootershare trip data - Stefanie Brod...
 
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven LottAvoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
Avoiding Bad Database Surprises: Simulation and Scalability - Steven Lott
 
Words in Space - Rebecca Bilbro
Words in Space - Rebecca BilbroWords in Space - Rebecca Bilbro
Words in Space - Rebecca Bilbro
 
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...End-to-End Machine learning pipelines for Python driven organizations - Nick ...
End-to-End Machine learning pipelines for Python driven organizations - Nick ...
 
Pydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica PuertoPydata beautiful soup - Monica Puerto
Pydata beautiful soup - Monica Puerto
 
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
1D Convolutional Neural Networks for Time Series Modeling - Nathan Janos, Jef...
 
Extending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will AydExtending Pandas with Custom Types - Will Ayd
Extending Pandas with Custom Types - Will Ayd
 
Measuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen HooverMeasuring Model Fairness - Stephen Hoover
Measuring Model Fairness - Stephen Hoover
 
What's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper SeaboldWhat's the Science in Data Science? - Skipper Seabold
What's the Science in Data Science? - Skipper Seabold
 
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
Applying Statistical Modeling and Machine Learning to Perform Time-Series For...
 
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-WardSolving very simple substitution ciphers algorithmically - Stephen Enright-Ward
Solving very simple substitution ciphers algorithmically - Stephen Enright-Ward
 
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
The Face of Nanomaterials: Insightful Classification Using Deep Learning - An...
 

Recently uploaded

RA-11058_IRR-COMPRESS Do 198 series of 1998
RA-11058_IRR-COMPRESS Do 198 series of 1998RA-11058_IRR-COMPRESS Do 198 series of 1998
RA-11058_IRR-COMPRESS Do 198 series of 1998YohFuh
 
Call Girls In Dwarka 9654467111 Escorts Service
Call Girls In Dwarka 9654467111 Escorts ServiceCall Girls In Dwarka 9654467111 Escorts Service
Call Girls In Dwarka 9654467111 Escorts ServiceSapana Sha
 
Brighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data StorytellingBrighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data StorytellingNeil Barnes
 
Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...
Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...
Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...Sapana Sha
 
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...limedy534
 
Dubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls DubaiDubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls Dubaihf8803863
 
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfKantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfSocial Samosa
 
PKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptxPKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptxPramod Kumar Srivastava
 
04242024_CCC TUG_Joins and Relationships
04242024_CCC TUG_Joins and Relationships04242024_CCC TUG_Joins and Relationships
04242024_CCC TUG_Joins and Relationshipsccctableauusergroup
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024thyngster
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhijennyeacort
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFAAndrei Kaleshka
 
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort servicejennyeacort
 
From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...Florian Roscheck
 
Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝soniya singh
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degreeyuu sss
 
Customer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxCustomer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxEmmanuel Dauda
 
RadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfRadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfgstagge
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdfHuman37
 

Recently uploaded (20)

RA-11058_IRR-COMPRESS Do 198 series of 1998
RA-11058_IRR-COMPRESS Do 198 series of 1998RA-11058_IRR-COMPRESS Do 198 series of 1998
RA-11058_IRR-COMPRESS Do 198 series of 1998
 
Call Girls In Dwarka 9654467111 Escorts Service
Call Girls In Dwarka 9654467111 Escorts ServiceCall Girls In Dwarka 9654467111 Escorts Service
Call Girls In Dwarka 9654467111 Escorts Service
 
Brighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data StorytellingBrighton SEO | April 2024 | Data Storytelling
Brighton SEO | April 2024 | Data Storytelling
 
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
Deep Generative Learning for All - The Gen AI Hype (Spring 2024)
 
Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...
Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...
Saket, (-DELHI )+91-9654467111-(=)CHEAP Call Girls in Escorts Service Saket C...
 
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
Effects of Smartphone Addiction on the Academic Performances of Grades 9 to 1...
 
Dubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls DubaiDubai Call Girls Wifey O52&786472 Call Girls Dubai
Dubai Call Girls Wifey O52&786472 Call Girls Dubai
 
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdfKantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
Kantar AI Summit- Under Embargo till Wednesday, 24th April 2024, 4 PM, IST.pdf
 
PKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptxPKS-TGC-1084-630 - Stage 1 Proposal.pptx
PKS-TGC-1084-630 - Stage 1 Proposal.pptx
 
04242024_CCC TUG_Joins and Relationships
04242024_CCC TUG_Joins and Relationships04242024_CCC TUG_Joins and Relationships
04242024_CCC TUG_Joins and Relationships
 
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
Consent & Privacy Signals on Google *Pixels* - MeasureCamp Amsterdam 2024
 
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝DelhiRS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
RS 9000 Call In girls Dwarka Mor (DELHI)⇛9711147426🔝Delhi
 
How we prevented account sharing with MFA
How we prevented account sharing with MFAHow we prevented account sharing with MFA
How we prevented account sharing with MFA
 
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
9711147426✨Call In girls Gurgaon Sector 31. SCO 25 escort service
 
From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...From idea to production in a day – Leveraging Azure ML and Streamlit to build...
From idea to production in a day – Leveraging Azure ML and Streamlit to build...
 
Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝
Call Girls in Defence Colony Delhi 💯Call Us 🔝8264348440🔝
 
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
毕业文凭制作#回国入职#diploma#degree澳洲中央昆士兰大学毕业证成绩单pdf电子版制作修改#毕业文凭制作#回国入职#diploma#degree
 
Customer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptxCustomer Service Analytics - Make Sense of All Your Data.pptx
Customer Service Analytics - Make Sense of All Your Data.pptx
 
RadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdfRadioAdProWritingCinderellabyButleri.pdf
RadioAdProWritingCinderellabyButleri.pdf
 
20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf20240419 - Measurecamp Amsterdam - SAM.pdf
20240419 - Measurecamp Amsterdam - SAM.pdf
 

Accelerating Random Forest Algorithm for Parallel Hardware

  • 1. Accelerating the Random Forest algorithm for commodity parallel hardware Mark Seligman Suiji August 5, 2015 Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 1 / 44
  • 2. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 2 / 44
  • 3. Outline Introduction Random Forests Implementation Examples and anecdotes Ongoing work Summary and future work Q & A Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 3 / 44
  • 4. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 4 / 44
  • 5. Arborist project Began as proprietary implementation of Random Forest (TM) algorithm. Aim was enhanced performance across a wide variety of hardware, data and workflows. GPU acceleration a key concern. Open-sourced and rewritten following dissolution of venture. Arborist is the project name. Pyborist is the Python implementation, under development. Rborist is the R package. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 5 / 44
  • 6. Project design goals Language-agnostic, compiled core. Minimal reliance on call-backs and external libraries. Minimize data movement. Ready extensibility. Common source base for all spins. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 6 / 44
  • 7. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 7 / 44
  • 8. Binary decision trees, briefly Prediction method presenting a series of true/false questions about the data. Answer to given question determines which (of two) questions to pose next. Successive T/F branching relationship justifies “tree” nomenclature. Different data take different paths through the tree. Terminal (or “leaf”) node in path reports score for that path (and data). Can build single tree and refine: “boosting”. Can build “forest” of (typically) 100 − 1000 trees. Overall average (regression) or plurality (classification) derived from each tree’s score. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 8 / 44
  • 9. Random Forests Random Forest is trademarked, registered to Leo Breiman (dec.) and Adele Cutler. Predicts or validates vector of data (“response”) Numerical: “regression”. Categorical: “classification”. Trains on design matrix of observations: “predictor” columns. Columns individually either numerical or categorical (“factors”). Trees trained on randomly-selected (“bagged”) set of matrix rows. Predictors sampled randomly throughout training - separately chosen for each node. Validation on held-out subset: different for each tree. Independent prediction on separately-provided test sets. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 9 / 44
  • 10. Training as tree building Begins with a root node, together with the bagged set. Bagging: can view as indicator set of row indices, with multiplicities. Subnode construction (“splitting”) is driven by information content. Nodes with sufficient information branch into two new subnodes. Branch is annotated with splitting criterion, determining its sense. If no splitting, the node is terminal: leaf. Tree construction can proceed depth-first, breadth-first, ... Construction terminates when frontier nodes exhaust information content. User may also constrain termination: node count, tree depth, node width, ... Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 10 / 44
  • 11. Building trees: splitting as conditioning Splitting has the consequence of partitioning the training data into progressively smaller subsets. Operationally, the splitting criterion conditions the data into complementary subspaces. The left successor inherits the subspace satisfying the criterion. The right successor inherits its complement. From this perspective, the root node trains on all bagged observations. Successor nodes, similarly, train on data conditioned by the parent. As we’ll see, the conditioned subspaces can be characterized as row sections of the design. In other words, the splitting criteria define successive bipartitions on row indices. From this perspective, then, the algorithm would seem to terminate naturally. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 11 / 44
  • 12. Splitting: predictor perspective Splitting criteria are formulated as order or subset relations with respect to some predictor: E.g., numerical predictor: p <= 3.2 ? branch left : branch right. Factor predictor: q ∈ {3, 8, 17} ? branch left : branch right. At a given node, candidate criteria obtained over randomly-sampled set of predictors. Each predictor evaluates a series of (L/R) trial subsets: For numerical predictors, trials are distinct cuts in the linear order. For factors, trials are partitions over the runs of identical predictor values. Criterion derived from trial maximizing “impurity” (separation) on response. The predictor/criterion pair best “separating” the response is chosen for splitting. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 12 / 44
  • 13. Predictor ordering ⇐⇒ row index permutation Trial score is a function only of response - evaluated according to predictor order. Irrespective of predictor, a given node is scored over a unique set of response indices. The role of the predictor is to dictate the order to walk the indices. That is, predictor values play no role in scoring the trials. Hence only predictor ranks (and runs), affect scoring. Each trial, in particular the “winner”, determines a bipartition of predictor ranks. The predictor ranks, in turn, define a bipartition of row indices: One set of indices characterizes the left branch. Its complement characterizes the right branch. Throughout training, then, the frontier nodes train over a (highly-disconnected) partition of the original bagged data, as row sections. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 13 / 44
  • 14. Trial generation: 4 cases, divergent work loads Predictor Response Numerical Factor Regression Index walk Index walk → run sets (weighted variance) Run set sort Run set walk: O(# runs) Classification Index walk Index walk → run sets (Gini gain) Run set walk: O(2# runs) Index walks are linear in node width, but differ in state maintained. Power set walks resort to sampling above ∼ 10 runs. Binary classification walks runs linearly. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 14 / 44
  • 15. Aside: performance is data-dependent As with linear algebra, the appropriate treatment depends on the contents of the (design) matrix: SVD, for example. E.g., regression has regular access patterns and tends to run very quickly. Constraints in response or predictor values - may benefit from numerical simplification. Will ties play a significant role? - sparse data can train very quickly. Custom implementations rely heavily on the answer to such questions. It therefore makes sense to strive for extensibility and ease of customization. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 15 / 44
  • 16. Data locality Computers store data in hierarchy: Registers. Caches (L1 - L3). RAM. Disk. CPU operates on registers. Loading registers consumes many clock cycles, depending upon position in hierarchy. Performance therefore best when data is spatially (hence temporally) local. Similarly, loops over vectors most efficient when data in consecutive iterations separated by predictable and short(ish) strides. “Regular” access patterns allow compiler, and hence hardware, to do a good job. Regularity is crucial for GPUs, which excel at performing identical operations on contiguous data. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 16 / 44
  • 17. Algorithm: observations Splitting is “embarrassingly parallel”: trials can be evaluated on all nodes in the frontier, and all candidate predictors, at the same time. However, ranks corresponding to a node’s row indices vary with predictor. Naive solution is to sort observations at each splitting step. Approach used by early implementations. Does not scale well. Predictor ordering used repeatedly: suggests pre-ordering. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 17 / 44
  • 18. Algorithm: cont. With pre-ordering, index walk accumulates per-node state by row index lookup. Original Arborist approach. No data locality, as index lookup is irregular. Large state budget: must be swapped as indexed node changes. “Restaging”: maintain separately-sorted state vectors for each predictor, by node. Begin with pre-sorted list, update via (stable) bipartition at each node. Current Arborist approach. Data locality improves with tree depth. Only modest amount of state to move: 16 bytes to include doubles. Splitting becomes quite regular: next datum prefetchable by hardware. Each node/predictor pair restageable on SIMD hardware Partition using parallel scan. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 18 / 44
  • 19. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 19 / 44
  • 20. Organization Compiled code with various language front-ends. R was the driving language, but Python now under active development. Front-end “bridges” wherever possible: Rcpp, Cython. Minimal use of front-end call-backs: PRNG, sampling, sorting. Common code base also supports GPU version, largely as a subtyped extension. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 20 / 44
  • 21. Look and feel Guided by existing packages. Many options the same, or similar. Supports only numeric and factor data: leaves type-wrangling to the user. Predictor sampling: continuous predProb (Bernoulli) - vs. discrete max features (w/o replacement). Breadth-first implementation; introduces specification of terminating level. Introduces information-based stopping criterion, minRatio. Unlimited (essentially) factor cardinality: blessing as well as curse. Many useful package options remain to be implemented. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 21 / 44
  • 22. Distinguishing features Decoupling of splitting from row-lookup: restaging + highly regular node walk. Both stages benefit from resulting data locality and regularity. Restaging maintained as stable partition (amenable to SIMD parallelization). Training produces lightweight, serial “pre-tree”. Rich intermediate state: e.g., frontier maps reveal quantiles. Amenability to workflow internalization: “loopless” behavior. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 22 / 44
  • 23. Training wheels, early experience Began with R front end. Compare performance with randomForest package. “Medium” data: large, but in-memory. Speedups typically observed as row counts approach 500 − 1000. Linear scaling with # predictors, # trees, as expected. Log-linear with # rows, also as expected. Regression much easier to accelerate than classification. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 23 / 44
  • 24. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 24 / 44
  • 25. Feature trials: Bernoulli vs. w/o replacement German credit-scoring data1: binary response, 1000 rows. 7 numerical predictors. 13 categorical predictors, cardinalities range from 2 to 10. Graphs to follow compare misprediction, execution times at various predictor selections. Accuracy, as function of trial metric: Bernoulli (blue) and w/o replacement (green) appear to track well. Performance of Rborist generally 2-3 ×, in this regime. 1 Lichman, M. (2013). UCI Machine Learning Repository [http://archive.ics.uci.edu/ml]. Irvine, CA: University of California, School of Information and Computer Science. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 25 / 44
  • 26. q q q q q q q q q q q q q q q q q q q 5 10 15 0.200.220.240.260.280.300.32 Misprediction: predProb (Rborist) vs. mtry (RF) mtry (default = 4) or equivalent (default = 4.8) Mispredictionrate q q q q q q q q q q q q q q q q q q q Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 26 / 44
  • 27. q q q q q q q q q q q q q q q q q q q 5 10 15 2.02.53.03.54.04.5 Execution time ratios: randomForest / Rborist (equivalent) mtry Ratio Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 27 / 44
  • 28. Instructive user account Arborist performance problem noted in recent blog post.2 Airline flight-delay data tested on various RF packages. 8 predictors; various row counts: 104, 105, 106, 107. Slowdown appears due to error in large-cardinality sampling. In fact, Github version had already repiared salient problem. Nonetheless, suggests improvements either implemented or to-be. 2 “Benchmarking Random Forest Implementations”, Szilard Pafka, DataScience.LA, May 19, 2015. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 28 / 44
  • 29. Account, cont. Splitting now parallelized across all pairs, rather than by-predictor. Class weighting to treat unbalanced data. Binary classification with high-cardinality factors: Replaces sampling with n log n method. Points to need for more, and broader, testing. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 29 / 44
  • 30. GPU: pilot study with University of Washington team GWAS data provided by Dept. Global Health 3. 100 samples, up to ∼ 106 predictors. Binary response: HIV detected or not. Purely categorical predictors with cardinality = 3: SNPs. Bespoke CPU and GPU versions spun off for the data set. Each tree trained (almost) entirely on GPU. Results illustrate potential - for highly regular data sets. Drop-off on right is an artefact from copying data.frame. 3 Courtesy of Lingappam lab. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 30 / 44
  • 31. CPU vs. GPU: execution time ratios of bespoke versions q q q q q q q q 0 50000 100000 150000 200000 250000 1520253035404550 CPU vs GPU: timing ratios (1000 trees) Predictor count Ratio Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 31 / 44
  • 32. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 32 / 44
  • 33. GPU-centric packages ad hoc version not scalable as implemented: rewritten. Restaging now implemented as stable partition via parallel scan. Nvidia engineers concur with this solution, anticipate good scaling. In general, though, data need not be so regular as this. Mixed predictor types and multiple cardinalities present load-balancing challenges. Dynamic parallelism option available for irregular workloads. Predictor selection thwarts data locality: adjacent columns not necessarily used. Lowest-hanging fruit may be isolated special cases such as SNP data. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 33 / 44
  • 34. GPU vs. CPU Highly regular regression/numeric case may perform well on GPU. On-GPU transpose: restaging, splitting employ different major orderings. For now: split on CPU and restage (highly regular) on GPU. Multiple trees can be restaged at once via software pipeline: Masks transfer latency by overlapping training of multiple trees. Keeps CPU busy by dispatching less-regular tasks to multiple cores. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 34 / 44
  • 35. CPU-level parallelism Original work focused on predictor-level parallelism, emphasizing wider data sets. Node-level parallelism has emerged as equal player (e.g., flight-delay data). But with high core count and closely-spaced data, false sharing looms as potential threat. Infrastructure now in place to support hierarchical parellization: Head node orders predictors and scatters copies. Multiple nodes each train blocks of trees on multicore hardware. GPU participation also possible. Head node gathers pretrees, builds forest, validates. Remaining implementation chiefly a matter of scheduling and tuning. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 35 / 44
  • 36. CPU: load balancing Mixed factor, numerical predictors offer greatest challenge, especially for classification. In some cases, may benefit from parallelizing trial generations themselves. Irrespective of data types, inter-level pass following splitting is inherently sequential. May make sense to pipeline: overlap splitting of one tree with interlevel of another. N.B.: Much more performance-testing is needed to investigate these scenarios. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 36 / 44
  • 37. Additional projects Sparse internal representation. Inchoate; main challenge is defining interface. NA handling. Some variants easier to implement than others. Post-processing: facilitate use by other utilities. Feature contributions. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 37 / 44
  • 38. Pyborist: goals Encourage flexing, testing by broader ML community. Honor precedent of scikit-learn: features, style. Provide R-like abstractions: data frames and factors. Attempt to minimize impact of host language on user data. Stress software organization and design. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 38 / 44
  • 39. Pyborist: key ingredients Cython bridge: emphasis on compilation. Pandas: “dataframe” and “category” essential. NumPy: PRNG, sort and sampling call-backs. Considered other options: SWIG, CFFI, ctypes ... Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 39 / 44
  • 40. 1 Outline 2 Introduction 3 Random Forests 4 Implementation 5 Examples and anecdotes: R 6 Ongoing work 7 Summary and future work Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 40 / 44
  • 41. Summary Only a few rigid design principles: Constrain data movement. Language-agnostic, compiled core implementation. Common source base. Plenty of opportunities for improvement. Load balancing appears to be lowest-hanging fruit: both CPU and GPU. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 41 / 44
  • 42. Longer term Solicit help, comments from the community. Expanded use of templating: large, small types. Out-of-memory support. Generalized dispatch, fat binaries. Plugins for other splitting methods: non-Gini. Internalize additional workflows. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 42 / 44
  • 43. Acknowledgments Stephen Elston, Quanta Analytics. Abraham Flaxman, Dept. Global Health, U.W. Seattle PuPPy. Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 43 / 44
  • 44. Thank you mseligman@suiji.org @suijidata blog.suiji.org (“Mood Stochastic”) github.com/suiji/Arborist Mark Seligman (Suiji) Accelerating the Random Forest algorithm for commodity parallel hardware August 5, 2015 44 / 44