Однокласна дискримінаційна класифікація з незбалансованим, гетерогенним негативним фоном?


16

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

Існує близько 1150 відомих "позитивних" на тлі близько 13 мільйонів послідовностей білків ("Невідомий / погано анотований фон") або близько 100 000 рецензованих відповідних білків, анотованих з різними властивостями (але дуже мало анотованих в явному вигляді "негативний" спосіб).

Моя попередня реалізація розглядала це як проблему бінарної класифікації: Позитивний набір = Білки, позначені як нейропептиди. Негативний набір: Випадкова вибірка 1300 проб (всього) з числа решти білків приблизно подібного розподілу за довжиною.

Це спрацювало, але я хочу значно поліпшити дискримінаційні здібності машини (зараз це приблизно 83-86% з точки зору точності, AUC, F1, виміряний CV, на декількох випадкових вибіркових негативних наборах).

Мої думки полягали в тому, щоб: 1) зробити цю проблему багатокласовою, вибравши 2-3 різних класу білка, які, безумовно, будуть негативними, за їх властивостями / функціональним класом, а також (можливо) ще одним набором вибіркових вибірків. (Тут пріоритетними будуть негативні множини, які за своїми характеристиками / ознаками схожі на позитивний набір, при цьому все ще мають визначальні характеристики). 2) Навчання в одному класі - Було б добре, але, як я це розумію, воно призначене лише для виявлення аномалії та має більш низьку ефективність, ніж дискримінаційний підхід.

*) Я чув про навчання PU, яке звучить акуратно, але я програмую N00b, і не знаю жодних існуючих реалізацій для нього. (У Python / sci-kit навчаються).

Отже, чи має сенс підхід 1 в теоретичній POV? Чи є найкращий спосіб скласти кілька негативних наборів? (Я також міг би просто використовувати масовий [50К] вибір "негативних" білків, але всі вони дуже сильно відрізняються один від одного, тому я не знаю, наскільки добре класифікатор поводиться з ними як з одним великим, незбалансованим поєднанням ). Спасибі!


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

Існує деяка дискусія про навчання ПУ в scikit, дізнайтеся тут: stackoverflow.com/questions/25700724/… (використовуючи векторну машину підтримки «одного класу»)
Андре Хольцнер,

Навчання PU - це стандартна двокласна класифікаційна проблема з одним застереженням - ви оптимізуєте площу під кривою, а не точність класифікації. Ви можете використовувати програмний пакет Sofia ML для досягнення саме цього (програмування не потрібно). З практичної сторони ви коментуєте свої позитивні приклади +1 і все інше як -1 (так, всі інші незазначені дані, які можуть містити позитиви).
Владислав Довгалець

Відповіді:


5

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

Для цього вам доведеться перетворити послідовності білків у числові дані, але я вважаю, що в цьому відношенні вже зроблено певну роботу, використовуючи формули, використані в PCA Amino Acid PCA.

Перегляньте ці два посилання: http://www.ncbi.nlm.nih.gov/pubmed/24496727

http://www.ncbi.nlm.nih.gov/pubmed/16615809

Після того, як ця робота була виконана, я б спробував класифікувати за допомогою всього набору даних та алгоритму навчання посилення, як Naive Bayes , зменшуючи при цьому дані, які PCA визначив важливими.

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

Сказавши все це ...

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

Я міг бути зовсім поза базою. Мені цікаво бачити деякі інші відповіді, але це мої 2 копійки.


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

5

Навчання в одному класі

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

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

Я не міг знайти дослідження, про яке я згадував, але я знайшов інші порівняння, показавши використання однокласних класифікаторів (як правило, моделювання класу меншин), досягнутих як кращих або кращих показників, ніж двійкова класифікація, як правило, з вибіркою "негативів" з великого набору білків, які, як відомо, не є позитивними.

Крім того, такий підхід також дає перевагу значно покращеному часу виконання - оскільки вам потрібно лише навчити класифікатор на меншому, позитивному наборі. Пара паперів:

"Прогнозування білково-білкових взаємодій за допомогою однокласових методів класифікації та інтеграції різноманітних біологічних даних"

"Однокласний класифікаційний підхід для білкових послідовностей і структур"

Принаймні, я б спробував кілька однокласних методів і порівняв продуктивність за допомогою перевірки з вашими підходами класифікації бінарних / багатокласних. Для багатьох із них також є реалізовані програми з відкритим вихідним кодом, тому їх не варто занадто дорого випробувати, наприклад, LibSVM має однокласну реалізацію SVM. Крім того, це може виявитися цінним для використання в ансамблі з бінарними класифікаторами, оскільки може бути більше розбіжностей у їхніх прогнозах.

Вбудовування / кластеризація представлення вищого рівня

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

Тобто, ви могли визначити, до якої групи / кластеру належить білок, або класифікувати групи кластерів / вбудовані подання.

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

Додатково мітки класів або відоме членство в кластері можуть бути включені в процес вбудовування для більшості методів.

Ансамбль

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

Існує принаймні два способи використання ансамблів для цієї проблеми.

  1. Ви можете створити ансамбль двійкових класифікаторів, відібравши кілька різних негативних наборів однакового розміру та навчивши класифікатора на кожному.
  2. Можна створити ансамбль з різних підходів, таких як двійкові класифікатори з різними негативними зразками, поєднані з однокласним класифікаційним підходом у поєднанні з класифікаційними моделями, підготовленими за вбудованими даними.

2

Ви можете скористатися трьома підходами: APP, OAA, AAO. APP - це дискримінація об'єктів на основі всіх можливих пар класів. OAA - це використання один проти всіх (решта класів), а AAO - це все одночасно, наприклад використання F-тесту для декількох класів одночасно (або тест Хотелінга на MVN). APP і AAO - це фактично кілька бінарних класифікацій, але з більш ніж двома оригінальними класами. Кожен із цих підходів дає різні результати для різних класифікаторів, що застосовуються.

Випадкове відбір проб - хороша методика. Ви також можете спробувати об'єднати всі об'єкти в центри за допомогою k-засобів, а потім використовувати центри як нові об'єкти. У будь-якому випадку лінійні та нелінійні методи зменшення розмірів можуть допомогти відійти від великого розміру вибірки.

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