Класифікація з високими показниками жиру


15

Мені потрібно навчити лінійний класифікатор на своєму ноутбуці із сотнями тисяч точок даних та близько десяти тисяч функцій. Які мої варіанти? Який стан сучасної проблеми для цього типу?

Схоже, стохастичний градієнтний спуск є перспективним напрямком, і я відчуваю, що це найсучасніший:

"Пегасос: первинна оцінка суб-GrAdient SOlver для SVM" Шай Шалев-Шварц, Йорам Сінгер, Натан Сребро, Ендрю Коттер. "Математичне програмування, серія B, 127 (1): 3-30, рік: 2007".

Це консенсус? Чи варто дивитись в якомусь іншому напрямку?


1
Ви думали про використання деяких методів зменшення розмірів? тисяча функцій вимагає зменшення розміру див. en.wikipedia.org/wiki/Dimension_reduction
Dov

Це питання можна вдосконалити за допомогою наукових досліджень. Чи є у вас якісь прийоми на увазі?
Тамзін Блейк

@Thom Blake: Я трохи відредагував це питання своїми думками.
carlosdc

Не знаючи більше про дані, будь-яка відповідь була б необізнаною. Це рідко? безперервний? дискретний? зайві функції / об’єкти? скільки класів? Наприклад, PCA для розріджених даних іноді може бути шкідливим.
кіборг

2
високий = багато очок? жир = багато особливостей? чи є ця STD-термінологія десь, вона використовується десь у посиланнях?

Відповіді:


6

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

Якщо ви використовуєте Matlab, існує справді приємна панель інструментів під назвою DOGMA Франческо Орабона, яка містить цілий ряд алгоритмів навчання в Інтернеті, і ви можете оцінити кілька різних методів за допомогою цього. Я використовував це в деяких своїх дослідженнях і вважав, що це дуже корисно (зауважте, що, наскільки я пам'ятаю, він очікує, що дані є [особливості x приклади], тому вам, можливо, доведеться їх перемістити).

2ϵ2


7

По-перше, я хотів би запитати вас, як ви знаєте, що лінійний класифікатор - найкращий вибір? Інтуїтивно зрозуміло для такого великого простору (R ^ 10000) можливо, що якийсь інший нелінійний класифікатор є кращим вибором.

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

Якщо у вас не вистачає пам'яті, зменшіть розмір за допомогою PCA


2
Спасибі. Я більше думав над тим, як впоратись із масштабом проблеми. Я хотів почати з лінійного, тому що це простіше. Я думаю, ви пропонуєте метод на основі ядра. Дозвольте лише зазначити, що якщо у мене 750000 точок даних, матриця ядра буде розміром 540 ГБ. Тому відповідь не може бути: підключіть його до LIBSVM / SVMLight / тощо, отримайте хороший C та гамма та подивіться, що ви отримаєте.
carlosdc

2
(-1) відповідь а) частково настільки загальна, що може бути застосована до будь-якого питання класифікації б) не пояснено, чому рекомендується PCA (над будь-якою іншою методикою зменшення розмірів).
steffen

3

Ви також можете використовувати PCA для зменшення розмірів без обчислення коваріаційної матриці ---, використовуючи нейронний еквівалент ньюторка PCA.

Ось документ, який описує це (але я рекомендую зробити власний пошук): http://users.ics.tkk.fi/oja/Oja1982.pdf , і ось посилання на щось, що може працювати над реалізацією matlab: http : //www.cs.purdue.edu/homes/dgleich/projects/pca_neural_nets_website/index.html .


1

Як запропонував jb, я думаю, що краще використовувати метод "зменшення розмірів". Аналіз принципових компонентів (PCA) - популярний вибір. Крім того, ви можете спробувати непідконтрольні технічні засоби навчання. Більш детальну інформацію про непідвладне вивчення функцій можна знайти на веб-сайті http://ufldl.stanford.edu/wiki/index.php/UFLDL_Tutorial


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