class sklearn.ensemble.RandomForestClassifier(n_estimators=10,
criterion='gini',
max_depth=None,
min_samples_split=2,
min_samples_leaf=1,
min_weight_fraction_leaf=0.0,
max_features='auto',
max_leaf_nodes=None,
bootstrap=True,
oob_score=False,
n_jobs=1,
random_state=None,
verbose=0,
warm_start=False,
class_weight=None)
J'utilise un modèle de forêt aléatoire avec 9 échantillons et environ 7 000 attributs. Parmi ces exemples, mon classificateur reconnaît 3 catégories.
Je sais que les conditions sont loin d’être idéales, mais j’essaie de déterminer quels sont les attributs les plus importants pour la prédiction des caractéristiques. Quels paramètres seraient les meilleurs pour Tweak pour optimiser l’importance des fonctionnalités?
J'ai essayé différents n_estimators
et a remarqué que la quantité de "caractéristiques significatives" (c'est-à-dire des valeurs non nulles dans la feature_importances_
_ tableau) a augmenté de façon spectaculaire.
J'ai lu la documentation, mais si quelqu'un a de l'expérience dans ce domaine, j'aimerais savoir quels paramètres sont les meilleurs à régler et une brève explication de la raison.
D'après mon expérience, il existe trois fonctionnalités qui méritent d'être explorées avec sklearn, RandomForestClassifier, par ordre d'importance:
n_estimators
max_features
criterion
n_estimators
ne vaut vraiment pas la peine d’être optimisé. Plus vous donnerez d'estimateurs, mieux ce sera. 500 ou 1000 suffisent généralement.
max_features
vaut la peine d’être explorée pour de nombreuses valeurs différentes. Cela peut avoir un impact important sur le comportement du RF), car il détermine le nombre de fonctionnalités que chaque arbre du RF considère à chaque scission.
criterion
peut avoir un petit impact, mais généralement le réglage par défaut est correct. Si vous avez le temps, essayez-le.
Veillez à utiliser GridSearch de Sklearn (de préférence GridSearchCV, mais la taille de votre ensemble de données est trop petite) lorsque vous essayez ces paramètres.
Si je comprends bien votre question, cependant, vous n’avez que 9 échantillons et 3 classes? Vraisemblablement 3 échantillons par classe? Il est très, très probable que votre RF va sur-adapter avec ce peu de données, sauf s’il s’agit de bons enregistrements représentatifs.
Les parties cruciales sont généralement trois éléments:
This Cet article merveilleux contient une explication détaillée des paramètres réglables, de la méthode de suivi du compromis performances/vitesse, de quelques conseils pratiques et de la procédure de recherche sur grille.
n_estimators
est bon comme disent les autres. Il est également efficace pour lutter contre la suralimentation lors de l’augmentation.
Mais je pense min_sample_split
est également utile en cas de surajustement dans un jeu de données à petit échantillon mais avec de grandes entités.