İki nokta kümesinin doğrusal olarak ayrılabilir olup olmadığına karar vermenin en etkili yolu doğrusal programlama uygulamaktır . GLTK bu amaç için mükemmeldir ve hemen hemen her yüksek seviye dil bunun için bir arayüz sunar - R , Python, Octave, Julia, vb.
SVM'lerin kullanımını öneren cevapla ilgili olarak :
SVM'leri kullanmak, iki nedenden dolayı doğrusal ayrılabilirliği doğrulamak için en uygun çözümdür:
SVM'ler yumuşak marj sınıflandırıcılarıdır. Bu, doğrusal bir çekirdek SVM'nin gerçekten mümkün olsa bile mükemmel şekilde ayrılmayan bir ayırma düzlemine yerleşebileceği anlamına gelir. Daha sonra hata oranını kontrol ederseniz, 0 olmayacaktır ve yanlış olarak iki setin doğrusal olarak ayrılamayacağı sonucuna varacaksınız. Bu sorun çok yüksek bir maliyet katsayısı C seçilerek zayıflatılabilir - ancak bu çok yüksek bir hesaplama maliyetiyle ortaya çıkar.
SVM'ler maksimum marj sınıflandırıcılarıdır. Bu, algoritmanın her ikisinden mümkün olduğunca uzak durmaya çalışırken iki sınıfı ayıran bir ayırma düzlemi bulmaya çalışacağı anlamına gelir. Yine bu, lineer ayrılabilirlik sorusunu cevaplamakla ilgili olmayan bir şeyi hesapladığı için hesaplama çabalarını gereksiz yere artıran bir özelliktir.
Diyelim ki bir dizi A ve B noktanız var:
Ardından, aşağıdaki koşullar için 0 değerini en aza indirmeniz gerekir:
(Aşağıdaki A bir matristir, yukarıdan nokta kümesi değil)
"0'ı en aza indirgemek" etkili bir şekilde objektif bir işlevi optimize etmeniz gerekmediği anlamına gelir, çünkü bu setlerin doğrusal olarak ayrılabilir olup olmadığını öğrenmek için gerekli değildir.
Sonunda ( ) ayırma düzlemi tanımlanmaktadır.
Eğer R veya matematik ayrıntılarda bir çalışma örneği ilgilenen edilir, daha sonra kontrol bu dışarı.