Як дізнатися, чи є дані лінійно відокремленими?


21

Дані мають багато можливостей (наприклад, 100), а кількість екземплярів становить приблизно 100 000. Дані рідкі. Я хочу підходити до даних за допомогою логістичної регресії або svm. Як дізнатися, чи є функції лінійними чи нелінійними, щоб я міг використовувати хитрість ядра, якщо нелінійний?

Відповіді:


22

Існує кілька методів, щоб визначити, чи є дані лінійно відокремленими, деякі з них висвітлені в цій роботі (1). З припущенням двох класів у наборі даних, наведено кілька методів, щоб визначити, чи є вони лінійно відокремленими:

  1. Лінійне програмування: визначає цільову функцію, яка зазнає обмежень, що задовольняють лінійну роздільність. Детальну інформацію про реалізацію ви можете знайти тут .
  2. Метод перцептрону: Перцептрон гарантується конвергенцією, якщо дані лінійно відокремлюються.
  3. Квадратне програмування: цільова функція оптимізації квадратичного програмування може бути визначена з обмеженням, як у SVM.
  4. Обчислювальна геометрія: Якщо можна знайти два непересічні опуклі корпуси, то дані можна розділити лінійно
  5. Метод кластеризації: Якщо можна знайти два кластери з чистотою кластера 100%, використовуючи деякі методи кластеризації, такі як k-засоби, то дані лінійно відокремлюються.

    (1): Елізондо, Д., "Проблема лінійної відокремленості: деякі методи тестування", в Neural Networks, IEEE Transaction on, vol.17, No.2, pp.330-344, березень 2006 р. Doi: 10.1109 / TNN. 2005.860871


1
Будь ласка, дайте посилання (посилання можуть загнивати) та хоча б трохи пояснення, які методи охоплені.
Scortchi

2
Спасибі. Гарна відповідь (+1). Пакет R safeBinaryRegressionтакож реалізує підхід лінійного програмування.
Scortchi

Який (підхід LP) легко інтерпретується геометрично, обчислювально ефективно та загальнодоступний (як і підпрограми LP).
user603

3

Я припускаю, що ви говорите про проблему класифікації 2 класу. У цьому випадку є рядок, яка розділяє два ваші класи, і будь-який класичний алгоритм повинен мати змогу знайти його, коли він конвергується.

На практиці вам доведеться тренуватися і тестуватися на одних і тих же даних. Якщо є така лінія, вам слід наблизитись до 100% точності або 100% AUC. Якщо такої лінії немає, то навчання та тестування на одних і тих же даних призведе до принаймні деяких помилок. Виходячи з обсягу помилок, можна або не варто спробувати нелінійний класифікатор.


1

мiнш,б ||ш||2
с.т i,(ш'хi+б)уi1

мiнс,б с
с.т i,(ш'хi+б)уi1-с
с0

ссi


+1 - це геометрична інтуїція методу, реалізованого в пакеті RsafeBinaryRegression
user603

-2

Ви спробуйте логістичну регресію і побачите, як це працює. Якщо це не виходить, ви можете спробувати нескінченно багато ядер, і це все одно може не вийти.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.