Dengesiz, heterojen Negatif arka plana sahip Tek Sınıf ayrımcı sınıflandırma?


16

{Protein} dizilerini belirli bir sınıfa (Neuropeptide hormon öncüleri) ait olarak sınıflandırmak için mevcut bir denetimli sınıflandırıcıyı geliştirmeye çalışıyorum.

Yaklaşık 13 milyon protein sekansının ("Bilinmeyen / zayıf açıklamalı arkaplan") arka planına karşı yaklaşık 1.150 bilinen "pozitif" veya çeşitli özelliklerle açıklamalı yaklaşık 100.000 gözden geçirilmiş, ilgili protein vardır (ancak açıkça çok az açıklamalı) "Olumsuz bir şekilde).

Önceki uygulamam buna ikili bir sınıflandırma sorunu olarak baktı: Pozitif küme = Nöropeptit olarak işaretlenmiş proteinler. Negatif küme: Kabaca benzer uzunluk-uzunluk dağılımının kalan proteinleri arasından 1.300 numunenin (toplam) rastgele örneklenmesi.

Bu işe yaradı, ancak makinelerin ayırt edici yeteneklerini büyük ölçüde iyileştirmek istiyorum (Şu anda, doğruluk açısından yaklaşık 83-86 oranında, CV ile ölçülen, birden fazla rastgele örneklenmiş negatif sette).

Düşüncelerim şunlardı: 1) Bunu, rastgele bir şekilde örneklenmiş bir başka setle (belki de) birlikte özellikleri / fonksiyonel sınıfı ile negatif olacak 2-3 farklı protein sınıfı seçerek çok sınıflı bir problem haline getirin. (Buradaki öncelik, tanımlayıcı özelliklere sahipken, özellik / özelliklerinde pozitif kümeye benzer negatif kümeler olacaktır). 2) Bir sınıf öğrenme - İyi olurdu, ama anladığım kadarıyla, sadece anomali tespiti içindir ve ayrımcı yaklaşımlardan daha zayıf bir performansa sahiptir.

*) PU öğrenimini duydum, bu kulağa hoş geliyor, ama ben bir N00b programlama ediyorum ve bunun için mevcut herhangi bir uygulama bilmiyorum. (Python / sci-kit öğren).

Peki, yaklaşım 1 teorik bir POV'de anlamlı mı? Birden çok negatif küme oluşturmanın en iyi yolu var mı? (Ayrıca sadece "negatif" proteinlerin büyük bir [50K] seçimini kullanabilirim, ama hepsi birbirinden çok farklı, bu yüzden sınıflandırıcının onları büyük, dengesiz bir karışım olarak ne kadar iyi idare edeceğini bilmiyorum ). Teşekkürler!


muhtemelen gördüğünüz gibi, PU öğrenme hakkındaki Wikipedia makalesi, bunun gen tanımlamasına uygulandığı bir makaleye atıfta bulunmaktadır. Belki de yazarlara hangi yazılımı kullandıklarını bulmaya / sormaya değer.
Andre Holzner

Scikit'te PU öğrenmesi hakkında bazı tartışmalar var: buradan öğren: stackoverflow.com/questions/25700724/… ('tek sınıf' destek vektör makinesi kullanarak)
Andre Holzner

PU öğrenme, bir uyarı ile standart iki sınıflı sınıflandırma problemidir - sınıflandırma doğruluğunu değil, eğrinin altındaki alanı optimize edersiniz. Bunu yapmak için Sofia ML yazılım paketini kullanabilirsiniz (programlama gerekmez). Pratik tarafta, olumlu örneklerinize +1 ve diğer her şeye -1 olarak açıklama eklersiniz (evet, pozitif olabilecek diğer tüm etiketlenmemiş veriler).
Vladislavs Dovgalecs

Yanıtlar:


5

Genelde soruna saldıracağım yöntem, proteinleri Neuropeptide hormon öncüleri olarak sınıflandırmak için en uygun olan özelliklerin belirlenmesine yardımcı olmak için Temel Bileşen Analizi veya Sıradan En Küçük Kareler gibi istatistiksel analizlerden yararlanmaktır.

Bunu yapmak için, protein dizilerini sayısal verilere dönüştürmeniz gerekecek, ancak Amino Asit PCA'da kullanılan formüller kullanılarak bu konuda zaten bazı çalışmalar yapıldığına inanıyorum.

Bu iki bağlantıya bakın: http://www.ncbi.nlm.nih.gov/pubmed/24496727

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

Bu iş yapıldıktan sonra, tüm veri kümesini ve Naive Bayes gibi bir takviye öğrenme algoritmasını kullanarak sınıflandırma girişiminde bulunurken , PCA'nın önemli olarak tanımladığı veriyi zayıflatırım.

Bayes'i kullanmaya çalışmamın nedeni, benzer şekilde çarpık bir veri kümesine sahip olan normal e-postaya karşı spam'ı belirlemek için en iyi yöntemlerden biri olduğu kanıtlanmış olmasıdır.

Bütün bunları söyledikten sonra ...

Negatif sınıflandırmaların sayısını veya türünü zayıflatmak sonuçlarınızı şu ya da bu şekilde birkaç noktaya çarptırabilir, ancak en iyi nasıl kaldırılacağını belirleyen bacak işini yapana kadar uzun vadeli etkinlik değişikliğini önemli ölçüde göreceğinizi sanmıyorum. egzersiz verilerinizdeki bulanıklık. Bu bir saha uzmanı veya istatistiksel analiz gerektirecektir.

Tamamen üs dışı olabilirdim. Başka cevaplar görmekle ilgileniyorum, ama bu benim 2 sentim.


1
Zaten özellik ayıklama ve bunun için bir araç seti uyguladım (yayın bazı hata kontrolü bekliyor).
GrimSqueaker

5

Bir sınıf öğrenimi

Bir sınıflandırma yöntemlerini (seçenek 2) atmak için çok hızlı olmazdım - anahtar, pozitif (azınlık) sınıfı bir sınıf modeliyle modellemektir.

Tek sınıflı sınıflandırmanın protein sınıflandırma görevlerinde sıklıkla görüldüğü gibi oldukça dengesiz veriler için örnekleme gibi diğer yaklaşımları gerçekleştirdiği vakaları gösteren araştırmalar vardır.

Hatırladığım araştırmayı bulamadım, ancak tipik olarak büyük setten örneklenen "negatifler" ile ikili sınıflandırmadan daha iyi veya daha iyi performans olarak elde edilen tek sınıflı sınıflandırıcılar (tipik olarak azınlık sınıfını modelleme) kullanarak gösteren başka karşılaştırmalar buldum. pozitif olduğu bilinmeyen proteinlerin.

Ayrıca bu yaklaşım, sınıflandırıcıyı daha küçük, pozitif set üzerinde eğitmeniz gerektiğinden çok daha gelişmiş çalışma zamanı avantajı da sağlar. Birkaç makale:

"Tek sınıflı sınıflandırma yöntemleri kullanarak protein-protein etkileşimlerinin tahmini ve çeşitli biyolojik verilerin birleştirilmesi"

"Protein Dizileri ve Yapıları İçin Tek Sınıf Bir Sınıflandırma Yaklaşımı"

En azından ben bazı tek sınıf yöntemleri denemek ve ikili / çok sınıf sınıflandırma yaklaşımları ile doğrulama kullanarak performans karşılaştırmak. Bunların birçoğu için açık kaynak uygulamaları da vardır, bu yüzden bunları denemek çok pahalı olmamalıdır, örneğin LibSVM'nin tek sınıf bir SVM uygulaması vardır. Ayrıca, tahminlerinde daha fazla anlaşmazlık olabileceğinden, ikili sınıflandırıcılar içeren bir toplulukta kullanım için değerli olabilir.

Daha yüksek düzeyde temsil yerleştirme / kümeleme

(1) ve PCA'yı öneren diğer yazı, kümeleme, seyrek kodlama, hatta konu modelleme gibi yaklaşımların çizgileri boyunca - her proteine ​​bir belge dizesi ve farklı protein ailelerine farklı konular olarak muamele etme - bir temsil verebilir proteinlerin sınıflandırılmasını kolaylaştırabilir.

Yani, bir proteinin hangi gruba / kümeye ait olduğunu belirleyebilir veya küme üyeliklerini / gömülü gösterimleri sınıflandırabilirsiniz.

Örneğin, seyrek kodlama gibi gömme yaklaşımları, bir proteinin hangi kümenin de ait olduğunu ortaya koyan temsiller verebilir - böylece bazı özellik kümeleri aynı kümedeki proteinler için sadece aktif (sıfırdan farklıdır) - bu da onları sınıflandırmayı çok daha kolay hale getirebilir.

Ek olarak sınıf yöntemleri veya bilinen küme üyeliği çoğu yöntem için gömme işlemine dahil edilebilir.

topluluk

Birden fazla sınıflandırıcı topluluğu en iyi şekilde çalışma eğilimindedir - özellikle sınıflandırıcılar çok çeşitli olduğunda ve tek tek karşılaştırılabilir performans elde edebildiklerinde.

Bu sorun için toplulukları kullanmanın en az iki yolu vardır.

  1. Aynı boyuttaki birden fazla farklı negatif kümeyi örnekleyerek ve her biri için bir sınıflandırıcı eğiterek ikili sınıflandırıcılar topluluğu oluşturabilirsiniz.
  2. Tek bir sınıflandırma yaklaşımı ile birleştirilmiş, katıştırılmış veriler üzerinde eğitilmiş sınıflandırma modelleri ile birlikte farklı negatif örneklere sahip ikili sınıflandırıcılar gibi farklı yaklaşımlardan oluşan bir topluluk oluşturabilirsiniz.

2

Uygulayabileceğiniz üç yaklaşım vardır: APP, OAA, AAO. APP olası tüm sınıf çiftlerine dayalı nesneler arasındaki ayrımcılıktır. OAA hepsi bire karşı (kalan sınıflar) ve AAO aynı anda birden fazla sınıf için bir F testinin kullanılması (veya Hotelling'in MVN testi) gibi. APP ve AAO aslında birden fazla ikili sınıflandırma çalıştırmasıdır, ancak orijinal sınıflarınızın ikiden fazlası ile. Bu yaklaşımların her biri, kullanılan çeşitli sınıflandırıcılar için farklı sonuçlar verir.

Rastgele örnekleme iyi bir tekniktir. Ayrıca, tüm nesneleri k-yollarını kullanarak merkezlere kümelemeyi ve ardından merkezleri yeni nesneler olarak kullanmayı deneyebilirsiniz. Her iki şekilde de, doğrusal ve doğrusal olmayan boyut küçültme yöntemleri büyük örnek boyutundan uzaklaşmaya yardımcı olabilir.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.