Cómo saber si mis datos son linealmente separables

Modelo de perceptrón único

Se puede usar un solo modelo de perceptrón para verificar si los datos son linealmente separables o no. Aplique el algoritmo de casco convexo a los datos para averiguar si se superponen o no. Si se superponen, desafortunadamente no son linealmente separables.

Aquí se superponen. Esas líneas son cascos.

Fuente de la imagen: – https://www.researchgate.net/fig…

Máquinas de vectores soporte

Otra forma es aplicar SVM con núcleos. El algoritmo intenta dividir los datos usando hiperplanos. Esté atento a los residuos. Si está presente, desafortunadamente los datos no son linealmente separables.

Nota: – El izquierdo es no lineal y el derecho es linealmente separable. Diferentes datos necesitan diferentes núcleos y un buen valor de parámetro se ajusta a ellos.

Fuente de la imagen: – Ayúdame a comprender la separabilidad lineal en un SVM binario

Visualización de datos

Esto es un poco informal en comparación con los dos métodos anteriores. El enfoque es como siempre tradicional. Intenta trazar los datos en una trama 2D y busca el patrón. Use la intuición para determinar si es separable con una línea recta o no. Ejemplo,

Fuente de la imagen: – Prueba de separabilidad lineal

Referencias,

  1. Prueba de separabilidad lineal
  2. Ayúdame a entender la separabilidad lineal en un SVM binario
  3. Casco convexo – Wikipedia

Un solo perceptrón puede separar datos separables linealmente.

teorema:
dos conjuntos son linealmente separables si su casco convexo no tiene intersección.

Ejemplo:
estos conjuntos no son linealmente separables
se puede trazar su casco convexo en MATLAB con la función CONVHULL.
Para obtener más información, consulte el ejercicio 1. El libro PRML de Bishop.

La prueba de convergencia para un perceptrón proporciona un límite superior en el número de iteraciones necesarias para encontrar un límite de decisión que separe los datos (dado que los datos son linealmente separables). Por lo tanto, sugeriría ejecutar el algoritmo de aprendizaje de perceptrón en sus datos, si sus datos son linealmente separables, el algoritmo se detendrá después de ejecutarse durante un tiempo.

Otra estrategia podría ser entrenar un SVM lineal a partir de una parte de los datos y realizar pruebas en el resto de sus datos. Si obtiene cero error de tren y prueba, puede asumir con seguridad que sus datos son linealmente separables.

Creo que lo que está buscando es la máquina de vectores de soporte utilizada con la función del núcleo. Como ya está familiarizado con los planos y los hiperplanos, cuando usa SVM con un núcleo RBF lineal, asigna la función a un espacio dimensional superior e intenta separar las clases por un hiperplano lineal. Si SVM funciona, entonces puede responder a su pregunta sobre si los datos son lineales o linealmente separables.

Las herramientas que puede usar para realizar la tarea anterior son: Scikit-learn SVM, MSVMPack y LIBSVM.

Además, en algún momento SVM podría brindarle soluciones subóptimas debido a que son clasificadores de margen blando. Podrían darle un plano de separación que podría no ser una separación perfecta. En tales casos, sus errores le harán concluir lo contrario. Por lo tanto, profundice un poco más en la literatura SVM antes de aplicarlos de todo corazón para su solución.

Supongamos que tiene puntos de datos que pueden pertenecer a la clase ‘A’ o la clase ‘B’. Deje que estos puntos de datos se dispersen en cualquier espacio de n dimensiones. Si cualquier hiperplano en dimensión (> = n) puede separar estos puntos de datos en dos clases, de modo que los puntos de datos de la clase ‘A’ se encuentran en un lado del hiperplano y los puntos de datos de la clase ‘B’ se encuentran en el otro lado, entonces puede decir que su conjunto de datos es linealmente separable.

Tomemos un ejemplo. Suponga que los puntos de datos están dispersos en el espacio bidimensional. Si puede dibujar una línea o hiperplano que pueda separar esos puntos en dos clases, entonces los datos son separables. De lo contrario, puede estar separado por un hiperplano en dimensiones superiores. Aún así, si alguno de los hiperplanos no pudiera separarlos, entonces los datos se denominan datos no separables linealmente.

Pruébelo empíricamente tratando de lograr una precisión del 100% en los datos de entrenamiento utilizando un clasificador lineal como la regresión lineal (logística) o el perceptrón. Si tiene una precisión considerablemente menor, entonces es una fuerte evidencia de que sus datos no se separan linealmente con una alta confianza.

Aplicar SVM lineal. Si tiene un error del 0%, sus datos son linealmente separables.

De acuerdo con Viresh. De hecho, creo que deberíamos verificar si los datos son linealmente separables antes de aplicar las funciones lineales del núcleo en SVM. Como alguien sugirió, mantenga un conteo máximo de iteraciones = 5000, diga y pruebe si el aprendizaje de perceptrón converge dentro de eso. Esto indicará la separabilidad lineal de los datos, luego puede proceder a usar el núcleo de revestimiento en SVM.

para problemas multiclase, puede usar perceptrón multiclase. ¡Usar cascos convexos en problemas de clasificación binaria también es una buena idea!

Escribimos una herramienta simple para descubrir esto en R. La idea es desarrollar 2 hiperplanos que separen todo lo que se pueda separar. El% restante de los datos que permanecen inseparables le da una pista sobre cómo son los datos.

Los detalles están allí en nuestro documento:

Un clasificador binario híbrido: uso de la regresión logística modificada para la eliminación de vectores no compatibles

No somos apostadores ni gurús teóricos. Solo ingenieros juguetones.

Como sabrán, dos conjuntos son linealmente separables si y solo si su casco convexo no tiene intersección.
Una solución a su pregunta es encontrar el casco convexo tanto para los puntos X como para los puntos O por separado y verificar si algún segmento de los cascos se cruzó o si el casco estaba encerrado por el otro. Si se descubriera que los dos cascos son totalmente disjuntos, los dos conjuntos de datos serían separables geométricamente.
Página en http://www.joyofdata.de Este enlace puede proporcionarle un método específico para probar la separabilidad lineal.

Simplemente ejecute SVM lineal y vea la precisión de la clasificación; si es buena, supongo que sus datos son linealmente separables. (Si el kernel SVM funciona para usted, entonces sus datos son linealmente separables en un plano de mayor dimensión).