Endüstri ve Kaggle zorlukları. Daha fazla gözlem toplamak ve fantezi modellemeden daha fazla değişkene erişebilmek daha mı önemli?


56

Umarım bu başlık kendi kendini açıklar niteliktedir. Kaggle'da kazananların çoğu, MSE'nin% birkaçını sıkıştırmak için bazen yüzlerce baz modeliyle istiflemeyi kullanıyor, genel olarak, deneyimlerinizde, istifleme gibi fantezi modellemenin ne kadar önemli olduğu, sadece daha fazla veri toplama ve daha fazla özellik toplama veri için?


4
Tamamen hızlı bir şekilde yeniden test edilebilecek (ya da yeni veri setine ya da yeni özelliklere yeniden hedeflenebilecek) genelleştirilebilir bir akış isteyip istemediğinize veya sadece bu özel Kaggle yarışmasını (bu belirli statik veri setinde, sızıntı istismarları, 'sihirli özellikler' ve herşey). İlki için, daha düşük eğitim süresi ve daha küçük veri setleri ile aynı oyun alanı doğruluğunu alan bir algoritma 'daha iyidir'. Kaggle'ın aşırı hesaplama / bellek gereksinimi veya eğitim süresi için ceza almaya başladığını veya sunum puanının bir parçası olarak faktoring yaptığını hayal edin (zaten yapmaları gerektiğini öneriyorum).
smci

2
Rasmus Rothe'nin “Gerçek öğrenme problemlerine derin öğrenmenin uygulanması” ndan alındığında : “[…] gerçek dünya senaryolarında, başka bir yönteme kıyasla yeni algoritmanızın performansta% 1'lik bir sıkıntı yarattığını göstermek daha az işe yaramaktadır. “Gerekli görevi yeterli doğrulukla çözen sağlam bir sistem kurmak” dedi.
beatngu13

Yanıtlar:


77

Arka plan arada, tahmin mağaza yapıyor 12 yıldır perakende satışlar için SKU zaman serisi. Yüzlerce veya binlerce mağaza arasında on binlerce zaman serisi. Terimin popüler hale gelmesinden bu yana Büyük Veri yaptığımızı söylemek hoşuma gidiyor.×

Tutarlı bir şekilde en önemli olanın verilerinizi anlamak olduğunu buldum . Paskalya veya promosyonlar gibi büyük sürücüleri anlamıyorsanız, mahkumdur. Yeterince, bu , belirli bir işletmeyi doğru soruları sormak ve bilinmeyen bilinmeyenlerden bilinen bilinmeyenleri söylemek için yeterince iyi anlamaktır .

Verilerinizi anladıktan sonra, temiz veriler elde etmek için çalışmanız gerekir . Çok sayıda genç ve stajyerin nezaretini yaptım ve tüm istatistik ve veri bilimleri derslerinde hiç deneyimlemedikleri tek şey, sahip olduğunuz verilerde ne kadar berbat olabileceğiydi. Öyleyse ya kaynağa geri dönüp iyi veriler elde etmesini sağlamaya çalışmalı ya da temizlemeye çalışmalı ya da sadece bazı şeyleri atmalısınız. Çalışan bir sistemi daha iyi veri sağlamak üzere değiştirmek şaşırtıcı derecede zor olabilir.

Verilerinizi anladığınızda ve biraz temiz verileriniz olduğunda, onunla oynamaya başlayabilirsiniz. Ne yazık ki, bu zamana kadar kendimi sık sık zamandan ve kaynaklardan buldum.

Ben şahsen, en azından soyut anlamda , çoğu zaman çizgiyi bölgelere doğru geçen ve özellikle meraklısı modeliniz ortalama olarak biraz daha iyi performans gösterse bile , süslü özellik mühendisliği konusunda büyük bir model kombinasyonu ("istifleme") hayranıyım. Birisi çoğu zaman, kötü tahminlerin daha karmaşık bir modelle daha da kötüleştiğini tespit eder. Bu benim iş alanımdaki bir anlaşma. Tek bir gerçekten kötü bir tahmin, tüm sisteme olan güveni tamamen tahrip edebilir, bu nedenle öncelikler listemde sağlamlık son derece yüksektir. Kilometreniz değişebilir.

Tecrübelerime göre, evet, model kombinasyonu doğruluğu artırabilir. Ancak, gerçekten büyük kazançlar ilk iki adımda gerçekleştirilir: verilerinizi anlama ve temizleme (veya ilk sırada temiz veri alma).


4
@bendl, YMMV Kilometreniz Değişebilir . Bundan önceki cümlenin ifadesi farklı koşullar altında az ya da çok doğru olabilir veya olmayabilir.
Orphevs

2
Ayrıca, perakende satışta ~ zaman serisi :-) için SKU / Konum seviyesi tahmini yaparak çalışıyorum . Ama yaptığımız şeyin "Büyük Veri" olarak sayılıp sayılmadığını merak ettim. Genel veri setleri büyük veri aralığında olmasına rağmen, tahmin modelleri genellikle daha küçük veri gruplarına (hiyerarşik tahmin yöntemlerini kullandıktan sonra bile) ve gerçek büyük veri işleme (örneğin MapReduce, veri karmaşası, vb.) İçin gerekli tekniklere uygulanır. .) asla aranmaz. Amazon'un DeepAR gerçek büyük veri gibi görünüyor ve bunun bilim kadar yutturmaca olduğundan şüpheleniyorum. 106
Skander H.

2
Boşver, sadece sınıf deneyimini boşver. Çoğunlukla yüksek sinyal / gürültü oranına sahip, görüntü tanıma gibi bağlamlarda deneyimlenen ve aynı yöntemleri, işe alma gibi gürültülü sosyal süreçlere, Tanrı aşkına uygulamaya çalışan çok sayıda uygulayıcı var.
Brash Dengesi

2
@Orphevs Başka bir deyişle, bu ifade durumuma uygun gelebilir ve genelleşmeyebilir. : P
JAD

2
(+1) Yeni derecelerde veri temizleme konusunda, örgün eğitimim sırasında veri temizlemenin kötü bir şey olduğunu düşünmenin kolay olduğunu belirtmekte fayda var . Yani veri temizliği , tip I hata oranlarını (özellikle de temizlik işleminde önyargı varsa) güçlü bir şekilde etkileyebilir ve bu nedenle veri temizlemenin tehlikeleri hakkında bize bilgi verildi. Bu dersler yanlış değildi, fakat örgün eğitimimin, özellikle öngörücü modelleme durumunda, veri temizlemenin faydalarını vurguladığını sanmıyorum.
Cliff AB,

42

Belli ki tüm endüstri için konuşamam, ama endüstride çalışıyorum ve Kaggle'da rekabet ettim, böylece POV'umu paylaşacağım.

İlk olarak, Kaggle’ın, insanların endüstride yaptıkları ile tam olarak uyuşmadığından şüpheleniyorsunuz. Bu bir oyundur ve çok çılgınca kısıtlamaları olan oyuncılığa tabidir. Örneğin, şu anda çalışan Santander yarışmasında:

  1. Özellik adları yapay olarak anlamlarını gizlemek için harmanlandı.
  2. “Eğitim” seti yapay olarak, sütunlardan daha az sayıda sıra içerecek şekilde sınırlandı, böylece özellik seçimi, sağlamlık ve düzenlileştirme tekniği başarı için vazgeçilmez olacaktı.
  3. Sözde "test" seti eğitim seti daha belirgin farklı bir dağılıma sahiptir ve iki açıkça değil aynı popülasyondan rasgele örnekler.

Biri bana işyerinde böyle bir veri seti verseydi, derhal özellik mühendisliği konusunda onlarla çalışmayı teklif ederdim, böylece daha kullanışlı özellikler elde edebilirdik. Etki alanı terimlerinin olası terimler, eşikler, kategorik değişken kodlama stratejileri vb. Konularına karar vermek için alan bilgisini kullanmamızı öneririm. Sorunu bu şekilde değerlendirmek, bir veritabanı mühendisi tarafından üretilen bir eksoz dosyasından anlam çıkarmaya çalışmaktan çok daha verimli olacaktır. ML eğitimi.

Ayrıca, belirli bir sayısal sütunun bir ZIP kodundan ziyade tamamen sayısal olmadığını öğrenirseniz, verilerinizi artırmak için ABD Nüfus Sayımı gibi üçüncü taraf veri kaynaklarından veri alabilir ve alabilirsiniz. Veya randevunuz varsa, o gün için S&P 500 kapanış fiyatını da dahil edersiniz. Bu tür dış büyütme stratejileri, belirli veri seti ve önemli alan bilgisi hakkında ayrıntılı bilgi gerektirir, ancak genellikle saf algoritmik gelişmelerden çok daha büyük kazanımlara sahiptir.

Bu nedenle, endüstri ile Kaggle arasındaki ilk büyük fark, endüstride, özelliklerin (girdi verileri anlamında) pazarlığa açık olmasıdır.

İkinci bir farklılık sınıfı ise performanstır. Genellikle, modeller iki yoldan biriyle üretime dağıtılır: 1) model tahminleri çok geniş bir veritabanı tablosunda her satır için önceden hesaplanır, veya 2) bir uygulama veya web sitesi modele tek bir veri satırını geçer ve gerçek zamanlı olarak döndürülen bir tahmin gerekir. Her iki kullanım durumu da iyi performans gerektirir. Bu nedenlerden dolayı, K-En Yakın Komşular veya Ekstra Rastgele Ormanlar gibi büyük miktarda bellek tahmin etmek veya kullanmak için yavaş olabilecek modelleri görmezsiniz. Buna karşın, lojistik bir regresyon veya sinir ağı, birkaç matris çarpımına sahip bir yığın grubu kaydedebilir ve matris çarpımı, doğru kütüphanelerle yüksek düzeyde optimize edilebilir .Parametrik olmayan başka bir modelde istiflenmişsem +0.001 AUC alabilirsem de, tahmin verim ve gecikme süresinin çok fazla düşeceği için yapamam.

Bunun bir güvenilirlik boyutu da var - dört farklı teknoloji harikası 3. parti kütüphanenin istiflenmesi , LightGBM , xgboost , catboost ve Tensorflow'un ( elbette GPU'larda ) sizi MSE'de düşürdüğünü gösteriyor. Kaggle yarışmalarını kazanır, ancak bir şeyler ters giderse yüklemek, dağıtmak ve hata ayıklamak için dört farklı kütüphanedir. Tüm bunları dizüstü bilgisayarınızda çalıştırabilirseniz harika olur, ancak AWS'de çalışan bir Docker konteynerinin içinde çalışmasını sağlamak tamamen farklı bir hikaye. Çoğu şirket, yalnızca bu tür dağıtım sorunları ile ilgilenmek için küçük bir devops ekibine önderlik etmek istememektedir.

Bu, kendi içinde istifleme mutlaka büyük bir anlaşma değil dedi. Aslında, hepsi eşit derecede iyi performans gösteren ancak çok farklı karar sınırlarına sahip birkaç farklı modelin istiflenmesi, AUC'de küçük bir çarpma ve sağlamlıkta büyük bir çarpma elde etmenin harika bir yoludur. Sadece dağıtım sorunlarınız olmaya başlayabilmeniz için heterojen topluluğunuza çok fazla mutfak lavabo atmaya gitmeyin.


Küçük not, bence # 2 numaralı mermi cümlenin sonunu özlüyor mu?
mbrig

20

Tecrübelerime göre, daha fazla veri ve daha fazla özellik, en gelişmiş, en çok istiflenmiş, en çok ayarlanan modelden daha önemli.

Gerçekleşen çevrimiçi reklamcılık yarışmalarına bakın. Kazanan modeller o kadar karmaşıktı ki, eğitmek için bir hafta sürdü (endüstri standardına göre çok küçük bir veri setinde). Bunun üzerine, yığılmış bir modeldeki tahmin, basit bir doğrusal modelden daha uzundur. Aynı konuda, Netflix'in 1M $ algoritmasını mühendislik maliyetleri nedeniyle hiç kullanmadığını unutmayın .

Çevrimiçi veri bilimi yarışmalarının, bir şirketin topladıkları verileri (bir noktada) kullanarak "elde edilebilecek en yüksek doğruluğu (veya herhangi bir performans ölçümü) ne olduğunu" bilmesi için iyi bir yol olduğunu söyleyebilirim. Bunun aslında çözülmekte olan zor bir problem olduğunu unutmayın! Ancak, endüstride, alan bilgisi, donanım ve ticari kısıtlamalar genellikle "fantezi modelleme" kullanımını engeller.


2
Doğru, ayrıca veri toplama sürecinin her zaman gelişmekte olduğu durum olabilir. Bu, şu anda kullanılan algoritmaların modası geçmiş olacağı anlamına gelir (belirttiğiniz gibi mühendislik maliyeti ya da eğitim süresi üzerine). Bu nedenle, daha basit, daha hızlı ve daha esnek algoritmalar gerekli olacaktır.
Tom,

4
Bu
yazının

14

İstifleme karmaşıklığı önemli ölçüde arttırır ve yorumlanabilirliği azaltır. Kazançlar haklı çıkarmak için genellikle nispeten küçüktür. Bu nedenle montaj muhtemelen yaygın olarak kullanılırken (örneğin XGBoost), endüstride istiflemenin nispeten nadir olduğunu düşünüyorum.


1
İyi bir nokta. Uygulamalarımda yorumlanabilirlik son derece önemlidir (mağaza yöneticileri tahminin neden olduğunu anlamak istemektedir ), bu nedenle yorumlanması zor modellerin bir sorunu var.
S. Kolassa - Monica'yı

Kişisel görüşleriniz için teşekkürler Stephan. Model karmaşıklığı arttıkça yorumlanabilirliğin acı çektiğini veya ortadan kalktığını düşünmeme rağmen, bir şirkette kesinlikle daha fazla baskı gerektiren zaman kısıtlamalarını düşünmedim. Fantezi modelleme muhtemelen en kötü (kazanılan doğrulukta) / (harcanan zaman) oranına sahiptir.
Tom,

8

Tecrübelerime göre iyi veri ve özelliklerin toplanması çok daha önemlidir.

Çalıştığımız müşteriler genellikle çok fazla veriye sahiptir ve bunların hepsi kolayca dışa aktarılabilen veya üzerinde çalışılabilecek biçimde değildir. İlk veri grubu genellikle çok kullanışlı değildir; modeli daha kullanışlı hale getirmek için hangi verilere ihtiyacımız olacağını bulmak için müşteri ile çalışmak bizim görevimizdir. Bu çok yinelemeli bir süreçtir.

Devam eden bir sürü deney var ve şu modellere ihtiyacımız var:

  1. Hızlı tren
  2. Tahmin etmek hızlı (Ayrıca bir iş gereğidir)
  3. Yorumlanması kolay

Nokta 3) özellikle önemlidir, çünkü yorumlanması kolay olan modeller müşteriyle iletişim kurmak daha kolaydır ve yanlış bir şey yaparsak yakalamak daha kolaydır.


7

İşte Kaggle'da pek fazla olmayan bir şey:

  • Modelinizde daha fazla değişken varsa ve
  • Bu değişkenlerle çıktı arasındaki ilişki ne kadar karmaşıksa,

daha riskli o modelin ömrü boyunca karşı karşıya gelecek. Zaman tipik olarak Kaggle yarışmalarında dondurulur veya test set değerlerinin geldiği kısa bir gelecek zaman penceresi vardır. Endüstride bu model yıllarca sürebilir. Tek yapmanız gereken, kusursuz bir şekilde yapılmış olsa bile, tüm modelinizin cehenneme gitmesi için haywire yapmaktır. Anladım, kimse rakiplerin model karmaşıklığını riske karşı dikkatli bir şekilde dengelediği bir yarışmayı izlemek istemiyor, ancak bir işte, sorumlu olduğunuz bir modelde bir şeyler ters giderse işiniz ve yaşam kaliteniz zarar görecek. Aşırı derecede zeki insanlar bile bağışıklık kazanmazlar. Örneğin, Google Grip Trendleri tahmin hatası . Dünya değişti ve onun geldiğini görmediler.

OP'nin sorusuna, " Genel olarak, deneyiminizde, istifleme vs sadece veri için daha fazla veri toplama ve daha fazla özellik toplama gibi fantezi modelleme ne kadar önemlidir? " Peki, resmen yaşlıyım, ama cevabım siz Gerçekten sağlam modelleme altyapısı, girdi-çıktı ilişkisinin nispeten kolay olduğu minimal değişkenler içeren basit modellere sahip olmak daha iyidir. Bir değişken, kayıp ölçümünüzü zar zor iyileştirirse, onu bırakın. Unutma ki bu bir iş. "Büyük ya da eve git" teşvikinin olduğu Kaggle yarışmalarında çalışmalarınızı tekmeleyin.

Bunun bir istisnası, iş durumunun belirli bir seviyede model performansı talep etmesiydi, örneğin şirketinizin bir rekabet avantajı elde etmek için (muhtemelen pazarlamada) bir rakibin performansını eşleştirmesi veya yenmesi gerekiyorsa. Ancak, model performansı ile işletme kazancı arasında doğrusal bir ilişki olduğunda, karmaşıklıktaki artışlar genellikle finansal kazancı haklı çıkarmaz (bkz. " Netflix asla 1 Milyon Dolarlık Algoritmasını Mühendislik masrafları nedeniyle kullanmadı " - aynı alıntıdan @ RUser4512'ye özür dileriz) makale). Bununla birlikte, bir Kaggle yarışmasında, ek kazanç, yakındaki çözümlerden geçtiğinizde sizi yüzlerce aşamaya götürebilir.


3

Gary Kasparov'un kitabı Deep Thinking'den sevdiğim bir alıntı.

Akıllıca bir süreç, üstün bilgi ve üstün teknolojiyi yener

Temelde zaman serisi finansal verileri ve veri toplama, temizleme, işleme ve daha sonra ne yapmak istediklerini bulmak için problem sahipleri ile birlikte çalışarak daha sonra denemek ve mücadele etmek için özellikler ve modeller oluşturmak için çalışıyorum. sorun ve nihayet bir dahaki sefere iyileştirme sürecini geriye dönük olarak incelemek.

Bütün bu süreç, parçalarının toplamından daha büyük. Doğrusal / lojistik bir regresyon ile 'kabul edilebilir' genelleme performansı elde etme eğilimindeyim ve etki alanı uzmanlarıyla konuşup özellikleri üretmek için harcadım, modelimi sahip olduğum verilere uydurmaktan daha fazla zaman harcadım.

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.