La métrique de performance du modèle utilisée pour évaluer le modèle de régression linéaire est le coefficient de détermination. Il est connu sous le nom de "R au carré", et noté "R2" [ 1, 2 ].
R2 est essentiellement la proportion de variation dans la variable de réponse qui est prévisible à partir des variables indépendantes. Autrement dit, plus la valeur de R2 est grande, plus le modèle explique la variabilité.
Généralement, R2 varie de 0 à 1; cependant, il peut y avoir des cas où des valeurs négatives peuvent être obtenues, voir [1] pour plus de détails.
Dans ce cas, un score R2 de '0,75' est obtenu.
123456#Computes the R2 score
R2=hgr.score( test_hdf, key='ID',
features=['MedInc', 'HouseAge', 'AveRooms', 'AveBedrms', 'Population', 'AveOccup', 'Latitude', 'Longitude'],
label='Target')
R2Résultat :
0.7535287346593224
Références
Améliorer le modèle HGBT avec une recherche de paramètres optimale
Pour améliorer le modèle HGBT, une recherche des valeurs de paramètre optimales pour l'objet de régression linéaire est lancée. ParamSearchCV effectue une recherche exhaustive ou aléatoire sur des valeurs de paramètres spécifiées avec validation croisée (CV) [1]
Références
[1] Package d'algorithme SAP hana_ml.algorithms.pal : ParamSearchCV
123456789101112131415161718from hana_ml.algorithms.pal.model_selection import ParamSearchCV
hgbr=HybridGradientBoostingRegressor(n_estimators=50, subsample = 0.8, col_subsample_tree=0.7)
ps_hgr3=ParamSearchCV(estimator=hgbr, search_strategy='grid',
param_grid={ 'learning_rate': [0.05, 0.1, 0.025, 0.04, 0.01],
'max_depth': [4, 5, 6, 7, 8, 10],
'split_threshold': [0.1, 0.4, 0.7, 1],
'min_samples_leaf': [2,3,4,5,6],
'col_subsample_split': [0.2,0.4,0.6, 0.8] },
train_control={"fold_num": 10, "evaluation_metric": 'rmse'},
scoring='mae'
)
ps_hgr3.set_scoring_metric('mae')
ps_hgr3.set_resampling_method('cv')
ps_hgr3.fit(data=train_hdf, features=['MedInc', 'HouseAge', 'AveRooms', 'AveBedrms', 'Population', 'AveOccup', 'Latitude', 'Longitude'],
label='Target', key='ID')Contrôle des paramètres optimisés
Le mappage entre les noms de paramètres optimisés (comme indiqué à gauche) et les noms de paramètre HybridGradientBoostingRegressor (comme indiqué à droite) est fourni ci-dessous :
- MAX_DEPTH = prof. max.
- ETA = learning_rate
- COL_SAMPLE_RATE_BYSPLIT = col_subsample_split
- NODE_SIZE = min_samples_leaf
- GAMMA = split_seuil
1ps_hgr3.estimator.selected_param_.collect()| PARAM_NAME | INT_VALUE | DOUBLE_VALUE | STRING_VALUE | |
|---|---|---|---|---|
| 0 | MAX_DEPTH | 10.0 | NaN | Aucune |
| 1 | HAE | NaN | 0,1 | Aucune |
| 2 | COL_SAMPLE_RATE_BYSPLIT | NaN | 0,6 | Aucune |
| 3 | NODE_SIZE | 6.0 | NaN | Aucune |
| 4 | GAMMA | NaN | 0,1 | Aucune |
12# Optimal parameter values selected
hgbt_params = dict(n_estimators = 50, subsample = 0.8, col_subsample_tree=0.7, split_method = 'exact', fold_num=10, resampling_method = 'cv', evaluation_metric = 'rmse', ref_metric=['mae'], max_depth=10, learning_rate=0.1, col_subsample_split=0.6, min_samples_leaf=6, split_threshold=0.1)