Я працюю над вдосконаленням існуючого контрольованого класифікатора, щоб класифікувати {протеїнові} послідовності як такі, що належать до певного класу (попередники нейропептидних гормонів), чи ні.
Існує близько 1150 відомих "позитивних" на тлі близько 13 мільйонів послідовностей білків ("Невідомий / погано анотований фон") або близько 100 000 рецензованих відповідних білків, анотованих з різними властивостями (але дуже мало анотованих в явному вигляді "негативний" спосіб).
Моя попередня реалізація розглядала це як проблему бінарної класифікації: Позитивний набір = Білки, позначені як нейропептиди. Негативний набір: Випадкова вибірка 1300 проб (всього) з числа решти білків приблизно подібного розподілу за довжиною.
Це спрацювало, але я хочу значно поліпшити дискримінаційні здібності машини (зараз це приблизно 83-86% з точки зору точності, AUC, F1, виміряний CV, на декількох випадкових вибіркових негативних наборах).
Мої думки полягали в тому, щоб: 1) зробити цю проблему багатокласовою, вибравши 2-3 різних класу білка, які, безумовно, будуть негативними, за їх властивостями / функціональним класом, а також (можливо) ще одним набором вибіркових вибірків. (Тут пріоритетними будуть негативні множини, які за своїми характеристиками / ознаками схожі на позитивний набір, при цьому все ще мають визначальні характеристики). 2) Навчання в одному класі - Було б добре, але, як я це розумію, воно призначене лише для виявлення аномалії та має більш низьку ефективність, ніж дискримінаційний підхід.
*) Я чув про навчання PU, яке звучить акуратно, але я програмую N00b, і не знаю жодних існуючих реалізацій для нього. (У Python / sci-kit навчаються).
Отже, чи має сенс підхід 1 в теоретичній POV? Чи є найкращий спосіб скласти кілька негативних наборів? (Я також міг би просто використовувати масовий [50К] вибір "негативних" білків, але всі вони дуже сильно відрізняються один від одного, тому я не знаю, наскільки добре класифікатор поводиться з ними як з одним великим, незбалансованим поєднанням ). Спасибі!