Машинне навчання з деревоподібними моделями в Python
Elie Kawerk
Data Scientist
GB використовує вичерпний пошук.
Кожен CART навчається знаходити найкращі точки поділу та ознаки.
Це може призвести до того, що CART використовуватимуть ті самі точки поділу й, можливо, ті самі ознаки.
Кожне дерево навчається на випадковій підвибірці рядків тренувальних даних.
Вибрані приклади (40%–80% тренувального набору) відбираються без повернення.
Ознаки відбираються (без повернення) під час вибору точок поділу.
Результат: вища різноманітність ансамблю.
Ефект: додаткова варіативність ансамблю дерев.

# Import models and utility functions
from sklearn.ensemble import GradientBoostingRegressor
from sklearn.model_selection import train_test_split
from sklearn.metrics import mean_squared_error as MSE
# Set seed for reproducibility
SEED = 1
# Split dataset into 70% train and 30% test
X_train, X_test, y_train, y_test = train_test_split(X,y,
test_size=0.3,
random_state=SEED)
# Instantiate a stochastic GradientBoostingRegressor 'sgbt' sgbt = GradientBoostingRegressor(max_depth=1, subsample=0.8, max_features=0.2, n_estimators=300, random_state=SEED)# Fit 'sgbt' to the training set sgbt.fit(X_train, y_train) # Predict the test set labels y_pred = sgbt.predict(X_test)
# Evaluate test set RMSE 'rmse_test'
rmse_test = MSE(y_test, y_pred)**(1/2)
# Print 'rmse_test'
print('Test set RMSE: {:.2f}'.format(rmse_test))
Test set RMSE: 3.95
Машинне навчання з деревоподібними моделями в Python