La proprietà dei due set di dati è quella della separabilità lineare , semplicemente, che esiste una linea che li separa. Un sacco di machine learning è dedicato alla ricerca di classificatori lineari , che sono linee che eseguono la separazione che ti interessa.
Mentre parli di linee, suppongo che i tuoi punti siano nell'aereo. Quello che vuoi fare è trovare i valori , w 2 e w 3 , in modo tale che per tutti i punti ( a 1 , a 2 ) nel set A , w 1 a 1 + w 2 a 2 ≥ w 3 e per tutti i punti ( b 1 , b 2 ) in B , w 1 b 1 +w1w2w3( a1, a2)UNw1un'1+ w2un'2≥ w3( b1, b2)B . Così, la disuguaglianza w 1 x + w 2 y ≥ w 3 può essere vista come un classificatore per set A .w1B1+ w2B2< w3w1x + w2y≥ w3UN
Esistono molti algoritmi di machine learning per determinare una linea ottimale (regressione lineare, regressione logistica e così via). Questi troveranno i valori per base ad alcune metriche di errore. Quindi è possibile verificare se tutti i punti sono classificati correttamente. Cioè, se tutti i valori A soddisfa l'equazione sopra e similmente per B .w1, w2, w3UNB
Dato che ti interessa solo sapere se esiste una tale linea, devi usare le tecniche esistenti (anche se probabilmente sarebbe più semplice). Basta impostare la seguente raccolta di uguaglianze in termini di variabili libere .w1, w2, w3
per ogni i = 1 , . . , | A | , dove A = { ( a 1 1 , a 1 2 ) , … , ( a | A | 1 , a | A | 2 ) } .w1un'io1+ w2un'io2≥ w3i = 1 , . . , | A |A = { ( a11, a12) , ... , ( a| A |1, a| A |2) }
per ogni j = 1 , . . , | B | , dove B = { ( b 1 1 , b 1 2 ) , … , ( b | B | 1 , b | B | 2 ) } .w1Bj1+ w2Bj2< w3j = 1 , . . , | B |B = { ( b11, b12) , ... , ( b| B |1,b| B |2) }
Se questi vincoli sono coerenti, esiste una linea.