J'essaie de résoudre un problème de classification binaire où 80% des données appartiennent à la classe x et 20% des données appartiennent à la classe y. Tous mes modèles (AdaBoost, réseaux neuronaux et SVC) prédisent simplement que toutes les données font partie de la classe x car c'est la précision la plus élevée qu'elles peuvent atteindre.Machine Learning: Move Treshhold
Mon objectif est d'obtenir une plus grande précision pour toutes les entrées de la classe x et peu importe le nombre d'entrées faussement classées pour faire partie de la classe y. Mon idée serait simplement de mettre des entrées dans la classe x quand le modèle est sur sur eux et de les mettre dans la classe y sinon.
Comment pourrais-je y parvenir? Existe-t-il un moyen de déplacer le seuil de sorte que seules les entrées très évidentes soient classées en classe x?
J'utilise python et sklearn
Exemple de code:
adaboost = AdaBoostClassifier(random_state=1)
adaboost.fit(X_train, y_train)
adaboost_prediction = adaboost.predict(X_test)
confusion_matrix(adaboost_prediction,y_test) outputs:
array([[ 0, 0],
[10845, 51591]])