Об'єднання рідких та щільних даних у машинному навчанні для підвищення продуктивності


17

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

Тепер, справа в тому, що я намагаюся поєднати їх разом, щільні риси, як правило, більше домінують над розрідженими характеристиками, отже, покращуючи AUC лише на 1% порівняно з моделлю, що має лише щільні функції.

Хтось стикався з подібними проблемами? Дійсно оцініть вкладені матеріали, начебто застрягли. Я вже спробував багато різних класифікаторів, комбінацію класифікаторів, перетворення функцій та обробку за допомогою різних алгоритмів.

Заздалегідь дякую за допомогу.

Редагувати :

Я вже спробував пропозиції, які наведені в коментарях. Я помітив, що майже 45% даних, розріджені функції дійсно добре, я отримую AUC приблизно 0,9 із лише рідкісними функціями, але для решти ті щільні функції добре справляються з AUC приблизно 0,75. Я наче намагався відокремити ці набори даних, але отримав AUC 0,6, тому я не можу просто тренувати модель та вирішувати, які функції використовувати.

Щодо фрагмента коду, я спробував стільки речей, що не знаю, чим саме поділитися :(


Наскільки рідкісні ваші риси? Вони на 1% заповнені чи навіть менше?
Жоао Альмейда

2
Також слід врахувати, що якщо ваші функції рідкі, то вони повинні лише допомогти класифікувати невелику частину вашого набору даних, що означає, що точність не повинна суттєво змінюватися. Це свого роду здогадка, оскільки я не знаю, які характеристики вашого набору даних.
Жоао Альмейда

@ JoãoAlmeida Вони не такі рідкісні. Вони заповнені близько 5%. Проблема полягає в тому, коли я дивлюся на відмінність прогнозів від двох моделей, де прогнози відрізняються, модель з розрідженими можливостями має тенденцію до кращого результату, тому я очікував, що вона побачить приріст в AUC, коли я поєднав їх із щільними функціями . Я отримую поштовх, але здається дуже низьким.
Сагар Вагмоде

гул ... Тоді я для вас не маю жодної ідеї
Жоао Альмейда,

я зіткнувся з тією ж проблемою, можливо, просто поставити щільну і розріджену функцію в єдину модель - не вдалий вибір. можливо, ви можете спробувати широку і глибоку модель. широкий для розріджених рис і глибоких для щільних особливостей, якщо ви спробували цей метод, будь ласка, скажіть мені відповідь.
Jianye Ji

Відповіді:


6

Це здається роботою для аналізу основних компонентів. У Scikit добре реалізована PCA, і це мені допомагало багато разів.

PCA певним чином поєднує ваші особливості. Обмеживши кількість компонентів, ви отримуєте свою модель без шумових даних (в кращому випадку). Тому що ваша модель така ж гарна, як і ваші дані.

Розглянемо нижче простий приклад.

from sklearn.pipeline import Pipeline
pipe_rf = Pipeline([('pca', PCA(n_components=80)),
                    ('clf',RandomForestClassifier(n_estimators=100))])
pipe_rf.fit(X_train_s,y_train_s)

pred = pipe_rf.predict(X_test)

Чому я вибрав 80? Коли я будую кумулятивну дисперсію, я отримав це нижче, що говорить про те, що з ~ 80 компонентів я досягаю майже всієї дисперсії. кумулятивна дисперсія

Тому я б сказав, спробуйте, використовуйте його у своїх моделях. Це повинно допомогти.


4

Найкращий спосіб поєднання особливостей - через ансамблеві методи. В основному існують три різні методи: пакування, підсилення та укладання. Ви можете використовувати Adabbost, доповнений з вибором функцій (у цьому випадку враховувати як рідкісні, так і щільні функції) або на основі складання (випадкова особливість - випадковий підпростір). Я вважаю за краще другий варіант, який ви можете тренувати набір базових учнів (рішення. Дерева), використовуючи випадкові підмножини та випадкові функції (тримати навчальну базу для учнів, поки ви не покриєте весь набір функцій) Наступним кроком є ​​тестування набору навчальних програм для створення метаданих. Використовуйте ці метадані для підготовки метакласифікатора. Мета-класифікатор визначить, яка особливість є важливішою та які відносини слід використовувати


Чи можете ви поділитися відповідною документацією? Ви точно не зрозуміли, що ви мали на увазі?
Сагар Вагмоде

Ви можете прочитати статтю про розміщення "питань у техніці укладання 1999", читати про укладанняC. Дуже важливо знати, що я кажу про весь вектор (наприклад, 1x36 у випадку з Hog) як про одну особливість, але не про розміри всередині нього. Потрібно відслідковувати, яка функція використовується з яким базовим учнем. Будьте обережні щодо проблеми з пристосуванням
Башар Хаддад

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

1

Групи змінних можуть бути мультиколінеарними або перетворення між рідкісними та щільними може піти не так. Чи задумалися ви використовувати класифікатор / класифікацію ансамблю для голосування? http://scikit-learn.org/stable/modules/ensemble.html Таким чином можна вирішити обидві вище проблеми.


Я вже випробував техніку ансамблю, а також класифікатори голосування. Ще не везе.
Сагар Вагмоде

Отже, ви бачите багато перекриттів між прогнозами двох наборів даних? Можливо, дійсно немає нової інформації? Тобто дані розповідають ту саму історію.
Дієго

так, я зробив саме це. Хоча прогнози не зовсім різні, кількість вибірок, де прогнози відрізняються, є досить високою (близько 15-20%) даних. Для цих зразків модель із розрідженими характеристиками працює краще, ніж модель із щільними характеристиками. Моя думка, якщо розріджені функції працюють краще, чому б вони не стали такими важливими характеристиками в будь-якій з моделей, які я намагався до цього часу.
Сагар Вагмоде

Який алгоритм прогнозування ви використовуєте?
Дієго

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

1

Окрім деяких із наведених вище пропозицій, я б рекомендував використовувати двоступеневе моделювання підхід .

  1. Спершу скористайтеся рідкісними функціями та розробіть найкращу модель.
  2. Обчисліть прогнозовану ймовірність з цієї моделі.
  3. Подайте цю оцінку ймовірності у другу модель (як функцію введення), яка б включала в себе щільні функції. Іншими словами, використовуйте всі щільні функції та оцінку ймовірності для побудови другої моделі.
  4. Остаточна класифікація буде заснована на другій моделі.

0

Спробуйте PCA лише на обмежених функціях, а комбінуйте вихід PCA з щільними функціями.

Так ви отримаєте щільний набір (оригінальних) функцій + щільний набір функцій (які спочатку були рідкісними).

+1 для запитання. Будь ласка, оновіть нас з результатами.


Ого, це насправді знизило AUC :( Не впевнений, що це означає, потрібно перевірити важливість функції і все. Але моя філософія полягає в тому, що з приблизно 2.3k розріджених функцій я використав 1k функції, які пояснювали коефіцієнт дисперсії 0,97, ця втрата інформації може обрушили АУК.
Сагар Waghmode

Цікаво. Дякую, що поділились. У нас дуже схожий набір даних з вашим (1k-2k рідкісні функції). З цікавості, скільки основних компонентів мереж ви створили? Якщо ця кількість занадто низька, це може пояснити, чому AUC знизився.
Тагар

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