Choix d'un modèle et valeurs des hyperparamètres

Posted on Dim 14 janvier 2018 in machine-learning

ABONNEZ-VOUS À LA NEWSLETTER !

Hello,

L'un des problèmes lorsque l'on débute en machine learning est le choix de l'algorithme (ou modèle) à utiliser. Je viens de tomber sur un article du blog de Kaggle où l'auteur partage son approche des différents problèmes à résoudre en ML. J'ai noté deux parties qui m'ont éclairé un peu plus sur le choix des modèles et des hyperparamètres à régler.

Choix d'un modèle

Il y a deux grandes familles d'algorithmes : ceux qui permettent de réaliser une prédiction (à l'aide d'une régression) et ceux qui identifie une variable parmi d'autres (la classification). Les modèles les plus courants pour réaliser ses tâches sont donc :

Classification Regression
Random Forest Random Forest
GBM GBM
Logistic Regression Linear Regression
Naive Bayes Ridge
Support Vector Machines Lasso
k-Nearest Neighbors SVR

Choix des hyperparamètres

Les hyperparamètres sont ces variables qui permettent d'affiner le fonctionnement d'un modèle de machine learning. Jusqu'à présent, j'utilisais des valeurs trouvées dans un livre ou sur des sites internet, sans trop savoir qu'est ce que je pouvais utiliser, jusqu'à quelle valeur je pouvais aller.
Bref, j'y allais à tâtons au "pif-o-mètre". Mais l'auteur partage également un tableau récapitulatif de ces différents hyperparamètres et les plages de valeurs les plus prometteuses.
Je le reprend ici :

Modèle Hyperparamètre Plage de données
Régression linéaire fit_intercept
normalize
True / False
True / False
Ridge alpha
fit_intercept
normalize
0.01, 0.1, 1.0, 10, 100
True / False
True / False
K-neighbors N_neighbors
p
2, 4, 8, 16...
2,3
SVM C
gamma
class_weight
0.001, 0.01...10...100...1000
Auto ou Random Search
Balanced, None
Régression logistique Penalty
C
L1 ou I2
0.001, 0.01...10...100
Naive Bayes aucun aucun
Lasso alpha
normalize
0.1, 1.0, 10
True / False
Random Forest n_estimators
max_depth
min_samples_split
min_samples_leaf
max_features
120, 300, 500, 800, 1200
5, 8, 15, 25, 30, None
1, 2, 5, 10, 15, 100
1, 2, 5, 10
Log2, sqrt, None
Xgboost eta
gamma
max_depth
min_child_weight
subsample
colsample_bytree
lambda
alpha
0.01, 0.015, 0.025, 0.05, 0.1
0.05-0.1, 0.3, 0.5, 0.7, 0.9, 1.0
3, 5, 7, 9, 12, 15, 17, 25
1, 3, 5, 7
0.6, 0.7, 0.8, 0.9, 1.0
0.6, 0.7, 0.8, 0.9, 1.0
0.01-0.1, 1.0, Random Search
0, 0.1, 0.5, 1.0, Random Search

J'espère que ces petits récapitulatifs vous seront autant utiles qu'à moi ;-)

A bientôt !