[转载]Matlab-TreeBagger example
程序员文章站
2022-03-22 18:01:34
...
Matlab-TreeBagger example
原文链接:https://blog.csdn.net/jiandanjinxin/article/details/51003840
In MATLAB, Decision Forests go under the rather deceiving name of TreeBagger.
随机森林分类器(Random Forest)
B = TreeBagger(nTree,train_data,train_label,'Method','classification');
predict_label = predict(B,test_data);
- 1
- 2
利用随机森林做分类
Here’s a quick tutorial on how to do classification with the TreeBagger class in MATLAB.
% Since TreeBagger uses randomness we will get different results each
% time we run this.
% This makes sure we get the same results every time we run the code.
rng default
% Here we create some training data.
% The rows< represent the samples or individuals.
% The first two columns represent the individual's features.
% The last column represents the class label (what we want to predict)
trainData = [ ...
[6, 300, 1];
[3, 300, 0];
[8, 300, 1];
[11, 2000, 0];
[3, 100, 0];
[6, 1000, 0];
];
features = trainData(:,(1:2))
classLabels = trainData(:,3)
% How many trees do you want in the forest?
nTrees = 20;
% Train the TreeBagger (Decision Forest).
B = TreeBagger(nTrees,features,classLabels, 'Method', 'classification');
% Given a new individual WITH the features and WITHOUT the class label,
% what should the class label be?
newData1 = [7, 300];
% Use the trained Decision Forest.
predChar1 = B.predict(newData1);
% Predictions is a char though. We want it to be a number.
predictedClass = str2double(predChar1)
% predictedClass =
% 1
% So we predict that for our new piece of data, we will have a class label of 1
% Okay let's try another piece of data.
newData2 = [7, 1500];
predChar2 = B.predict(newData2);
predictedClass2 = str2double(predChar2)
% predictedClass2 =
% 0
% It predicts that the new class label is a 0.
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
- 14
- 15
- 16
- 17
- 18
- 19
- 20
- 21
- 22
- 23
- 24
- 25
- 26
- 27
- 28
- 29
- 30
- 31
- 32
- 33
- 34
- 35
- 36
- 37
- 38
- 39
- 40
- 41
- 42
- 43
- 44
- 45
- 46
- 47
- 48
- 49
- 50
Found out how to inspect the trees, by running the view() command. E.g. for inspecting the first tree of the example:
view(B.Trees{1})
Decision tree for classification
1 if x2<650 then node 2 elseif x2>=650 then node 3 else 0
2 if x1<4.5 then node 4 elseif x1>=4.5 then node 5 else 1
3 class = 0
4 class = 0
5 class = 1
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
By passing some more arguments to the view() command, the tree can also be visualized:
view(B.Trees{1},'mode','graph')
- 1
利用随机森林进行回归:
x=[1:1:30];
y=x.^2;
B= TreeBagger(100,x',y','Method','regression');
x2=[1:0.5:40];
y2=x2.^2;
y3=zeros(size(x2));
for i=1:size(x2,2)
y3(i)=B.predict(x2(i));
end
plot(x2,y2,'.r');
hold on;
plot(x2,y3,'.b');
title('Random Forest for Regression');
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9
- 10
- 11
- 12
- 13
There’s an excellent tutorial in the MATLAB documentation here that covers a lot more.
本文转自:
上一篇: 清华数据结构平均气温AC100
下一篇: 随机森林评估特征重要性