Je travaille sur l'interprétation de mon modèle XGBoost. Prenons, par exemple, les deux jeux de données trainInput
et trainOutput
ci-dessous, respectivement:Utilisation de XGBoost pour prédire l'importance ou le pourcentage en fonction des entrées
df.trainInputs
input1 input2 input3
0 1 0 0
1 1 1 0
2 0 1 1
..
df.trainOutputs
output
0 1
1 0
2 1
...
Les entrées de l'utilisateur ont été one-hot codées et les données de sortie est une liste de formats de sortie de l'utilisateur. J'entraîne mon modèle XGBoost avec ceux-ci, puis je prévois en me basant sur une autre matrice de données d'entrée codées à chaud unique provenant d'un autre ensemble de données. J'espère obtenir un score en pourcentage pour chaque élément de la colonne, mais lors de l'exécution de mon modèle, je ne reçois que des résultats binaires. Y a-t-il quelque chose qui me manque dans la construction de mon modèle? Le code correspondant:
df.predictInputs
input1 input2 input3
0 1 1 0
1 1 0 0
2 1 0 1
..
model = xgb.XGBClassifier()
model.fit(trainInputs, trainOutput)
y_pred = model.predict(predictOutput)
Pourquoi mettre 'predictOutput' comme argument de' model.predict'? Ne devrait-il pas être quelque chose comme 'predictOutputs = model.predict (testInputs)'? Ensuite, vous pouvez comparer 'predictOutputs' avec des sorties réelles pour voir le pourcentage correct. – frankyjuang
Désolé, c'était une faute de frappe de ma part - j'utilise 'predictInputs'. Mon souci est que le résultat de 'predictOutputs' renvoie un binaire et non un pourcentage, mais il se peut que je manque une étape. – Kam