Aprendizaje semi-supervisado es una situación en la que en sus datos de entrenamiento algunas de las muestras no están etiquetadas. Los estimadores semi-supervisados ​​en sklearn.semi_supervised pueden hacer uso de estos datos adicionales sin etiquetar para capturar mejor la forma de la distribución de datos subyacente y generalizar mejor a nuevas muestras. Estos algoritmos pueden funcionar bien cuando tenemos una cantidad muy pequeña de puntos etiquetados y una gran cantidad de puntos sin etiquetar.

Entradas sin etiqueta en y

Es importante asignar un identificador a los puntos sin etiquetar junto con los datos etiquetados al entrenar el modelo con el fit método. El identificador que utiliza esta implementación es el valor entero (- 1 ). Tenga en cuenta que para las etiquetas de cadena, el tipo d de y debe ser objeto para que pueda contener tanto cadenas como enteros.

Nota

Los algoritmos semisupervisados ​​deben hacer suposiciones sobre la distribución del conjunto de datos para lograr mejoras en el rendimiento. Ver aquí para más detalles.

1.14.1. Auto-entrenamiento

Esta implementación de autoaprendizaje se basa en el algoritmo 1 de Yarowsky. Usando este algoritmo, un clasificador supervisado dado puede funcionar como un clasificador semi-supervisado, lo que le permite aprender de datos no etiquetados.

SelfTrainingClassifier se puede llamar con cualquier clasificador que implemente predict_proba, pasado como parámetro base_classifier. En cada iteración, el base_classifier predice etiquetas para las muestras sin etiquetar y agrega un subconjunto de estas etiquetas al conjunto de datos etiquetado.

La elección de este subconjunto está determinada por el criterio de selección. Esta selección se puede hacer usando un threshold en las probabilidades de predicción, o eligiendo el k_best muestras de acuerdo con las probabilidades de predicción.

Las etiquetas utilizadas para el ajuste final, así como la iteración en la que se etiquetó cada muestra, están disponibles como atributos. El opcional max_iter El parámetro especifica cuántas veces se ejecuta el bucle como máximo.

los max_iter El parámetro puede establecerse en None, lo que hace que el algoritmo se repita hasta que todas las muestras tengan etiquetas o no se seleccionen nuevas muestras en esa iteración.

Nota

Al utilizar el clasificador de autoformación, el calibración del clasificador es importante.

Ejemplos de

  • Efecto de la variación del umbral de autoformación
  • Límite de decisión de clasificadores semi-supervisados ​​versus SVM en el conjunto de datos Iris

Referencias

1

David Yarowsky. 1995. Desambiguación del sentido de las palabras sin supervisión que rivaliza con los métodos supervisados. En Actas de la 33ª reunión anual sobre la Asociación de Lingüística Computacional (ACL ’95). Asociación de Lingüística Computacional, Stroudsburg, PA, EE. UU., 189-196. DOI: https://doi.org/10.3115/981658.981684

1.14.2. Propagación de etiquetas

La propagación de etiquetas denota algunas variaciones de los algoritmos de inferencia de gráficos semi-supervisados.

Algunas características disponibles en este modelo:
  • Utilizado para tareas de clasificación
  • Métodos de kernel para proyectar datos en espacios dimensionales alternativos

scikit-learn proporciona dos modelos de propagación de etiquetas: LabelPropagation y LabelSpreading. Ambos funcionan construyendo un gráfico de similitud sobre todos los elementos del conjunto de datos de entrada.

../_images/sphx_glr_plot_label_propagation_structure_0011.png

Una ilustración de la propagación de etiquetas: la estructura de las observaciones sin etiquetar es coherente con la estructura de la clase y, por lo tanto, la etiqueta de la clase se puede propagar a las observaciones sin etiquetar del conjunto de entrenamiento.

LabelPropagation y LabelSpreading difieren en modificaciones a la matriz de similitud que grafica y el efecto de sujeción en las distribuciones de etiquetas. La sujeción permite que el algoritmo cambie el peso de los datos etiquetados del terreno real hasta cierto punto. los LabelPropagation El algoritmo realiza una sujeción dura de las etiquetas de entrada, lo que significa ( alpha = 0 ). Este factor de sujeción se puede relajar, para decir ( alpha = 0.2 ), lo que significa que siempre retendremos el 80 por ciento de nuestra distribución de etiquetas original, pero el algoritmo puede cambiar su confianza en la distribución dentro del 20 por ciento.

LabelPropagation utiliza la matriz de similitud sin procesar construida a partir de los datos sin modificaciones. A diferencia de, LabelSpreading minimiza una función de pérdida que tiene propiedades de regularización, como tal, a menudo es más resistente al ruido. El algoritmo itera en una versión modificada del gráfico original y normaliza los pesos de los bordes calculando la matriz laplaciana del gráfico normalizado. Este procedimiento también se utiliza en Agrupación espectral.

Los modelos de propagación de etiquetas tienen dos métodos de kernel integrados. La elección del kernel afecta tanto a la escalabilidad como al rendimiento de los algoritmos. Están disponibles los siguientes:

  • rbf ( exp (- gamma | xy | ^ 2), gamma> 0 )). (gama) se especifica mediante la palabra clave gamma.
  • knn (1[x’ in kNN(x)])). (k ) se especifica mediante la palabra clave n_neighbors.

El kernel RBF producirá un gráfico completamente conectado que está representado en la memoria por una matriz densa. Esta matriz puede ser muy grande y combinada con el costo de realizar un cálculo de multiplicación de matriz completa para cada iteración del algoritmo puede conducir a tiempos de ejecución prohibitivamente largos. Por otro lado, el kernel KNN producirá una matriz dispersa mucho más amigable con la memoria que puede reducir drásticamente los tiempos de ejecución.

Ejemplos de

  • Límite de decisión de clasificadores semi-supervisados ​​versus SVM en el conjunto de datos Iris
  • Propagación de etiquetas aprendiendo una estructura compleja
  • Dígitos de propagación de etiquetas: demostración de rendimiento
  • Aprendizaje activo de dígitos de propagación de etiquetas

Referencias

[2] Yoshua Bengio, Olivier Delalleau, Nicolas Le Roux. En Aprendizaje semi-supervisado (2006), págs. 193-216

[3] Olivier Delalleau, Yoshua Bengio, Nicolas Le Roux. Inducción eficiente de funciones no paramétricas en el aprendizaje semi-supervisado. AISTAT 2005 https://research.microsoft.com/en-us/people/nicolasl/efficient_ssl.pdf