La linea separa due serie di punti


19

Se esiste un modo per identificare se due serie di punti possono essere separati da una linea?

Abbiamo due serie di punti e se esiste una linea che separa e tale che tutti i punti di e solo su un lato della linea, e tutti i punti di e solo sull'altro lato.B A B A A B BUNBUNBUNUNBB

L'algoritmo più ingenuo che mi è venuto in mente è costruire poligono convesso per e e testarli per l'intersezione. Sembra che la complessità temporale per questo dovrebbe essere come per la costruzione di un poligono convesso. In realtà non mi aspetto alcun miglioramento nella complessità temporale, non sono sicuro che possa essere migliorato affatto. Ma almeno ci dovrebbe essere un modo più bello per determinare se esiste una tale linea.B O ( n log h )UNBO(nlogh)

Risposte:


19

Sia uli che Dave Clarke osservano correttamente che si tratta di un problema di programmazione lineare, anche in dimensioni più elevate (questi due set di punti possono essere separati da un iperpiano?) E quindi possono essere risolti in tempo polinomiale. Ma poiché i tuoi punti si trovano sul piano, il tuo problema può effettivamente essere risolto in tempo, dove n è il numero totale di punti.O(n)n

La soluzione più semplice è probabilmente l'algoritmo randomizzato di Seidel. Scegli un punto di input uniformemente a caso e calcola ricorsivamente una linea di separazione per tutti i punti tranne p .p p

  • Se non esiste tale linea, i punti originali non sono separabili.

  • Se trova sul lato corretto di , allora separa i punti originali.p

  • Se è dalla parte sbagliata di , allora i punti originali possono essere separati da una linea attraverso p , oppure i punti originali non sono affatto separabili. Questa condizione è facile da verificare in O ( n ) tempo [esercizio].ppO(n)

Questo algoritmo viene eseguito nel tempo con alta probabilità (rispetto alle scelte casuali dell'algoritmo). Per maggiori dettagli, vedi l'articolo originale o un numero qualsiasi di appunti di lezione online.O(n)


Grazie mille, approfondirò questo documento.
com

Nel tuo terzo caso, affermi che potrebbe essere in modo che la linea passi attraverso , come può esserlo sapere? p
Tarrasch,

10

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 2w 3 e per tutti i punti ( b 1 , b 2 ) in B , w 1 b 1 +w1w2w3(un'1,un'2)UNw1un'1+w2un'2w3(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+w2yw3UN

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'1io+w2un'2iow3io=1,..,|UN|UN={(un'11,un'21),...,(un'1|UN|,un'2|UN|)}

per ogni j = 1 , . . , | B | , dove B = { ( b 1 1 , b 1 2 ) , , ( b | B | 1 , b | B | 2 ) } .w1B1j+w2B2j<w3j=1,..,|B|B={(B11,B21),...,(B1|B|,B2|B|)}

Se questi vincoli sono coerenti, esiste una linea.


5

Se ricordo bene supportare macchine vettoriali costruire iperpiani separati. Se si sceglie la dimensione l'iperpiano diventa ovviamente una linea. Potrebbe essere necessario verificare se ci sono ulteriori presupposti da soddisfare. In due dimensioni l'intero approccio potrebbe semplificare notevolmente, quindi l'autonomia potrebbe essere migliore rispetto all'approccio generale.2

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.