BoostForest
This page shows some Python demos.
ConcreteFlow.joblib, Sonar.joblib and Seeds.joblib can be downloaded at data.
BoostForest for Binary Classification
import joblib
import numpy as np
from BoostForest import BoostTreeClassifier, BoostForestClassifier
from sklearn.ensemble import RandomForestClassifier
data = joblib.load('data/Sonar.joblib')
training_X, training_y = np.r_[data['training_data'], data['eval_data']], np.r_[data['training_label'], data['eval_label']]
testing_X, testing_y = data['testing_data'], data['testing_label']
model = RandomForestClassifier(n_estimators=50)
model.fit(training_X, training_y)
print('ACC of Baseline: %.3f' % model.score(testing_X, testing_y))
model = BoostTreeClassifier(max_leafs=None, min_sample_leaf_list=5, reg_alpha_list=0.1)
model.fit(training_X, training_y)
print('ACC of BoostTree: %.3f'% model.score(testing_X, testing_y))
model = BoostForestClassifier(max_leafs=None, min_sample_leaf_list=5, reg_alpha_list=0.1, n_estimators=50)
model.fit(training_X, training_y)
print('ACC of BoostForest: %.3f' % model.score(testing_X, testing_y))
ACC of Baseline: 0.929
ACC of BoostTree: 0.833
ACC of BoostForest: 0.905
BoostForest for Multi-class Classification
import joblib
import numpy as np
from BoostForest import BoostTreeClassifier, BoostForestClassifier
from sklearn.ensemble import RandomForestClassifier
data = joblib.load('data/Seeds.joblib')
training_X, training_y = np.r_[data['training_data'], data['eval_data']], np.r_[data['training_label'], data['eval_label']]
testing_X, testing_y = data['testing_data'], data['testing_label']
model = RandomForestClassifier(n_estimators=50)
model.fit(training_X, training_y)
print('ACC of Baseline: %.3f' % model.score(testing_X, testing_y))
model = BoostTreeClassifier(max_leafs=None, min_sample_leaf_list=5, reg_alpha_list=0.1)
model.fit(training_X, training_y)
print('ACC of BoostTree: %.3f'% model.score(testing_X, testing_y))
model = BoostForestClassifier(max_leafs=None, min_sample_leaf_list=5, reg_alpha_list=0.1, n_estimators=50)
model.fit(training_X, training_y)
print('ACC of BoostForest: %.3f' % model.score(testing_X, testing_y))
ACC of Baseline: 0.881
ACC of BoostTree: 0.881
ACC of BoostForest: 0.929
BoostForest for Regression
import joblib
import numpy as np
from BoostForest import BoostTreeRegressor, BoostForestRegressor
from sklearn.ensemble import RandomForestRegressor
data = joblib.load('data/ConcreteFlow.joblib')
training_X, training_y = np.r_[data['training_data'], data['eval_data']], np.r_[data['training_label'], data['eval_label']]
testing_X, testing_y = data['testing_data'], data['testing_label']
model = RandomForestRegressor(n_estimators=50)
model.fit(training_X, training_y)
print('R^2 of Baseline: %.3f' % model.score(testing_X, testing_y))
model = BoostTreeRegressor(max_leafs=None, min_sample_leaf_list=2, reg_alpha_list=0.1)
model.fit(training_X, training_y)
print('R^2 of BoostTree: %.3f'% model.score(testing_X, testing_y))
model = BoostForestRegressor(max_leafs=None, min_sample_leaf_list=2, reg_alpha_list=0.1, n_estimators=50)
model.fit(training_X, training_y)
print('R^2 of BoostForest: %.3f' % model.score(testing_X, testing_y))
R^2 of Baseline: 0.555
R^2 of BoostTree: 0.558
R^2 of BoostForest: 0.591