Makine öğrenmesinde çapraz doğrulama yapılırken “son” model için özellik seçimi


76

Özellik seçimi ve makine öğrenmesi konusunda kafam biraz karıştı ve bana yardım edip edemeyeceğinizi merak ediyordum. İki gruba ayrılan ve 1000’lik özelliklere sahip bir mikro dizi veri setine sahibim. Amacım, teorik olarak bu örnekleri en iyi şekilde sınıflandırmak için diğer veri setlerine uygulayabileceğim bir imzayla az sayıda gen (özelliklerim) (10-20) elde etmektir. Bu kadar çok numuneye sahip olmadığımdan (<100), bir test ve eğitim seti kullanmıyorum, ancak sağlamlığı belirlemeye yardımcı olmak için Biri bir arada bırak çapraz doğrulama kullanıyorum. Örneklerin her bir bölünmesi için bir özellik seçimi yapması gerektiğini okudum.

  1. Test seti olarak bir örnek seçin
  2. Kalan örneklerde özellik seçimi gerçekleştirin
  3. Seçilen özellikleri kullanarak makine öğrenme algoritmasını kalan örneklere uygulayın
  4. Test setinin doğru sınıflandırılıp sınıflandırılmadığını test edin
  5. 1’e git.

Bunu yaparsanız, her seferinde farklı genler elde edersiniz, peki "final" optimal gen sınıflandırıcınızı nasıl elde edersiniz? yani adım 6 nedir.

En iyisi demek istediğim, daha fazla çalışmanın kullanması gereken genlerin toplanmasıdır. Örneğin, bir kanser / normal veri setine sahip olduğumu ve tümör tipini bir SVM'ye göre sınıflandıracak ilk 10 geni bulmak istediğimi söyleyin. Gen testini ve tanısal bir test olarak kullanılıp kullanılamayacağını görmek için ileriki deneylerde kullanılabilecek SVM parametrelerini bilmek istiyorum.


Tüm açıklama için şunu söylemeliyim ki, bunu zaten biyo-iletken listesine gönderdim
danielsbrewer

Lütfen herhangi bir biyolojik iletken sonuçlarını burada özetleyiniz mi?
Shane

Yanıtlar:


39

Bu, SNP verileriyle çalışırken kendimle karşılaştığım çok iyi bir soru ... Literatürle bariz bir cevap bulamadım.

LOO veya K-fold CV kullanıyor olsanız bile, çapraz doğrulama yinelemenin dediğiniz gibi en dış döngü olması gerektiğinden, farklı özelliklere sahip olacaksınız. LOO-CV'nizden aldığınız özelliklerin n-vektörlerini derecelendirecek bir tür oylama şeması düşünebilirsiniz (makaleyi hatırlayamıyorum, ancak Harald Binder veya Antoine Cornuéjols'un çalışmasını kontrol etmeye değer ). Yeni bir test numunesinin yokluğunda, genellikle yapılan, en uygun çapraz onaylı parametrelerini bulduğunuzda, ML algoritmasını tüm numuneye tekrar uygulamaktır. Ancak bu şekilde devam ederseniz, fazla uydurma olmadığından emin olamazsınız (örnek model optimizasyonu için zaten kullanıldığından).

Veya alternatif olarak, örneğin Rastgele Ormanlarda (RF) olduğu gibi, değişken önem derecesine göre sıralamada özellik sağlayan gömülü yöntemleri kullanabilirsiniz . Çapraz doğrulama RF'lere dahil edildiğinden, durumu veya boyutluluk laneti hakkında endişelenmenize gerek yoktur . Gen ekspresyonu çalışmalarındaki uygulamalarının güzel makaleleri:np

  1. Cutler, A., Cutler, DR ve Stevens, JR (2009). Ağaç Tabanlı Yöntemler, Kanser Araştırmalarında Yüksek Boyutlu Veri Analizinde , Li, X. ve Xu, R. (ed.), S. 83-101, Springer.
  2. Saeys, Y., Inza, I. ve Larrañaga, P. (2007). Biyoinformatikte özellik seçim tekniklerinin gözden geçirilmesi. Biyoinformatik , 23 (19) : 2507-2517.
  3. Díaz-Uriarte, R., Alvarez de Andrés, S. (2006). Gen seçimi ve rastgele orman kullanarak mikro dizi verilerinin sınıflandırılması. BMC Biyoinformatik , 7 : 3.
  4. Diaz-Uriarte, R. (2007). GeneSrF ve varSelRF: rasgele orman kullanarak gen seçimi ve sınıflandırma için web tabanlı bir araç ve R paketi. BMC Biyoinformatik , 8 : 328

SVM'den bahsettiğinizden, cezalı SVM'yi arayabilirsiniz .


Bunun için teşekkürler. SVM'de özel olarak satılmadım, sadece bir örnek olarak kullanıyordum. Yani rastgele ağaçlar kullanıyorsanız, çapraz doğrulama yapmak zorunda değilsiniz? Bu doğru mu.
danielsbrewer

7
evet, RF'ler bir ağacı büyütürken rastgele değişken örneklemesi (tipik olarak ) içerir ve her bir ağaç bireylerin güçlendirilmiş bir örneğine dayanır; değişken önem, permütasyon tekniği kullanılarak torba dışı örnekler (karar ağacını oluşturmak için kullanılmayanlar) üzerinde hesaplanır. Algoritma m ağaçları için tekrarlanır (varsayılan m = 500) ve ağaç seviyesindeki belirsizliği telafi etmek için (ortalama değer) sonuçların ortalaması alınır. p
chl

3
Rastgele Orman değil, Rastgele Ağaçlar olarak adlandırılması önemlidir; Google ile sorunlarınız olabilir.

1
+1, iyi cevap ve benim için serendipitous - makale referansları için özellikle teşekkürler, inceleme.
ars

Yeterli veriyle, bir test setini çıkarmak, model parametrelerini optimize etmek, tüm tren setine uydurmak (ve "final" sınıflandırıcı olarak adlandırmak) olarak adlandırmak ve son modeli değerlendirmek için eğitim setinde loocv yapmak en iyisi olmaz mıydı? Test setinde?
kullanıcı0

40

Prensip olarak:

Tahminlerinizi tüm veri kümesinde eğitilmiş tek bir model kullanarak yapın (bu nedenle yalnızca bir dizi özellik vardır). Çapraz doğrulama sadece veri setinin tamamında eğitilmiş olan tek modelin öngörücü performansını tahmin etmek için kullanılır. Çapraz doğrulama kullanımında VITAL, her katlamada birincil modele uymak için kullanılan prosedürün tamamını yinelemeniz gerekir, aksi takdirde performansta kayda değer bir iyimser önyargıyla karşılaşabilirsiniz.

Bunun neden olduğunu görmek için, vakaların ve özelliklerin tamamen rastgele olduğu sadece 100 durumda olan 1000 ikili özelliğe sahip ikili bir sınıflandırma problemini göz önünde bulundurun, bu nedenle özellikler ve durumlar arasında istatistiksel bir ilişki yoktur. Veri setinin tamamına temel bir model yerleştirirsek, eğitim setinde vakalardan daha fazla özellik olduğundan daima sıfır hata elde edebiliriz. "Bilgilendirici" özelliklerin bir alt kümesini bile bulabiliriz (bu tesadüflerle ilişkilendirilmiş olur). O zaman sadece bu özellikleri kullanarak çapraz doğrulama yaparsak, rastgele tahminden daha iyi bir performans tahmini alırız. Bunun nedeni, çapraz doğrulama prosedürünün her bir katında, özellikler seçildikçe test edilmek için kullanılan tutulan davalar hakkında bazı bilgiler bulunmasıdır; yapılanlar da dahil olmak üzere. Tabii ki gerçek hata oranı 0,5 olacaktır.

Uygun prosedürü uygularsak ve her katmanda özellik seçimi yaparsak, o durumda kullanılan özelliklerin seçiminde, uzun süredir devam eden durumlar hakkında hiçbir bilgi yoktur. Doğru prosedürü kullanırsanız, bu durumda, yaklaşık 0.5 hata oranı alırsınız (veri setinin farklı gerçekleşmeleri için biraz değişse de).

Okumak için iyi makaleler:

Christophe Ambroise, Geoffrey J. McLachlan, "Mikroarray gen ifade verisine dayanarak gen çıkarımında seçim yanlılığı", PNAS http://www.pnas.org/content/99/10/6562.abstract

OP ile son derece alakalı olan ve

Gavin C. Cawley, Nicola LC Talbot, "Model Seçiminde Aşırı Uygunluk ve Performans Değerlendirmede Sonraki Seçim Yanılgısı", JMLR 11 (Tem): 2079−2107, 2010 http://jmlr.csail.mit.edu/papers /v11/cawley10a.html

bu aynı modelin model seçiminde kolayca görülebileceğini göstermektedir (örneğin, CV prosedürünün her yinelemesinde tekrarlanması gereken bir SVM'nin hiper parametrelerinin ayarlanması).

Uygulamada:

Torbalama kullanmanızı ve performans tahmini için torba dışı hatasını kullanmanızı öneririm. Pek çok özelliği kullanarak bir komite modeli alacaksınız, ancak bu aslında iyi bir şey. Yalnızca tek bir model kullanıyorsanız, özellik seçim kriterine fazla uymamanız ve daha fazla özellik kullanan bir modelden daha kötü tahminler veren bir model ile sonuçlanmanız olasıdır.

Alan Millers regresyonda alt küme seçimi kitabı (Chapman ve Hall istatistiklerinde ve uygulamalı olasılıkta, monografi, cilt 95), iyi bir tavsiye veriyor (sayfa 221), tahmin performansı en önemli şeyse, o zaman herhangi bir özellik seçimi yapmama konusunda , bunun yerine sadece ridge regresyonunu kullanın. Ve bu alt küme seçiminde bir kitapta var !!! ;Ö)


17

Chl'ye eklemek için: Destek vektör makineleri kullanılırken, şiddetle tavsiye edilen bir ceza yöntemi elastik ağdır. Bu yöntem katsayıları sıfıra çekecek ve teoride modeldeki en kararlı katsayıları koruyacaktır. Başlangıçta regresyon çerçevesinde kullanılmış, ancak destek vektör makineleri ile kullanım için kolayca genişletilmiştir.

Orijinal yayın : Zou ve Hastie (2005): Düzenlileştirme ve elastik ağ üzerinden değişken seçimi. JRStatist.Soc. B, 67-2, s.301-320

SVM için elastik ağ : Zhu & Zou (2007): Destek Vektör Makinesi için Değişken Seçim: Sinirsel Hesaplamadaki Eğilimler, bölüm 2 (Editörler: Chen ve Wang)

Elastik net üzerinde iyileştirmeler Jun-Tao ve Ying-Min (2010): Kanser Sınıflandırma ve Gen Seçimi için bir Geliştirilmiş elastik Net: Acta Automatica Sinica, 36-7, pp.976-981


9

Adım 6 (veya 0) olarak, tüm veri kümesinde özellik algılama algoritmasını kullanırsınız.

Mantık şudur: özellikleri seçmek için kullandığınız prosedürün özelliklerini bulmak için bir yöntem olarak çapraz onaylamayı düşünmeniz gerekir. “Bazı verilerim varsa ve bu prosedürü uygularsam, o zaman yeni bir örneği sınıflandırmak için hata oranı nedir?” Sorusunu yanıtlar. Cevabı öğrendikten sonra, tüm veri setinde prosedürü (özellik seçimi + sınıflandırma kuralı geliştirme) kullanabilirsiniz. Durulanmayan bir-out gibi insanlar öngörü özellikleri genellikle örneklem büyüklüğüne bağlıdır çünkü ve kadar genellikle yakın pek de önemli değil.nn1n


Parametreleri (sonunda, özellik seçimi ile birlikte) ayarlarken sınıflandırma / sınıflandırma performansını değerlendirmek için aynı numuneyi (1) kullanırken hala bir genelleme sorunu olduğunu düşünüyorum ve (2) tüm veri setindeki tahminlerini sırayla kullanıyor. Aslında, aşırı onaylama üzerine uygulanan kontrolü, çapraz doğrulama kullanılarak detaylandırılmış kontrolü kırıyorsunuz. Hastie ve diğ. CV tuzaklar güzel bir örnek sağlamak, esp. wrt. özellik seçimi, ESL kitaplarında, 2. basımda § 7.10.2.
chl

@chl: parametreleri ayarlama hakkında bir şey kim söyledi? Başka şeyler yapılırsa, çapraz doğrulama sırasında da tekrarlanmaları gerekir. Algoritmanızı, çapraz onaylanmış iyi bir hata oranı elde edene kadar açıkça değiştirmek "hile yapmaktır". BTW, çapraz onaylamanın, özellikle dışarıda bırakmanın, o kadar da iyi olmadığını kabul ediyorum.
Aniko

değil, hile değildir, çünkü CV size algoritmanın yeni veriler üzerinde nasıl bir performans göstereceğini gösterir. Sadece tüm sete dayanan bir şeye karar vermediğinizden emin olmanız gerekir (bu, tüm setin yapısı hakkında bir bilgi sızıntısıdır, böylece tüm tren parçalarını hemen saptırır).

@mbq - Ankino doğrudur, CV istatistiklerini en aza indirmek için modelinizi ayarlamak "hile yapmaktır" ve final modelin CV istatistiği önemli bir iyimser önyargıya sahip olacaktır. Bunun nedeni CV istatistiğinin ihmal edilemez bir varyansa sahip olmasıdır (sınırlı bir veri kümesinde değerlendirildiği gibi) ve böylece CV istatistiklerini doğrudan optimize ederseniz, fazladan uyuyabilir ve bir model elde edebilirsiniz. Bu, başladığınızdan daha az genelleştirir. Bunun bir gösterimi için, bir makine öğrenmesi bağlamında, bkz. Jmlr.csail.mit.edu/papers/v11/cawley10a.html Çözüm: Yuvalanmış XVAL
Dikran Marsupial

1

Bu şekilde özellikleri seçiyorum. Belirli bilgilere dayanarak, karşılaştırılacak 2 model olduğunu varsayalım. A modelinde no.1 ile no arasında özellikler kullanılmaktadır. 10. Model B 11 numaradan hayır kullanır. 20. Örnek dışı performansını elde etmek için LOO CV'yi A modeline uygulayacağım. B modeli için de aynısını yapın ve sonra karşılaştırın.


-1

Ben sınıflandırma sorunları hakkında emin değilim, ama regresyon problemleri için özellik seçimi söz konusu olduğunda, Haziran Shao gösterdi bırak-One-Out CV asimptotik tutarsız olduğunu olarak 1'e yakınsama etmez özelliklerinin düzgün alt kümesini seçme olasılığı, yani örnek sayısı artar. Pratik açıdan, Shao, Monte-Carlo çapraz onaylama veya çok bırakma prosedürünü önerir.


Oh, yine bir daha; bu makalenin başlığını okudun mu?

2
Tamam, açık olmak gerekirse - LOOCV'nin çok sayıda nesne için iyi bir fikir olduğunu söylemiyorum; Açıkçası öyle değil, ama Shao burada geçerli değil. Aslında çoğu durumda LM'ler için kurallar ML için geçerli değildir.

1
Asimptotik sonuçların, çok sayıda özellik ve karşılaştırmalı olarak az sayıda desene sahip veri kümelerine bakarken pratik kullanımda olup olmadığı sorgulanabilir. Bu durumda, prosedürün varyansının yanlılık veya tutarlılıktan daha büyük pratik önemi olması muhtemeldir. LOOCV'nin temel değeri, birçok model için ihmal edilebilir hesaplama masrafları ile uygulanabilmesidir, bu nedenle önyükleme işleminden daha yüksek bir varyansa sahip olsa da, mevcut hesaplama bütçesi dahilindeki tek uygulanabilir yaklaşım olabilir. Bu yüzden kullanıyorum ama performans değerlendirmesi için başka bir şey kullanıyorum!
Dikran Marsupial
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.