4 votes

Obtenir la probabilité comme 0 ou 1 dans KNN (predict_proba)

J'ai utilisé KNN de sklearn et prédit les étiquettes en utilisant predict_proba. Je m'attendais à ce que les valeurs soient comprises entre 0 et 1 puisqu'elles indiquent la probabilité d'une classe particulière. Mais je n'obtiens que 0 et 1.

J'ai mis de grandes valeurs de k également mais sans gain. Bien que je n'aie que 1000 échantillons avec des caractéristiques autour de 200 et que la matrice soit largement éparse.

Quelqu'un peut-il me dire quelle pourrait être la solution ici ?

0voto

Bilal Dadanlar Points 597

La raison peut en être le manque de variété des données dans les ensembles de formation et de test.

Si les caractéristiques d'un échantillon n'existent que dans une classe particulière et que ses caractéristiques n'existent dans aucun échantillon des autres classes de l'ensemble d'apprentissage, alors cet échantillon sera prédit comme appartenant à cette classe avec une probabilité de 100% (1) et de 0% (0) pour les autres classes. Sinon, disons que vous avez 2 classes et que vous testez un échantillon comme suit knn.predict_proba(sample) et s'attendre à un résultat comme [[0.47, 0.53]] Le résultat donnera 1 au total dans les deux cas.

Si c'est le cas, essayez de générer votre propre échantillon de test qui a des caractéristiques de plus d'une classe d'objets dans l'ensemble de formation.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X