¿Cómo saber si los datos son linealmente separables?

21

Los datos tienen muchas características (por ejemplo, 100) y el número de instancias es como 100,000. Los datos son escasos. Quiero ajustar los datos usando regresión logística o svm. ¿Cómo sé si las características son lineales o no lineales para poder usar el truco del núcleo si no es lineal?

Xiang Zhang
fuente

Respuestas:

22

Existen varios métodos para determinar si los datos son linealmente separables, algunos de ellos se destacan en este documento (1). Con la suposición de dos clases en el conjunto de datos, los siguientes son algunos métodos para encontrar si son linealmente separables:

  1. Programación lineal: define una función objetivo sujeta a restricciones que satisfacen la separabilidad lineal. Puede encontrar detalles sobre la implementación aquí .
  2. Método de perceptrón: se garantiza que un perceptrón converja si los datos son linealmente separables.
  3. Programación cuadrática: la función objetivo de optimización de programación cuadrática se puede definir con restricciones como en SVM.
  4. Geometría computacional: si uno puede encontrar dos cascos convexos disjuntos, entonces los datos son linealmente separables
  5. Método de agrupación: si se pueden encontrar dos agrupaciones con una pureza de agrupación del 100% utilizando algunos métodos de agrupación como k-means, entonces los datos son linealmente separables.

    (1): Elizondo, D., "El problema de la separabilidad lineal: algunos métodos de prueba", en Neural Networks, IEEE Transactions on, vol.17, no.2, pp.330-344, marzo de 2006 doi: 10.1109 / TNN. 2005.860871

Shuaib Ahmed
fuente
1
Proporcione una referencia (los enlaces pueden pudrirse) y al menos una pequeña explicación de qué métodos están cubiertos.
Scortchi - Restablece a Monica
2
Gracias. Buena respuesta (+1). El paquete R safeBinaryRegressiontambién implementa el enfoque de programación lineal.
Scortchi - Restablece a Monica
Cuál (el enfoque LP) se interpreta fácilmente geométricamente, computacionalmente eficiente y generalmente disponible (como lo son las rutinas LP).
user603
3

Supongo que hablas de un problema de clasificación de 2 clases. En este caso, hay una línea que separa sus dos clases y cualquier algoritmo clásico debería poder encontrarla cuando converja.

En la práctica, tienes que entrenar y probar con los mismos datos. Si existe una línea de este tipo, entonces debe acercarse al 100% de precisión o al 100% de AUC. Si no existe esa línea, la capacitación y las pruebas con los mismos datos generarán al menos algunos errores. Según el volumen de los errores, puede que valga la pena probar un clasificador no lineal.

iliasfl
fuente
1

metroyonortew,si El |El |wEl |El |2
s.t yo,(wXyo+si)yyo1

metroyonortes,si s
s.t yo,(wXyo+si)yyo1-s
s0 0

ssyo

Sridhar Thiagarajan
fuente
+1 esta es la intuición geométrica detrás del método implementado en el paquete RsafeBinaryRegression
user603
-2

Intenta la regresión logística y ve cómo funciona. Si no funciona, hay infinitos núcleos que puede probar, y aún así podría no funcionar.

Neil G
fuente