sklearn.semi_supervised.SelfTrainingClassifier

class sklearn.semi_supervised.SelfTrainingClassifier

Clasificador de autoentrenamiento.

Esta clase permite que un clasificador supervisado funcione como un clasificador semisupervisado, permitiéndole aprender de datos no etiquetados. Para ello, predice iterativamente pseudoetiquetas para los datos no etiquetados y las añade al conjunto de entrenamiento.

El clasificador continuará iterando hasta que se alcance max_iter, o hasta que no se hayan añadido pseudoetiquetas al conjunto de entrenamiento en la iteración anterior.

Más información en el Manual de usuario.

Parámetros
base_estimatorobjeto estimator

Un objeto estimador que implementa fit y predict_proba. Al invocar el método fit se ajustará un clon del estimador pasado, que se almacenará en el atributo base_estimator_.

criterion{“threshold”, “k_best”}, default=”threshold”

El criterio de selección utilizado para seleccionar las etiquetas que se añadirán al conjunto de entrenamiento. Si es “threshold”, se añaden al conjunto de datos las pseudoetiquetas con probabilidades de predicción superiores al “threshold”. Si es “k_best”, se añaden al conjunto de datos las k_best pseudoetiquetas con mayores probabilidades de predicción. Cuando se utiliza el criterio “threshold”, se debe utilizar un well calibrated classifier.

thresholdfloat, default=0.75

El umbral de decisión para usar con criterion='threshold'. Debe estar en [0, 1). Cuando se utiliza el criterio “threshold”, se debe utilizar un well calibrated classifier.

k_bestint, default=10

La cantidad de muestras a añadir en cada iteración. Sólo se utiliza cuando criterion es k_best”.

max_iterint o None, default=10

Número máximo de iteraciones permitidas. Debe ser mayor o igual a 0. Si es None, el clasificador continuará prediciendo etiquetas hasta que no se añadan nuevas pseudoetiquetas, o hasta que todas las muestras no etiquetadas hayan sido etiquetadas.

verbose: bool, default=False

Activar la salida verbosa.

Atributos
base_estimator_objeto estimator

El estimador ajustado.

classes_ndarray o list de ndarray de forma (n_classes,)

Etiquetas de clase para cada salida. (Tomadas del base_estimator_ entrenado).

transduction_ndarray de forma (n_samples,)

Las etiquetas utilizadas para el ajuste final del clasificador, incluidas las pseudoetiquetas añadidas durante el ajuste.

labeled_iter_ndarray de forma (n_samples,)

La iteración en la que se etiquetó cada muestra. Cuando una muestra tiene la iteración 0, la muestra ya estaba etiquetada en el conjunto de datos original. Cuando una muestra tiene la iteración -1, la muestra no fue etiquetada en ninguna iteración.

n_iter_int

El número de rondas de autoentrenamiento, es decir, el número de veces que el estimador base se ajusta a variantes reetiquetadas del conjunto de entrenamiento.

termination_condition_{“max_iter”, “no_change”, “all_labeled”}

La razón por la que se detuvo el ajuste.

  • “max_iter”: n_iter_ alcanzó max_iter.

  • “no_change”: no se han predicho nuevas etiquetas.

  • “all_labeled”: todas las muestras no etiquetadas fueron etiquetadas antes de que se alcanzara max_iter.

Referencias

David Yarowsky. 1995. Unsupervised word sense disambiguation rivaling supervised methods. In Proceedings of the 33rd annual meeting on Association for Computational Linguistics (ACL “95). Association for Computational Linguistics, Stroudsburg, PA, USA, 189-196. DOI: https://doi.org/10.3115/981658.981684

Ejemplos

>>> import numpy as np
>>> from sklearn import datasets
>>> from sklearn.semi_supervised import SelfTrainingClassifier
>>> from sklearn.svm import SVC
>>> rng = np.random.RandomState(42)
>>> iris = datasets.load_iris()
>>> random_unlabeled_points = rng.rand(iris.target.shape[0]) < 0.3
>>> iris.target[random_unlabeled_points] = -1
>>> svc = SVC(probability=True, gamma="auto")
>>> self_training_model = SelfTrainingClassifier(svc)
>>> self_training_model.fit(iris.data, iris.target)
SelfTrainingClassifier(...)

Métodos

decision_function

Llama a la función de decisión del base_estimator.

fit

Ajusta este SelfTrainingClassifier a un conjunto de datos.

get_params

Obtiene los parámetros para este estimador.

predict

Predice las clases de X.

predict_log_proba

Predice la probabilidad logarítmica para cada resultado posible.

predict_proba

Predice la probabilidad de cada resultado posible.

score

Llama a score en el base_estimator.

set_params

Establece los parámetros de este estimador.

decision_function()

Llama a la función de decisión del base_estimator.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Arreglo que representa los datos.

Devuelve
yndarray de forma (n_samples, n_features)

Resultado de la función de decisión del base_estimator.

fit()

Ajusta este SelfTrainingClassifier a un conjunto de datos.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Arreglo que representa los datos.

y{array-like, sparse matrix} de forma (n_samples,)

Arreglo que representa las etiquetas. Las muestras no etiquetadas deben tener la etiqueta -1.

Devuelve
selfobject

Devuelve una instancia de sí misma.

get_params()

Obtiene los parámetros para este estimador.

Parámetros
deepbool, default=True

Si es True, devolverá los parámetros para este estimador y los subobjetos contenidos que son estimadores.

Devuelve
paramsdict

Nombres de parámetros mapeados a sus valores.

predict()

Predice las clases de X.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Arreglo que representa los datos.

Devuelve
yndarray de forma (n_samples,)

Arreglo con etiquetas predichas.

predict_log_proba()

Predice la probabilidad logarítmica para cada resultado posible.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Arreglo que representa los datos.

Devuelve
yndarray de forma (n_samples, n_features)

Arreglo con probabilidades logarítmicas de predicción.

predict_proba()

Predice la probabilidad de cada resultado posible.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Arreglo que representa los datos.

Devuelve
yndarray de forma (n_samples, n_features)

Arreglo con probabilidades de predicción.

score()

Llama a score en el base_estimator.

Parámetros
X{array-like, sparse matrix} de forma (n_samples, n_features)

Arreglo que representa los datos.

yarray-like de forma (n_samples,)

Arreglo que representa las etiquetas.

Devuelve
scorefloat

Resultado de llamar a score en el base_estimator.

set_params()

Establece los parámetros de este estimador.

El método funciona tanto con estimadores simples como en objetos anidados (como Pipeline). Estos últimos tienen parámetros de la forma <component>__<parameter> para que sea posible actualizar cada componente de un objeto anidado.

Parámetros
**paramsdict

Parámetros del estimador.

Devuelve
selfinstancia del estimador

Instancia del estimador.

Ejemplos utilizando sklearn.semi_supervised.SelfTrainingClassifier