Bekletme kümesi oluşturmanın daha uygun yolu nedir: bazı konuları kaldırmak veya her konudan bazı gözlemleri kaldırmak?


11

26 özellikli ve 31000 satırlı bir veri setim var. 38 deneğin veri kümesidir. Biyometrik bir sistem içindir. Bu yüzden konuları tanımlayabilmek istiyorum.

Bir test setine sahip olmak için, bazı değerleri kaldırmam gerektiğini biliyorum.

Peki ne yapmak daha iyi ve neden?

  1. (a) 30 kişiyi eğitim seti olarak saklayın ve 8 kişiyi test seti olarak kaldırın

  2. (b) 38 konuyu saklayın, ancak her birinin bazı satırlarını kaldırın. Sonunda bir eğitim seti ile sonuçlanacağım: 38 deneğin 24800 satırı VE bir test seti: 38 deneğin 6200 satırı


1
Konuları tanımlamak istiyorsanız, bir test seti için "tüm" konuları nasıl kaldırabilirsiniz? 30 denek üzerinde eğitilmiş olan model, daha önce hiç görmediği 8 denek değil, sadece bu 30 denek tanımlayabilecektir. "Biyometrik sistem" hakkındaki açıklamanız, mevcut cevapların çoğunu geçersiz kılabilir.
amip

1
Açıklığa kavuşturmak faydalı olacaktır: (1) kesin hedef, tahmin değişkenine ne vermeye çalıştığınız sonuç değişkeni (2) hangi verilere sahip olduğunuzu ve muhtemelen (3) hangi yaklaşımı kullandığınızı.
Matthew Gunn

Sistemi eğittikten sonra nasıl dağıtılacak? Amaç eğitim setinde olmayan insanlarda mı kullanılmalı? Yeni veriler aynı 38 denekten mi olacak? Sistemin nasıl kullanılması gerektiğini ve @ AmiTavory'nin cevabının (1) veya (2) vakasında olup olmadığınızı anlamaya çalışıyorum.
Matthew Gunn

@ amoeba çok deneyimli değilim :( Soruyu sordum çünkü veriyi ayırma (eğitim, doğrulama ve test etme) önerildi. 1) Konuları tanımlayabilmek istiyorum. Özellikleri kime aittir. 2) EEG kullanıyorum (yani zaman serisi). 3) Tabakalı kat kullanıyorum. Ama bunun nedeni, onunla kfold'dan daha yüksek bir doğruluk elde etmem. Sadece k-katını, katmanlaşmayı ve bir tanesini bırakmayı biliyordum. Her zaman düşündüğüm gibi verilerdeki dengesizliği telafi etmek oldu. Ama önerilere açığım.
Aizzaac

@MatthewGunn Veri kümesinde olmayan insanlarla kullanmak mümkün olmayacağını düşünüyorum. Bu çok zor olurdu, ancak başarılırsa çok ilginç olurdu. Durum 1 diyebilirim.
Aizzaac

Yanıtlar:


9

Matthew Gunn'ın cevabının doğru olduğunu düşünüyorum, ancak bana göre "rekor düzeyde" CV iki farklı kavramı kapsayabilir:

  1. Kayıtlar konu veya zamandan bağımsız olarak rastgele katlara bölünür.

  2. Kayıtlar zamana dayalı katlamalara bölünür ve test katlama başlangıcından sonra veri içeren eğitim için katlama yapılmaz.

İlk durumda, eğitim setiniz hem test setinizden önce hem de sonra veri içerebileceğinden, verilerinizin herhangi bir zaman serisi niteliğinden ödün veriliyor. Tren / Test prensibi, Eğitim verilerinin bugüne kadar bilinen verileri ve Test verilerinin henüz görülmemiş verileri (belki de geleceğe ait) temsil etmesidir.

Belki de zaman serisi otokorelasyon 2 numaralı seçeneği tehlikeye atar. Belki de modelin zaman unsuru gerçekten önemli değildir ve bu nedenle "geçmiş" ve "gelecek" gözlemleri muhtemelen aynı olacaktır. Bu durumlarda, # 1 ya da # 2 yolu yoktur.

Sadece mevsimsellik varsa ve eğilimler yoksa, yeni konuları (aynı mevsimsellikten etkilenecek) tahmin etmek için bazı konuları eğitime "geleceği" dahil etmek uygun görünmektedir. Eğilimler varsa, geleceğe yönelik eğitim, modeli üretimde kullanırken gerçekten bilmeyeceğiniz bir gelecek hakkında bir şeyler öğrenmelidir.

OP örneğinde, özne iyi gibi görünüyor. Ancak trendler ve zaman serisi endişeleri modelin bir parçasıysa, konuya ve zamana dayalı bölümlemeyi kullanmaya çalışacağım, böylece belirli bir noktadan önce bir konu kümesi üzerinde eğitim verdiniz, sonra diğer konuları test ettiniz. zaman içinde belirli bir noktaya.


1
+1 Zaman serisi yapısı varsa, geleceği geçmişi tahmin etmek için kullanmamalısınız! Bu kez de kullanılamaz bilgileri kullanarak, finans yaygın ve tehlikeli bir hatadır (gelecekte kadar bilinmediği için) seferde ... vb döner, varsayılan tahmin etmek . Karmaşık projeler ve tonlarca veriyle, hata yapmak ve eğitim algoritmanızın geleceğe etkili bir şekilde zirveye çıkması çok kolay olabilir ve gerçekte mümkün olmayan sonuçlar elde edilir. ttt
Matthew Gunn

1
Uygulamanın uygun bölmenin ne olduğuna karar verdiğini söyleyebilirim. Örneğin zaman serilerinde bile, bölünmenin bilinmeyen öznelerin sonraki ölçümleri için bağımlı değişkeni tahmin etmek görev olabilir, bu da bölünmenin zaman açısından olduğu kadar konu olarak da yapılması gerektiği anlamına gelir.
Sb ile mutsuz cbeleites

3
@cbeleites: Kabul etti. Yeni bir projede yaptığım şey: verileri tren ve test konularına ayırın ve test için sadece tarih öncesi verileri ve test için bu tarihten sonra verileri kullanın, bu yüzden asla yapamayacağımız konular üzerinde test yapıyorduk bir dönem boyunca henüz görmedik. Modelinizin pratikte ne kadar iyi olacağını gerçekten bilmek istiyorsanız, güverteyi üst üste çıkmadan size karşı istiflemek istersiniz.
Wayne

16

Bir kritik ayrım istediğiniz olup olmadığıdır:

  1. [En yaygın durum]: Yeni konulardaki (verilerinizle aynı popülasyondan alınan) bir performans tahmini oluşturun.
  2. Örneğinizle aynı konulardaki yeni gözlemlerde bir performans tahmini oluşturun .

Çok daha yaygın olan durum vaka numarasıdır (1). Örneğin, acil servise gelen biri için kalp krizlerini ne kadar iyi tahmin edersiniz? Eğer durum (1) iseniz Ve, hemen hemen kesinlikle , (b) rekor akıllı çapraz doğrulama yerine (a) tabi akıllıca çapraz doğrulama yapmalıdır. Muhtemelen (1) durumunda rekor düzeyde validasyon yapılması, yeni deneklerde makul olmayan şekilde yüksek, sahte performans tahminlerine yol açacaktır.

Ne yapmaya çalıştığınızı tam olarak anlamıyorum (ve belki de kendi kendine çalışmadır, bu yüzden soru tamamen gerçekçi değildir). Hangi durumda olduğunuzu bilmiyorum. Çok daha az yaygın bir durumdaysanız (2), akıllıca kayıt doğru olabilir.

İstatistiklerdeki genel bir tema, neyin bağımsız ve neyin ilişkili olduğu hakkında dikkatlice düşünmektir. Genel olarak, bağımsız bir gözlem farklı bir özne olma eğilimindedir . Yeni konulardaki performansı tahmin etmek istiyorsanız , eğitim almadığınız konuları test etmelisiniz!

Neden rekor değil, özne çapraz doğrulama?

Tipik ortamlarda, aynı bireyin tekrarlanan gözlemleri, özelliklerin şartlandırılmasından sonra bile birbiriyle ilişkilidir. Dolayısıyla, rekor düzeyde çapraz doğrulama ile, test setiniz egzersiz setinizden bağımsız değildir ! Aşırı mükemmel korelasyon durumunda, eğitim setinde ve test setinde aynı gözlemlere sahip olacaksınız! Test setinde antrenman yapardın! Çapraz doğrulama ölçülen performans olur olmayan yeni konularda performansı gösterdiği.

Örneğin, bu son makalede rekor düzeyde çapraz doğrulama, `` Voodoo Machine Learning. ''

Bu kadar az sayıda konu ile ne yapmalı ...

k=n

Eğitim verilerini en üst düzeye çıkarmak için yapabileceğiniz bir şey, çapraz doğrulama için bir konuyu dışarıda bırakmaktır. Her yineleme, farklı bir uzaklaştırma konusunu test edin ve diğerlerini eğitin.

n=38


Veri kümesinin 3'e bölünmesi gerektiğini biliyorum: eğitim, doğrulama ve test. Çapraz validasyonda "eğitim ve validasyon" kullanılır. Bekletme seti "test etme" dir. Şunu öneriyorsunuz: eğitim ve validasyon için 37 denek kullanın ve 1 denekte test edin? Ve ben herhangi bir çapraz doğrulama yapabilirim: k-kat, tabakalı, vb?
Aizzaac

1
OP, "Bu bir biyometrik sistem için. Konuları tanımlayabilmek istiyorum" diyerek bir düzenleme yaptı. Bunun ne anlama geldiğini doğru anlarsam, yalnızca rekor CV'lerin mantıklı olduğunu ima eder, çünkü amaç konu örneğini temel alarak tahmin etmektir.
amip

@amoeba Yalnızca aynı 38 denekten yeni veri gelmesi durumunda . Örneğin. sistemin parmak izlerinin eşleşip eşleşmediğini söylemesi gerekiyorsa ve evimin ön kapısında konuşlandırılacaksa (yani yabancıları yabancı olarak tanımlamalı), aynı konularda eğitim ve test yapmak sorunlu olacaktır ( daha önce hiç görmediği, hiç eğitim görmediği insanlara ne sıklıkla giriş yaptığını bilmek ister). "Bu bir biyometrik sistem için" soruları gündeme getiriyor ...
Matthew Gunn

3

Bu gerçekten tren / test bölümü ile taklit etmek istediğiniz ayarı nasıl düşündüğünüze bağlıdır. İşleri somut hale getirmek için, her satırın bir konunun uyku kalitesini tek bir gecede açıkladığını varsayalım.

  1. Gelecekte, her konunun önce bir uyku laboratuvarına gelmesi ve size birkaç gece uyku kalitesini sunması mümkündür. Bunu takiben, bu konular için gelecekteki gecelerin uyku kalitesini tahmin etmeniz gerekecektir . Bu durumda, b) seçeneğinizi kullanırsınız. İçinde sklearn, kullanabilirsinizsklearn.model_selection.StratifiedShuffleSplit

  2. Gelecekte, birkaç konunun önce bir uyku laboratuarına gelmesi ve size birkaç gece uyku kalitesini sağlaması mümkündür. Bunu takiben, diğer konular için gelecekteki gecelerin uyku kalitesini tahmin edeceksiniz . Bu durumda, a) seçeneğinizi kullanırsınız. İçinde sklearn, kullanabilirsinizsklearn.cross_validation.LeavePLabelOut


1
Gerçekçi olmakla birlikte, soru neredeyse kesin olarak sizin durumunuz (2) ve seçenek (a), yani konu olarak çapraz doğrulama, uygun olan şeydir.
Matthew Gunn

1
@MatthewGunn Haklısın. Durum 2 çok daha yaygındır. Ben söylemeliyim var 1 doğru seçim olduğunu gerçek hayattaki durumlarda içine çalıştırın.
Ami Tavory

1
İlginç. (1) Bazı büyük, yerleşik müşteri tabanları için yeni gözlemler yapmakta haklı olduğunu görebiliyordum. Alınan nokta. Belki de çok sert tepki veriyorum çünkü yakın zamanda bu makaleyi tıp alanında rekor düzeyde çapraz onaylamanın yaygın olarak kötüye kullanılması üzerine okudum .
Matthew Gunn

Bunun hakkında ne düşünüyorsun: 38 konuyu her türlü çapraz doğrulamayla kullanıyorum; ve modelimin farklı bir konu ile kullanılıp kullanılamayacağını test etmek için; Çevrimiçi bir veri kümesi mi kullanıyorum? Bekletilen bir küme fikrinin, modeli test etmek için "yeni" bir veri kümesine sahip olmak olduğunu düşünüyorum.
Aizzaac

3

Girmek için, uygulamanın bilinmeyen konuları tahmin etmek olduğunu varsayıyorum. Bu, (zaman serileri veya doğası gereği sırasız olarak tekrarlanan ölçümleriniz olup olmadığına bakılmaksızın), bilinmeyen konuların test edilmesi için bölünmenin yapılması gerektiği anlamına gelir => bölme a)

Sadece 38 konunuz olduğu düşünüldüğünde, yeniden örnekleme doğrulamasını düşünmelisiniz. Benzer şekilde küçük örnek boyutlarıyla (daha fazla özellik olsa da) çalışma deneyimimden, kısaca bazı öneriler:

  • Konuyla ilgili önyükleme dışı veya yinelenen çapraz doğrulamayı tercih edin. Küçük örnek boyutu problemlerinde çok önemli olan modellerinizin kararlılığını değerlendirmenizi sağlar. Sonuçlar, kararsızlığın bir sorun olması durumunda toplu bir model için bile kullanılabilir.

  • Do not izin-tek konu aşımı yok. Ne model kararlılığını ölçmeye ne de azaltmaya izin verir. Buna ek olarak, küçük örneklem büyüklüğü nedeniyle (büyük bir kötümser eğilimin aksine) büyük bir kötümser önyargıya maruz kaldığı durumlar vardır.

  • Doğruluk, hassasiyet, özgüllük gibi tipik sınıflandırma rakamlarını kullanıyorsanız ve görev, konuları doğru bir şekilde sınıflandırmaktır: kritik sonuçların performansı ölçtüğüne dikkat edin, çünkü test sonuçlarının belirsizliği mutlak sayıya bağlıdır test vakalarının. Örnek olarak, gerçekten pozitif 17 denekten 17 doğru tahminini gözlemlemek, duyarlılık için yaklaşık% 80 ila% 100 arasında değişen% 95 güven aralığına karşılık gelir.
    Başka bir deyişle, buna dayalı veri odaklı model optimizasyonu yapamazsınız.

  • Bu aynı zamanda, burada istatistiksel olarak anlamsız karşılaştırmalar için kaynakları boşa harcayacağınız için üç setli bir bölme (iç içe çapraz doğrulama) ayarlamanız gerekmediği anlamına gelir - optimizasyonunuzun neredeyse başarısız olacağı garanti edilir (ancak kararlılığı kontrol etmeyin).

  • Önerilen 5 (3) test / optimizasyon / doğrulama konusu için binom güven aralığı için aynı hesaplama,% 50'ye (% 30) kadar olan tüm doğru aralıklar için% 95 ci verir, bu nedenle mükemmel test sonuçlarına dayanarak güven aralığınız hala 50 / 50 tahmin!

Bu konular hakkında yazdığımız bazı makaleler:

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.