Bagaimana cara mengetahui apakah data dapat dipisahkan secara linear?

21

Data memiliki banyak fitur (mis. 100) dan jumlah instance adalah 100.000. Data jarang. Saya ingin mencocokkan data menggunakan regresi logistik atau svm. Bagaimana saya tahu apakah fitur linear atau non-linear sehingga saya bisa menggunakan trik kernel jika non-linear?

Xiang Zhang
sumber

Jawaban:

22

Ada beberapa metode untuk menemukan apakah data dapat dipisahkan secara linear, beberapa di antaranya disorot dalam makalah ini (1). Dengan asumsi dua kelas dalam dataset, berikut adalah beberapa metode untuk menemukan apakah mereka dapat dipisahkan secara linear:

  1. Pemrograman linier: Menentukan fungsi objektif yang dikenai kendala yang memenuhi pemisahan linier. Anda dapat menemukan detail tentang implementasi di sini .
  2. Metode perceptron : Suatu perceptron dijamin akan menyatu jika data dapat dipisahkan secara linear.
  3. Quadratic programming: Fungsi objektif optimalisasi pemrograman quadratic dapat didefinisikan dengan kendala seperti pada SVM.
  4. Komputasi geometri: Jika seseorang dapat menemukan dua lambung cembung disjoint maka data dipisahkan secara linear
  5. Metode Clustering: Jika seseorang dapat menemukan dua cluster dengan kemurnian cluster 100% menggunakan beberapa metode clustering seperti k-means, maka data dipisahkan secara linear.

    (1): Elizondo, D., "Masalah keterpisahan linear: beberapa metode pengujian," di Neural Networks, Transaksi IEEE aktif, vol.17, no.2, pp.330-344, Maret 2006 doi: 10.1109 / TNN. 2005.860871

Shuaib Ahmed
sumber
1
Tolong beri referensi (tautan bisa membusuk) & setidaknya sedikit penjelasan tentang metode apa yang dicakup.
Scortchi
2
Terima kasih. Jawaban bagus (+1). Paket R safeBinaryRegressionjuga mengimplementasikan pendekatan pemrograman linier.
Scortchi
Yang mana (pendekatan LP) mudah ditafsirkan secara geometris, efisien secara komputasi, dan secara umum tersedia (sebagaimana rutinitas LP).
user603
3

Saya berasumsi Anda berbicara tentang masalah klasifikasi 2 kelas. Dalam hal ini ada garis yang memisahkan dua kelas Anda dan algoritma klasik apa pun harus dapat menemukannya ketika konvergen.

Dalam praktiknya, Anda harus melatih dan menguji data yang sama. Jika ada garis seperti itu maka Anda harus mendekati akurasi 100% atau 100% AUC. Jika tidak ada garis seperti itu maka pelatihan dan pengujian pada data yang sama akan menghasilkan setidaknya beberapa kesalahan. Berdasarkan volume kesalahan itu mungkin atau mungkin tidak layak untuk mencoba classifier non-linear.

iliasfl
sumber
1

minw,b ||w||2
s.t saya,(wxsaya+b)ysaya1

msayans,b s
s.t saya,(wxsaya+b)ysaya1-s
s0

sssaya

Sridhar Thiagarajan
sumber
+1 ini adalah intuisi geometris di balik metode yang diterapkan dalam paket RsafeBinaryRegression
user603
-2

Anda mencoba regresi logistik dan melihat cara kerjanya. Jika tidak berhasil, ada banyak kernel yang dapat Anda coba, dan mungkin masih tidak berhasil.

Neil G
sumber