adele cutler utah state university · adele cutler . utah state university . random forests ....

69
Adele Cutler Utah State University Random Forests

Upload: vuliem

Post on 26-Aug-2018

219 views

Category:

Documents


0 download

TRANSCRIPT

Adele Cutler

Utah State University

Random Forests

Random Forests

Leo Breiman January 27, 1928 - July 5, 2005

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

Drawbacks of a classification tree: • Accuracy: state-of-the-art methods have

much lower error rates than a single classification tree.

• Instability: if you change the data a little, the tree picture can change a lot, so the interpretation is built on shifting sands.

Today, we can do better!

Random Forests

What are Random Forests? Grow a forest of trees: • each tree is grown on an independent

bootstrap sample from the training data.

• independently, for each node of each tree, find the best split on m randomly selected variables.

• grow deep trees. Get the prediction for a new case by voting (averaging) the predictions from all the trees.

Properties of Random Forests

1. Accurate. – In independent tests on collections of data

sets it’s neck-and-neck with the best known machine learning methods (eg SVMs).

2. Fast.

– With 100 variables, 100 trees in a forest can be grown in the same time as growing 3 single CART trees.

3. Do not overfit as we add more trees.

4. Handles – thousands of variables – many-valued categoricals – extensive missing values – badly unbalanced data sets.

5. Gives an internal estimate of test set error as

trees are added to the ensemble. 6. Gives variable importance measures and

proximities for visualization/clustering. Leo: gives a wealth of scientifically important

insights!

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

Random Forests

|protein< 45.43

bilirubin>=1.8

alkphos< 149

albumin< 3.9

albumin< 2.75

varices< 1.5

bilirubin>=1.8021/0

09/0

10/4

10/7

03/0

04/0

10/7

12/98

How do they work?

Random Forests

|protein< 45.43

bilirubin>=1.8

alkphos< 149

albumin< 3.9

albumin< 2.75

varices< 1.5

bilirubin>=1.8021/0

09/0

10/4

10/7

03/0

04/0

10/7

12/98

|protein< 45

alkphos< 171

fatigue< 1.5

bilirubin>=3.65

bilirubin< 0.5

sgot< 29protein< 66.9

age< 50

021/1

10/2

10/8

03/1

02/0

05/0

10/2

10/20

11/89

How do they work?

Random Forests

|protein< 45

alkphos< 171

fatigue< 1.5

bilirubin>=3.65

bilirubin< 0.5

sgot< 29protein< 66.9

age< 50

021/1

10/2

10/8

03/1

02/0

05/0

10/2

10/20

11/89

|protein< 45.43

bilirubin>=1.8

alkphos< 149

albumin< 3.9

albumin< 2.75

varices< 1.5

bilirubin>=1.8021/0

09/0

10/4

10/7

03/0

04/0

10/7

12/98

|protein< 45.43

prog>=1.5

fatigue< 1.5 sgot>=123.8

025/0

10/2

02/0

10/11

11/114

How do they work?

|protein< 46.5

albumin< 3.9

alkphos< 191

bilirubin< 0.65

alkphos< 71.5 varices< 1.5

firm>=1.5

021/1

10/2

10/7

02/0

11/11

02/0

10/6

10/102

Random Forests

|protein< 45

alkphos< 171

fatigue< 1.5

bilirubin>=3.65

bilirubin< 0.5

sgot< 29protein< 66.9

age< 50

021/1

10/2

10/8

03/1

02/0

05/0

10/2

10/20

11/89

|protein< 45.43

prog>=1.5

fatigue< 1.5 sgot>=123.8

025/0

10/2

02/0

10/11

11/114

How do they work?

|protein< 45.43

bilirubin>=1.8

alkphos< 149

albumin< 3.9

albumin< 2.75

varices< 1.5

bilirubin>=1.8021/0

09/0

10/4

10/7

03/0

04/0

10/7

12/98

Random Forests

|protein< 45

alkphos< 171

fatigue< 1.5

bilirubin>=3.65

bilirubin< 0.5

sgot< 29protein< 66.9

age< 50

021/1

10/2

10/8

03/1

02/0

05/0

10/2

10/20

11/89

|protein< 45.43

bilirubin>=1.8

alkphos< 149

albumin< 3.9

albumin< 2.75

varices< 1.5

bilirubin>=1.8021/0

09/0

10/4

10/7

03/0

04/0

10/7

12/98

|protein< 45.43

prog>=1.5

fatigue< 1.5 sgot>=123.8

025/0

10/2

02/0

10/11

11/114

|protein< 46.5

albumin< 3.9

alkphos< 191

bilirubin< 0.65

alkphos< 71.5 varices< 1.5

firm>=1.5

021/1

10/2

10/7

02/0

11/11

02/0

10/6

10/102

|protein< 50.5

albumin< 3.8

alkphos< 171

fatigue< 1.5

bilirubin< 0.65

alkphos< 71.5

025/0

10/2

10/5

10/8

03/1

10/9

10/102

How do they work?

Random Forests

|protein< 45

alkphos< 171

fatigue< 1.5

bilirubin>=3.65

bilirubin< 0.5

sgot< 29protein< 66.9

age< 50

021/1

10/2

10/8

03/1

02/0

05/0

10/2

10/20

11/89

|protein< 45.43

bilirubin>=1.8

alkphos< 149

albumin< 3.9

albumin< 2.75

varices< 1.5

bilirubin>=1.8021/0

09/0

10/4

10/7

03/0

04/0

10/7

12/98

|protein< 45.43

prog>=1.5

fatigue< 1.5 sgot>=123.8

025/0

10/2

02/0

10/11

11/114

|protein< 46.5

albumin< 3.9

alkphos< 191

bilirubin< 0.65

alkphos< 71.5 varices< 1.5

firm>=1.5

021/1

10/2

10/7

02/0

11/11

02/0

10/6

10/102

|protein< 50.5

albumin< 3.8

alkphos< 171

fatigue< 1.5

bilirubin< 0.65

alkphos< 71.5

025/0

10/2

10/5

10/8

03/1

10/9

10/102

|protein< 45.43

sgot>=62

prog>=1.5

bilirubin>=3.65

019/1

04/1

10/7

03/0

14/116

Leo: Looking at the trees is not going to tell us very much.

How do they work?

Illustration - Hepatitis protein and alkaline phosphate

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/114

Illustration - Hepatitis protein and alkaline phosphate

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/110 20 40 60 80 100

050

100

150

200

250

300

protein

alka

line

phos

phat

e

1

1

1

1

1

1

0

11 11

1

1

1

11

1

11

1

1

1

1

11

11

1

11

0

0

1

1

10

1

1

1

1

1

11

1111

1

1

1

11

1

1

1

11

1

1 1

1

1

1

1

1

11

0

1

11

0

11

1

1

0

1

111

1

1

1

1

1

0

0

0

1

1

0

1

10

1

1

1

01

0

1

1

1

0 1

0 11

0

1

0

11

1

1

1

1

0

10

1

11

11

1

0

101

0

1

1

0

1

1

1

0

1

1

0 1

0

0

10

0

1

10 1

11

0

Illustration - Hepatitis protein and alkaline phosphate

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/110 20 40 60 80 100

050

100

150

200

250

300

protein

alka

line

phos

phat

e

1

1

1

1

1

1

0

11 11

1

1

1

11

1

11

1

1

1

1

11

11

1

11

0

0

1

1

10

1

1

1

1

1

11

1111

1

1

1

11

1

1

1

11

1

1 1

1

1

1

1

1

11

0

1

11

0

11

1

1

0

1

111

1

1

1

1

1

0

0

0

1

1

0

1

10

1

1

1

01

0

1

1

1

0 1

0 11

0

1

0

11

1

1

1

1

0

10

1

11

11

1

0

101

0

1

1

0

1

1

1

0

1

1

0 1

0

0

10

0

1

10 1

11

0

Illustration - Hepatitis protein and alkaline phosphate

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/110 20 40 60 80 100

050

100

150

200

250

300

protein

alka

line

phos

phat

e

1

1

1

1

1

1

0

11 11

1

1

1

11

1

11

1

1

1

1

11

11

1

11

0

0

1

1

10

1

1

1

1

1

11

1111

1

1

1

11

1

1

1

11

1

1 1

1

1

1

1

1

11

0

1

11

0

11

1

1

0

1

111

1

1

1

1

1

0

0

0

1

1

0

1

10

1

1

1

01

0

1

1

1

0 1

0 11

0

1

0

11

1

1

1

1

0

10

1

11

11

1

0

101

0

1

1

0

1

1

1

0

1

1

0 1

0

0

10

0

1

10 1

11

0

Illustration - Hepatitis protein and alkaline phosphate

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/110 20 40 60 80 100

050

100

150

200

250

300

protein

alka

line

phos

phat

e

1

1

1

1

1

1

0

11 11

1

1

1

11

1

11

1

1

1

1

11

11

1

11

0

0

1

1

10

1

1

1

1

1

11

1111

1

1

1

11

1

1

1

11

1

1 1

1

1

1

1

1

11

0

1

11

0

11

1

1

0

1

111

1

1

1

1

1

0

0

0

1

1

0

1

10

1

1

1

01

0

1

1

1

0 1

0 11

0

1

0

11

1

1

1

1

0

10

1

11

11

1

0

101

0

1

1

0

1

1

1

0

1

1

0 1

0

0

10

0

1

10 1

11

0

Illustration - Hepatitis protein and alkaline phosphate

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/110 20 40 60 80 100

050

100

150

200

250

300

protein

alka

line

phos

phat

e

1

1

1

1

1

1

0

11 11

1

1

1

11

1

11

1

1

1

1

11

11

1

11

0

0

1

1

10

1

1

1

1

1

11

1111

1

1

1

11

1

1

1

11

1

1 1

1

1

1

1

1

11

0

1

11

0

11

1

1

0

1

111

1

1

1

1

1

0

0

0

1

1

0

1

10

1

1

1

01

0

1

1

1

0 1

0 11

0

1

0

11

1

1

1

1

0

10

1

11

11

1

0

101

0

1

1

0

1

1

1

0

1

1

0 1

0

0

10

0

1

10 1

11

0

0.0 0.2 0.4 0.6 0.8 1.0

0.0

0.2

0.4

0.6

0.8

1.0

0

1

1

0

1

1

0

0

1

0

0

1

1

0

0

1

1

1

00

1

0

1

1

0

1

0

1

0

0 0

1

1

1

1

1

0

0

1

1

0

1

0

01

1

1

0

1

0

0

1

0

0

0

1

0

1

110

00

1

1

0

1

1

0

10

0

1

1

0

0

1

0

0

1

0

1

1

0

1

0

0

0

0

1

0

0

0

1

0

0

0

1

1

0

0

0

0

1

11

1

0

00

0

0

11

0 0

1

0

1

0

1

1

1

0

0

1

0

0

1

0

1

1

1

10

1

1

0

1

1

1

00

1

1

0

11

11

00

0

0

0

1 1

0

0

0

0

0

0

11 1

0

1

0

1

0

0

1

0

0

01

0

111

1

10

1

0

0

10

0

1

1

0

1

1

0

1

0

0

1

0

1

1

1

0

11

0

1

0

0

1

11

0

1

1

0

0

0

1

0

1

0

1

0

1

0

0

1

1

1

1

00

0

0

1

0

0

11

0

0

11

0

0

1

1

1

1

1

0 1

01

0

1

1

0

1

0

11

0

0

1

0

1

0

0

1

1

0

1

1

1

1

0

1

0

0

0

1

1

1

1

1

0

1

0

0

11

0

1

1

1

0

1

1

1

1

0

0

0

1

11

0

0

1

1

1

0

0

1

1

0 00

1

0

0

1

0

00

1

1

1

0

10

00

1

1

0

0

0

10

0

1 1

1

1

0

0

0

1

1

1

00

1

1

0

0

1

1

0 0

1

0

0

0

1

0

0

1

1

00 0

1

1 1

1

00

1

0

0

00

1

0

1

1

0

0

0

0

0

100

0

0

1

00

0

1

1

0

0 1

000

0

10

1

1

1

0

1

1

1

0

0

1

10

11

1

0

1

0

1

1

1

1

10

0

0

1

0

1

0

1

1

10

0

0

1

1

1

0

1

1

1

0

0

0

1

0

11

0

1

0

0

0

00

1

0

10

1

0

1 1

0

1

1

0

1

0

1

1

0

0

0

1

0

0

0

0

0

1

Hard for a single tree:

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

Single Tree:

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

25 Averaged Trees:

0.2 0.4 0.6 0.8 1.0

0.2

0.4

0.6

0.8

1.0

25 Voted Trees:

Data and Underlying Function

-3 -2 -1 0 1 2 3

-1.0

-0.5

0.0

0.5

1.0

Single Regression Tree (all data)

-3 -2 -1 0 1 2 3

-1.0

-0.5

0.0

0.5

1.0

10 Regression Trees (fit to boostrap samples)

-3 -2 -1 0 1 2 3

-1.0

-0.5

0.0

0.5

1.0

Average of 100 Regression Trees (fit to bootstrap samples)

-3 -2 -1 0 1 2 3

-1.0

-0.5

0.0

0.5

1.0

Useful by-products of Random Forests

Bootstrapping → out-of-bag data → • Estimated error rate • Variable importance

Trees → proximities → • Missing value fill-in • Outlier detection • Illuminating pictures of the data

– Clusters – Structure – Outliers

Leo: We use every bit of the pig except its squeal

Out-of-bag Data

Think about a single tree from a Forest: • The tree is grown on a bootstrap sample

(“the bag”). • The remaining data are said to be “out-of-

bag” (about one-third of the cases). • The out-of-bag data serve as a test set for this

tree. Out-of-bag data give • Estimated error rate • Variable importance

The out-of-bag Error Rate Think of a single case in the training set: • It will be out-of-bag in about 1/3 of the trees. • Predict its class for each of these trees. • Its RF prediction is the most common

predicted class. If we fit 1000 trees, and a case is out-of-bag in 339 of

them, of which 303 say “class 1” 36 say “class 2” The out-of-bag error rate is the error rate of the RF predictor (can be done for each class).

The RF prediction is “1”.

Illustration – Satellite Data

• 4435 cases, 36 variables. • Test set: 2000 cases.

0 20 40 60 80 100

010

2030

40

Error rates, oob and test, sate

number of trees

error

%

oob error %test set error %

Variable Importance

For variable j, look at the out-of-bag data for each tree:

• randomly permute the values of variable j, holding the other variables fixed.

• pass these permuted data down the tree, save the classes.

Importance for variable j is error rate when _ out-of-bag variable j is permuted error rate where the error rates are averaged over the out-

of-bag data, then over the trees.

Case Study – Invasive Plants

Data courtesy of Richard Cutler, Tom Edwards 8251 cases, 30 variables, 2 classes:

– Absent (2204 cases) – Present (6047 cases)

Illustration: Invasive Plants Distance to Road relha

T-min-d

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

Proximities

Proximity of two observations is the proportion of the time that they end up in the same node. The proximities don’t just measure similarity of the variables. They take into account the importance of the variables. •Two observations that have quite different values on the variables might have large proximity if they differ only on variables that are not important.

•Two observations that have quite similar values of the variables might have small proximity if they differ on inputs that are important.

Illustration: Proximities

Synthetic data, 600 cases 2 meaningful variables and 48 “noise” variables 3 classes

Illustration: Proximities

Proximities

Proximity of two observations is the proportion of the time that they end up in the same node. Originally, we used all the data (in bag and out-of-bag). But we found that the proximities overfit the data…

Illustration: Proximities

Illustration: Proximities

Proximities

Two modifications : 1. Out-of-bag. Proximity of two observations is

the proportion of the time that they end up in the same node when they are both out-of-bag.

2. In and out. When observation i is out-of-bag, pass it down the tree and increment its proximity to all in-bag observations that end up in the same terminal node

Data 1

Data 2

Data 3

Nearest-neighbor classifiers from proximities

% error Data 1 Data 2 Data 3

Random Forests 64 23 4.7

Original 0 7 2.0

Out-of-bag 67 23 4.5

In and out 66 20 3.7

Nearest-neighbor classifiers from proximities

% Disagreement Compared to RF

Data 1 Data 2 Data 3

Original 64 16 3.0

Out-of-bag 48 5 0.5

In and out 15 3 1.0

Imputing Missing Values

Fast way: replace missing values for a given variable using the median of the non-missing values (or the most frequent, if categorical)

Better way (using proximities): 1. Start with the fast way. 2. Get proximities. 3. Replace missing values in case n by a weighted

average of non-missing values, with weights proportional to the proximity between case n and the cases with the non-missing values.

Repeat steps 2 and 3 a few times (5 or 6).

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

Learning from Unbalanced Data

Increasingly often, data sets are occurring where the class of interest has a population that is a small fraction of the total population.

For such unbalanced data, a classifier can

achieve great accuracy by classifying almost all cases into the majority class!

RF weights the classes to get similar error rates

for each class.

Case Study – Invasive Plants

Data courtesy of Richard Cutler, Tom Edwards 8251 cases, 30 variables, 2 classes:

– Absent (2204 cases) – Present (6047 cases)

The 3 most important variables are Variable 1: distance to road Variable 12: relha Variable 23: t-min-d

Initial run, m=5, equal weights

Error rate = 6% Out-of-bag confusion matrix

Absent Present

Called absent 1921 213

Called present 283 5834

Total 2204 6047 Error rate 12.8% 3.5%

Second run, m=5, weight 3 to 1

Error rate = 8.7% Out-of-bag confusion matrix

Absent Present

Called absent 2099 614

Called present 105 5433

Total 2204 6047 Error rate 4.8% 10.2%

Third run, m=5, weight 2 to 1

Error rate = 7.0% Out-of-bag confusion matrix

Absent Present

Called absent 2051 421

Called present 153 5626

Total 2204 6047 Error rate 7.0% 7.0%

Important Variables

30 variables in all Weighted: Top 3 variables are 1, 12, 23 Variable 1: distance to road Variable 12: relha Variable 23: t-min-d Unweighted: Top 3 variables are 23, 1, 17 Variable 17: t-ave-d

Variable Importance

Unweighted (blue) and weighted (black)

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

LOCAL Variable Importance

Different variables are important in different regions of the data.

If protein is high, we don’t care

about alkaline phosphate. Similarly if protein is low.

For intermediate values of protein, alkaline phosphate is important.

|protein< 45.43

protein>=26

alkphos< 171

protein< 38.59alkphos< 129.40

19/0 04/0

11/2

11/4

10/3

17/11

Estimating Local Variable Importance

For each tree, look at the out-of-bag data: • randomly permute the values of variable j,

holding the other variables fixed. • pass these permuted data down the tree, save

the classes. Importance for case i and variable j is error rate for case i out-of-bag when variable j is _ error rate permuted

where both error rates are taken over all trees for which case i is out-of-bag.

TREE

No permutation

Permute variable 1

Permute variable m

1 2 2 … 1

3 2 2 … 2

4 1 1 … 1

9 2 2 … 1

… … … … …

992 2 2 … 2

% Error 10% 11% … 35%

Variable importance for a single class 2 case

Outline

• What are random forests?

• Background • New features since Breiman (2001)

– Proximities •Imputing missing values •Clustering

– Unequal class sizes – Local variable importance – Visualization

Getting Pictures with Scaling Variables

To “look” at the data we use classical multidimensional scaling (MDS) to get a picture in 2-D or 3-D: MDS Proximities scaling variables Might see: •clusters •outliers •other unusual structure.

Visualizing using proximities

• at-a-glance information about which classes are overlapping, which classes differ

• find clusters within classes • find easy/hard/unusual cases With a good tool we can also • identify characteristics of unusual points • see which variables are locally important • see how clusters or unusual points differ

Case Study - Autism

Data courtesy of J.D.Odell and R. Torres, USU 154 subjects (308 chromosomes) 7 variables, all categorical (up to 30 categories) 2 classes:

– Normal, blue (69 subjects) – Autistic, red (85 subjects)

Case Study – Invasive Plants

Data courtesy of Richard Cutler, Tom Edwards 8251 cases, 30 variables, 2 classes:

– Absent, blue (2204 cases) – Present, red (6047 cases)

Current and Future Work

• Proximities and nonlinear MDS

• Detecting interactions

• Regression and Survival Analysis

• Visualization – regression