FAQ¶
Pourquoi FitRank ne remplit-il pas lui-même les valeurs manquantes, et n'encode-t-il pas le texte ?¶
Parce qu'un choix silencieux change vos résultats sans vous le dire. Remplir
les âges avec la moyenne ou la médiane, supprimer des lignes, transformer des
catégories en nombres : chaque choix est une décision sur vos données. FitRank
signale le problème, avec le YAML qui le corrige, et vous décidez. Ce que vous
avez déclaré est ce qui a tourné, et le config.yaml enregistré le montre.
Pourquoi classer sur le score de validation croisée et pas sur le score de test ?¶
Le jeu de test doit rester une estimation honnête de ce qui se passe sur de nouvelles données. S'il choisissait le gagnant, il ferait partie de l'entraînement, et son score serait trop optimiste. Le score de test est affiché pour vérifier que le gagnant tient la route, jamais pour le choisir.
Deux modèles sont presque à égalité. Lequel choisir ?¶
Regardez cv std. Quand deux scores sont plus proches que leur cv std, les
données ne permettent pas de les départager : un autre random_state pourrait
les inverser. Prenez le plus simple ou le plus rapide, ou celui dont le score
de test tient le mieux.
Comment retrouver exactement les mêmes résultats ?¶
Gardez le même random_state (42 par défaut), les mêmes données et les mêmes
versions des bibliothèques. Chaque dossier de résultats enregistre la
configuration telle que FitRank l'a lue (config.yaml) et les versions
utilisées (metadata.json). n_jobs ne change pas les résultats, seulement
le temps.
n_jobs: -1 est plus lent sur mes données. C'est normal ?¶
Oui, sur de petits jeux de données. Lancer les processus coûte plus que le
travail qu'ils se partagent. Ça devient rentable avec beaucoup de combinaisons
ou beaucoup de lignes : l'exemple Titanic passe de 26 s à 15 s sur 12 cœurs.
Sinon, gardez la valeur par défaut 1.
Puis-je utiliser XGBoost, LightGBM ou mon propre estimateur ?¶
Oui, s'il suit l'API de scikit-learn. Donnez le chemin de sa classe et autorisez son paquet :
project:
allowed_modules: [xgboost]
models:
- class: xgboost.XGBClassifier
Voir Modèles.
Un modèle a échoué. Que se passe-t-il ?¶
Les autres continuent. Le modèle en échec est classé en dernier, marqué
failed, avec son erreur dans le classement. L'exécution échoue (code de
sortie 3) seulement quand tous les candidats ont échoué.
FitRank avertit que ma cible « looks categorical ». Est-ce une erreur ?¶
Non, l'exécution continue. La cible contient du texte, des vrai/faux ou deux
valeurs, mais la tâche est regression : vous voulez sans doute
task: classification. L'avertissement inverse apparaît pour une
classification sur un nombre qui a beaucoup de valeurs différentes. C'est vous
qui décidez : l'avertissement ne bloque jamais.
Quelle métrique choisir ?¶
Par défaut, la classification est classée avec f1_weighted (il fonctionne
quel que soit le nombre de classes, mais cache une classe rare) et la
régression avec la RMSE (une erreur dans l'unité de la cible). Choisissez celle qui correspond à l'erreur qui vous coûte
le plus, par exemple recall_weighted quand rater un cas positif est pire
qu'une fausse alerte. N'importe quel
nom de scorer scikit-learn
fonctionne. Le guide Choisir une métrique les compare, avec
des exemples.
FitRank traite-t-il les images ou le texte libre ?¶
Pas encore : FitRank travaille sur des données tabulaires (CSV, Excel, Parquet,
DataFrame). Laissez les colonnes de texte libre de côté avec data.exclude,
ou transformez-les en colonnes numériques avant.