the sklearn scikitlearn scikit problem multilabel multi mlp learn following example classifier are python scikit-learn multilabel-classification

python - scikitlearn - Sklearn: cómo predecir la probabilidad de todas las etiquetas de destino



text multi label classification (2)

Puedes hacer eso simplemente eliminando OneVsRestClassifer y usando el método de predict_proba de DecisionTreeClassifier . Puedes hacer lo siguiente:

clf = DecisionTreeClassifier() clf.fit(X_train, y_train) pred = clf.predict_proba(X_test)

Esto te dará una probabilidad para cada una de tus 7 clases posibles.

¡Espero que ayude!

Tengo un conjunto de datos con una variable objetivo que puede tener 7 etiquetas diferentes. Cada muestra en mi conjunto de entrenamiento tiene solo una etiqueta para la variable objetivo.

Para cada muestra, quiero calcular la probabilidad de cada una de las etiquetas de destino. Entonces mi predicción consistiría en 7 probabilidades para cada fila.

En el sitio web de sklearn, leo sobre la clasificación de etiquetas múltiples, pero esto no parece ser lo que quiero.

Probé el siguiente código, pero esto solo me da una clasificación por muestra.

from sklearn.multiclass import OneVsRestClassifier clf = OneVsRestClassifier(DecisionTreeClassifier()) clf.fit(X_train, y_train) pred = clf.predict(X_test)

¿Alguien tiene algún consejo sobre esto? ¡Gracias!


Puedes intentar usar scikit-multilearn , una extensión de sklearn que maneja la clasificación multilabel. Si sus etiquetas no están excesivamente correlacionadas, puede entrenar un clasificador por etiqueta y obtener todas las predicciones: intente (después de instalar pip install scikit-multilearn ):

from skmultilearn.problem_transform import BinaryRelevance classifier = BinaryRelevance(classifier = DecisionTreeClassifier()) # train classifier.fit(X_train, y_train) # predict predictions = classifier.predict(X_test)

Las predicciones contendrán una matriz dispersa de tamaño (n_samples, n_labels) en su caso - n_labels = 7, cada columna contiene predicción por etiqueta para todas las muestras.

En caso de que sus etiquetas estén correlacionadas, es posible que necesite métodos más sofisticados para la clasificación de etiquetas múltiples.

Descargo de responsabilidad: soy el autor de scikit-multilearn, no dude en hacer más preguntas.