Kaggle yarışmalarında rakiplerin% 98'i nasıl yenilir? Yedi adımlı bir sırra ihtiyacın var

Chestnut Xiaocha Düzenleyin ve derleyin

Qubit Raporu | Genel Hesap QbitAI

Kaggle'ın düzenlediği çeşitli yarışmalarda nasıl etkileyici sonuçlar alabilirim?

Abhay Pawar adlı bir genç, 2600'den fazla takımın katıldığı Instacart Market Basket Analysis yarışmasını yendi. % 98 Karşı taraf.

Bu tahmini bir kullanıcı Gelecekte hangi ürünler satın alınacak Oyun geçmiş işlem verilerine dayanmaktadır.

Genç, yarışmaya katılma konusunda deneyimle doludur ve en önemli şeyin tamamen Özellikleri anlayın .

Bu yüzden bir dizi yedi adımlı sır yazdı ve özellikleri keşfetme deneyimini arkadaşlarıyla paylaştı.

Bu sır bir adla özetlenmiştir featexp Python paketinde portal, metnin altındadır.

Kestane için veri seti , Kaggle Ev Kredisi Temerrüt Riski (temerrütlü tahmin) rekabetindendir.

Şimdi, belirli adımlara bir göz atalım.

Hakim özellikler, Dafa'nın yedi adımı

Oğlan bir modeli dikkatlice gözlemle dedi Kısmi bağımlılık grafiği (Kısmi Bağımlılık Grafiği, PDP), herkesin anlamasına yardımcı olabilir Çıktı özelliklerle nasıl değişir? nın-nin.

Sorun, bu görüntünün eğitimli bir modelle yapılmış olmasıdır. Ve eğer kullanırsan Eğitim verileri Bir resim yapmak için, temeldeki verileri daha iyi anlayabilirsiniz.

1. Özellikleri anlayın

durumunda Bağımlı değişken (Hedef) ikilidir, bu nedenle dağılım grafiğinin kullanımı kolay değildir, çünkü tüm noktalar 0 veya 1'dir.

Sürekli hedefler için çok fazla veri noktası anlaşılmasını zorlaştıracaktır Amaçları ile özellik Aralarındaki ilişki.

Daha kolay görseller oluşturmak için featexp kullanın.

Bu kod satırını deneyin:

featexp'den get_univariate_plots içe aktar # Feature_list parametresinde hiçbir şey aktarılmazsa tüm özellikler için çizim yapılır. get_univariate_plots (data = data_train, target_col = 'target', features_list =, bins = 10)

Featexp, bir sayı özelliğini birçok Eşit sayıda numune Aralık (Eşit Popülasyon Kutuları).

Ardından, hedefin ortalama değerini (Ortalama) hesaplayın ve şöyle bir resim yapın:

Burada ortalama, varsayılan oranı temsil eder. Görüntü bize şunu söylüyor: yaş (DAYS_BIRTH) Kişi ne kadar büyükse, varsayılan oran o kadar düşük olur.

Eğer gençler sözleşmenin ihlali umurunda değilse, bu daha mantıklı.

Her aralıktaki kişi sayısını gösteren başka bir resim daha var (bölündüğünde eşittir):

Ancak bu kestane daha dostça bir özelliktir. Çocuk, sonraki bölümün en ilginç olduğunu söyledi.

2. Gürültülü özellikleri tanımlayın

Gürültülü özellikler kolayca aşırı takmaya neden olabilir ve bu tür özellikleri belirlemek kolay değildir.

Featexp'de test setini çalıştırabilir ve ardından gürültülü özellikleri bulmak için doğrulama seti ile test setinin özellik trendlerini karşılaştırabilirsiniz.

Karşılaştırma için kod budur:

get_univariate_plots (data = data_train, target_col = 'target', data_test = data_test, features_list =)

Ortaya çıkan görüntü şuna benzer:

Gürültünün derecesini ölçmek için, featexp hesaplayacaktır İki gösterge :

Biri Trend Korelasyonu: Eğitim setindeki ve test setindeki bir özellik farklı eğilimler gösteriyorsa, aşırı uyuma neden olabilir. Bunun nedeni, modelin test setinden öğrendiği bazı şeylerin doğrulama setinde geçerli olmamasıdır.

Trend korelasyonu bize eğitim seti ile test seti arasındaki trendlerin benzerliğini, her aralığın ortalama değerini ve bu değerlerin nasıl kullanılacağını söyleyebilir.

Yukarıdaki özellik ile iki set arasındaki korelasyon% 99'dur.

Çok iyi, hiç gürültülü değil.

iki Trend Değişiklikleri: Bazen trendler olacak mutasyon (Ani Değişiklikler) ve Tekrarlanan değişiklikler (Tekrarlanan Değişiklikler).

Bu çok gürültülü bir performans olabilir, ancak bu aralık da olabilir, çünkü diğer özelliklerin performansı çok farklıdır ve etkilenir.

Böyle bir durumda, bu aralıktaki varsayılan oran doğrudan diğer aralıklarla karşılaştırılamaz.

Aşağıdaki özellik gürültülü bir özelliktir ve korelasyon yalnızca % 85 . ara sıra , Bu özelliği atmayı seçebilirsiniz.

Düşük korelasyonlu özellikleri terk edin.Bu yaklaşım, çok sayıda özellik varken ve özellikler birbiriyle çok ilişkili olduğunda daha uygundur.

Aşırı uyumu azaltabilir ve bilgi kaybını önleyebilir. fakat:

Not , Çok fazla önemli özelliği kaybetmeyin. Aksi takdirde modelin tahmin etkisi kaybolabilir.

Not x2 , Ve bir özelliğin gürültülü olup olmadığını değerlendirmek için önem kullanılamaz çünkü bazı özellikler hem önemli hem de aşırı derecede gürültülü olabilir.

Test seti olarak farklı zaman dilimlerine (ve eğitim setine) ait verileri kullanmak daha iyi olabilir. Bu şekilde verilerin zamanla değişip değişmediğini görebilirsiniz.

Lütfen aşağıdaki gösterime bakın.

Featexp'de, görüntülemek için bir veri çerçevesi (Dataframe) döndürebilen bir get_trend_stats () işlevi vardır. Trend korelasyonu ile Trend değişikliği . kod aşağıdaki gibi gösterilir:

featexp içe aktarımdan get_trend_stats istatistik = get_trend_stats (data = data_train, target_col = 'target', data_test = data_test)

Şimdi, bazı özellikleri atmayı deneyebilirsiniz. Uygulamak için bu standartlara başvurmak isteyebilirsiniz:

AUC = Eğri Altındaki Alan, eğrinin altındaki alan değerlendirme modelinin bir göstergesidir

Atılan özelliklerin alaka eşiği ne kadar yüksekse, liderlik tablosundaki AUC de o kadar yüksek olur.

Önemli özelliklerin atılmaması kuralının eklenmesiyle AUC 0,74'e çıkarıldı.

İlginç bir şekilde, test setinin EAA'sı, liderlik tablosunun AUC'si kadar değişmedi.

Kodun tamamı featexp_demo not defterinde bulunabilir:

https://github.com/abhayspawar/featexp/blob/master/featexp_demo.ipynb

3. Özellik Mühendisliği

Bu grafiklere bakarak kazanılan içgörüler, daha iyi özellikler oluşturmaya yardımcı olabilir.

Daha iyi özellik mühendisliği elde etmek için yalnızca verileri daha iyi anlamanız gerekir. Ek olarak, mevcut özellikleri iyileştirmenize de yardımcı olabilir. EXT_SOURCE_1 adlı başka bir özelliğe bakalım:

EXT_SOURCE_1 özelliği ve hedef harita

Daha yüksek EXT_SOURCE_1 değerine sahip müşterilerin varsayılan oranı daha düşüktür. Ancak, ilk aralık (yaklaşık% 8'lik temerrüt oranı) bu karakteristik eğilimi (yükselen ve sonra düşen) izlemez. Sadece -99.985 civarında negatif bir değere sahiptir ve nüfus büyüktür. Bu, bunların özel değerler olduğu ve bu nedenle karakteristik eğilimleri takip etmediği anlamına gelebilir.

Neyse ki, doğrusal olmayan modellerin bu ilişkiyi öğrenmede hiçbir problemi yoktur. Bununla birlikte, lojistik regresyon gibi doğrusal modeller için, bu özel değerler ve boş değerler, sadece özellik ortalamasını kullanmak yerine, benzer temerrüt oranlarına sahip aralıklardan değerler kullanılarak tahmin edilmelidir.

4. Özelliğin önemi

Featexp ayrıca özelliklerin önemini ölçmeye yardımcı olabilir. Hem DAYS_BIRTH hem de EXT_SOURCE_1 iyi trendlere sahip. Ancak, EXT_SOURCE_1 popülasyonu, DAYS_BIRTH kadar önemli olmayabileceğini gösteren özel değer aralığında yoğunlaşmıştır. XGBoost modelinin özellik önemine bağlı olarak, DAYS_BIRTH aslında EXT_SOURCE_1 modelinden daha önemlidir.

5. Özellik hata ayıklama

Featexp grafiğini kontrol etmek, aşağıdaki iki işlemle karmaşık özellik mühendisliği kodundaki hataları bulmanıza yardımcı olabilir:

1) Özelliklerin nüfus dağılımının doğru olup olmadığını kontrol edin. Yazar, bazı küçük hatalar nedeniyle birçok aşırı durumla karşılaştı.

2) Bu grafiklere bakmadan önce, daima karakteristik trendin nasıl görüneceğini varsayın. Karakteristik eğilim beklentileri karşılamıyor gibi görünüyor ve bazı sorunlara işaret edebilir. Açıkçası, bu varsayımsal trend süreci makine öğrenimi modelini daha ilginç hale getiriyor!

6. Kaçak tespiti

Hedeften özelliğe veri sızıntısı aşırı uyuma neden olur. Sızdırılan özellikler yüksek işlevsel öneme sahiptir. Ancak, özellikte neden sızıntı meydana geldiğini anlamak zordur. Featexp grafiğine bakmak bu sorunu anlamanıza yardımcı olabilir.

Aşağıdaki özelliklerin varsayılan oranı "Nulls" aralığında% 0 ve diğer tüm aralıklarda% 100'dür. Açıkçası, bu aşırı bir sızıntı durumudur. Bu özellik, yalnızca müşteri temerrüde düştüğünde değerlidir. Sızıntı özelliğiyle ilgili sorunu bilmek, daha hızlı hata ayıklamanıza olanak tanır.

7. Model izleme

Featexp, iki veri seti arasındaki eğilim ilişkisini hesaplayabildiğinden, model izleme için kolayca kullanılabilir. Model her yeniden eğitildiğinde, yeni eğitim verileri test edilen eğitim verileriyle karşılaştırılabilir (genellikle model ilk oluşturulduğunda eğitim verileri). Eğilim korelasyonu, karakteristik bilgi ile hedef arasındaki ilişkinin değişip değişmediğini izlemenize yardımcı olabilir.

featexp projesi

Yazar Abhay Pawar, denetimli öğrenmeye yönelik bir özellik keşif projesi olan makalede uzun süre featexp kullanmış ve bu yazıda da ağırlıklı olarak bu aracın kullanımı ele alınmıştır. Yukarıda belirtilen özelliklerin anlaşılması, gürültülü özelliklerin tanımlanması, özellik hata ayıklaması, sızıntı tespiti ve model izleme için faydalıdır.

Kurulumu da çok basittir, doğrudan pip ile kurabilirsiniz:

pip featexp yüklemek

Ayrıntılı talimatlar GitHub proje sayfasında bulunabilir:

https://github.com/abhayspawar/featexp

Orijinal Gizli Portal:

https://towardsdatascience.com/my-secret-sauce-to-be-in-top-2-of-a-kaggle-competition-57cff0677d3c

- Bitiş -

Etkinlik planlama işe alımı

Qubit, etkinlik planlamasını işe alıyor ve çevrimiçi ve çevrimdışı ilgili faaliyetlerin farklı boyutlarda planlanmasından ve yürütülmesinden sorumlu olacak. Akıllı ve güvenilir arkadaşlar katılabilir ve umarım etkinlik planlama veya operasyon konusunda biraz deneyim sahibi olabilirsiniz. Ayrıntılar için, lütfen QbitAI diyalog arayüzünde "işe alım" kelimesiyle yanıt verin.

Qubit QbitAI · Toutiao İmzalayan Yazar

' ' Yapay zeka teknolojisi ve ürünlerindeki yeni eğilimleri takip edin

Fan Zhendong / Lin Gaoyuan "Kore Dalgasını" engelledi, Lin Gaoyuan / Chen Xingtong karışık çiftler finaline yükseldi
önceki
En korsan oyun! Farklı bir deride 5 milyon kazanabilirsiniz Çin'in en zengin üç adamı kıskanıyor.
Sonraki
Zhu Yuling, Wu Yang, Chen Xing ve Sun Yingsha dışarıda, Nv Ping "Kara Cuma" ile karşılaştı
Tencent'in sürücüsüz arabası Silikon Vadisi'ne giriyor! Bir ekip kurun, yetenekleri işe alın, Çin'deki iş pozisyonlarını serbest bırakın
Tarihteki en güçlü çapa? King of Glory 333 galibiyet, ilk Guinness rekoru oyuncular tarafından sorgulandı
Zhang Benzhi "sahte" bir Çocuk Günü geçirdi
Dünyanın en zor çevrimiçi oyunu AI tarafından fethedildi! El hızı bir insanınkinin yalnızca yarısıdır, ancak profesyonel bir oyuncuyu 7 dakikada yener
Mavi delik ne kadar utanç verici? Tencent tarafından yüze binmek! PlayerUnknown's Battlegrounds, "Stimulus Battlefield" tarafından adım adım yönetiliyor.
Bu Çin Süper Ligi takımı bir gün iyi ve kötü haberlerle karşılaştı ve AFC Şampiyonlar Ligi büyük zorluklarla karşı karşıya.
Tencent'in 2019'un en gişe rekorları kıran oyunu! 3 yıl boyunca gizlice araştırılıp geliştirildi ve ortaya çıktı ve ilk yerli resmi işaret etti!
Hızlı tempo! Xiaofei ekibinin insansız araç derin öğrenme çipi bantlanmış ve bilgi işlem gücü yerel bir yüksekliğe ulaştı.
Dalian futbol yıldızı, U23 Asya Kupası'na katılmak için takımı Çin'e götürecek
Lütfen araba kullanırken telefonunuzla veya gitarınızla oynamayın, MIT sistemi size bakıyor!
Asya'nın 1 numaralı savunucusu Şampiyonlar Ligi takımına katıldı ve İsrail'de oynaması yasaklandı
To Top