Tek bir çerçeve neredeyse tüm makine öğrenimi sorunlarını çözer

Lei Feng Net Not: Bu makalenin yazarı Yang Xi, orijinal metin yazar tarafından yayınlandı kişisel blog Leifeng.com yetkilendirildi.

Geçen hafta, Abhishek Thakur adlı bir veri bilimci, Linkedin'inde (Neredeyse) Herhangi Bir Makine Öğrenimi Problemine Yaklaşımla ilgili (Neredeyse) Herhangi Bir Makine Öğrenimi Problemine Yaklaşan bir makale yayınladı ve kendi oluşturduğu ve neredeyse tüm makine öğrenimi problemlerini çözebilecek otomatik bir makine öğrenimi çerçevesini tanıttı. Proje çok hızlı. Ayrıca yayınlanacak. Bu makale Kaggle'da hızla popüler oldu. 100'den fazla veri bilimiyle ilgili yarışmaya katıldı ve çok değerli deneyim biriktirdi. Esprili bir şekilde, "Böyle bir çerçeve yazmak çok fazla deneyim gerektirir. Herkes buna sahip değil. Birçok insanın değerli deneyimleri var, ancak paylaşmak istemiyorlar. Ben biraz deneyimi olan ve paylaşmaya istekli biriyim. " Elbette bu makale de tartışmalı ve pek çok kişi kapsamlı olmadığını düşünüyor.

Ben de son zamanlarda Kaggle'a katılmaya hazırlanıyorum, daha önce birkaç örnek görmüştüm ve bir analiz sürecini de özetledim.Bugün bu yazıyı okudum ve bazı verimli yöntemlerden bahsettim.En kuru olanı masa yapmasıdır. Her algoritmanın genellikle eğitilmesi gereken parametreler listelenmiştir.

Bu soru çok önemlidir, çünkü çoğu zaman parametreleri ayarlayarak ve modelleri eğiterek doğruluğu artırmaktır. Yeni başlayan biri olarak, ilk aşamada, en çok bilmek istediğim soru, parametrelerin nasıl ayarlanacağıdır. Analiz rutini çok basit olduğu için sadece birkaç adım var ve sadece birkaç yaygın kullanılan algoritma var.Algoritmayı çağırmanın yeterli olduğunu düşünüyorsanız, bu kesinlikle yeterli değil. Gerçek süreçte, algoritma çağrıldıktan sonra sonuçlar genellikle çok iyi değildir.Bu sırada, hangi parametrelerin ayarlanabileceği, hangi verilerin daha fazla işlenmesi gerektiği ve daha uygun algoritmaların var olduğu daha fazla analize ihtiyaç vardır.

Çerçevesine bir göz atalım.

Veri bilimcilerinin zamanının% 60-70'inin veri temizleme ve model algoritmaları uygulamaya harcandığı söyleniyor.Bu çerçeve esas olarak algoritmanın uygulama kısmına yöneliktir.

Kaggle nedir?

Kaggle, veri bilimi yarışmaları için bir platformdur. Birçok şirket, gerçek işletmeye yakın bazı sorunları yayınlayacak ve veri bilimini seven insanları birlikte çözmek için çekecek. Bu veriler aracılığıyla deneyim biriktirebilir ve makine öğrenimi düzeyini artırabilirsiniz.

Kaggle problemlerini çözmek için algoritmalar uygulamak için genellikle aşağıdaki adımlar vardır:

1. Adım: Sorunu belirleyin

Adım 2: Verileri ayırın

3. Adım: Özellikleri oluşturun ve çıkarın

4. Adım: Verileri birleştirin

5. Adım: Ayrıştırın

6. Adım: Özellikleri seçin

7. Adım: Eğitim için bir algoritma seçin

Tabii ki, bir işçi işini iyi yapmak istiyorsa, önce aletlerini keskinleştirmeli ve aletleri ve çantaları yerleştirmelidir. En uygun yol, veri bilimi için gerekli paketlerin çoğunu içeren Anaconda'yı kurmaktır, sadece doğrudan içe aktarın. Yaygın olarak kullanılan paketler şunlardır:

-pandalar: genellikle verileri işlem için bir veri çerçevesine dönüştürmek için kullanılır

-scikit-learn: İçinde kullanılacak makine öğrenimi algoritma modelleri var

-matplotlib: resim çizmek için kullanılır

-Ve xgboost, keras, tqdm vb.

1. Adım: Sorunu belirleyin

Bu adımda, sorunun sınıflandırma mı yoksa regresyon mu olduğu açıktır. Soru ve verilerle değerlendirilebilir.Veri X ve etiket sütunlarından oluşur.Etiket bir sütun veya birden fazla sütun olabilir. İkili veya gerçek olabilir. İkili olduğunda sorun sınıflandırmaya aittir. Gerçek olduğunda sorun Dönülecek.

Adım 2: Verileri ayırın

Verileri neden iki bölüme ayırmanız gerekiyor?

Modeli eğitmek için Eğitim Verilerini ve modelin performansını test etmek için Doğrulama Verilerini kullanın. Aksi takdirde, çeşitli ayarlama parametreleri aracılığıyla model, eğitim veri kümesinde çok iyi performans gösterebilir, ancak bu, aşırı uydurma olabilir. Mevcut verilere fazlasıyla bağımlıdır, uydurma etkisi özellikle iyidir, ancak yalnızca eğitim seti için geçerlidir, böylece yeni bir veri geldiğinde, tahminin ne olacağını bilmiyorum. Bu nedenle, bu modelin kendi kendine eğlence için var olup olmadığını veya gerçekten iyi performans gösterip göstermediğini görmek için doğrulama gereklidir.

Scikit öğrenme paketinde bunu yapmanıza yardımcı olabilecek araçlar vardır:

Sınıflandırma problemleri için StrtifiedKFold kullanın

sklearn.cross_validation'dan içe aktarma StratifiedKFold

Regresyon problemleri için KFold

sklearn.cross_validation'dan içe aktarma KFold

Adım 3: Özellikleri oluşturma

Şu anda verilerin modelin gerektirdiği forma dönüştürülmesi gerekiyor. Üç tür veri vardır: sayılar, kategoriler ve metin. Veriler kategoriler biçiminde olduğunda, her bir kategoriyi ayrı bir sütun olarak çıkarmak ve ardından her kaydın karşılık gelen değerini temsil etmek için ikili kullanmak gerekir. Örneğin:

kayıt 1: cinsiyet kadın

kayıt 2: cinsiyet kadın

kayıt 3: cinsiyet erkek

Dönüşümden sonra:

Kadın erkek

kayıt 1: 10

kayıt 2: 10

kayıt 3: 01

Bu süreç sklearn size şu konularda da yardımcı olabilir:

sklearn.preprocessing adresinden LabelEncoder'ı içe aktar

veya

sklearn.preprocessing'den OneHotEncoder'ı içe aktar

4. Adım: Verileri birleştirin

Özelliği işledikten sonra bunları bir araya getirin. Veriler yoğunsa, numpy'nin hstack'ini kullanabilirsiniz:

numpy'yi np olarak içe aktar

X = np.hstack ((x1, x2, ...))

Seyrekse, sparse's hstack'i kullanın:

cılız ithalattan seyrek

X = seyrek.hstack ((x1, x2, ...))

Kombinasyondan sonra aşağıdaki algoritma modelleri uygulanabilir:

-RandomForestClassifier

-RandomForestRegressor

-ExtraTreesClassifier

-EkstraTreeRegressor

-XGBClassifier

-XGBRegresör

Ancak doğrusal model uygulanamaz ve verilerin yukarıdaki ön işleme yerine doğrusal modelden önce düzenlenmesi gerekir.

5. Adım: Ayrıştırın

Bu adım, modeli daha da optimize etmek içindir, aşağıdaki yöntemleri kullanabilirsiniz:

PCA: Temel bileşen analizi, temel bileşen analizi , Veri setlerini analiz etmek ve basitleştirmek için bir tekniktir. Veri setindeki varyansa en fazla katkı sağlayan özellikleri korurken, veri setinin boyutsallığını azaltmak için kullanılır.

sklearn.decomposition'dan içe aktarma PCA

Metin verileri için, seyrek bir matrise dönüştürdükten sonra, SVD'yi kullanabilirsiniz.

sklearn.decomposition'dan import TruncatedSVD

SVD: Tekil Değer Ayrışımı, tekil değer ayrışımı, Doğrusal cebirde önemli bir matris ayrıştırmasıdır.Normalleştirilmiş ortogonal temelden sonra en büyük varyansa sahip boyutu her zaman bulabilir, bu nedenle boyut azaltma ve denoising için kullanılır.

6. Adım: Özellikleri seçin

Özelliklerin sayısı arttıkça, özellikleri analiz etmek ve modelleri eğitmek için gereken süre daha uzun olacak, bu da muhtemelen "boyut felaketine" neden olacak, model daha karmaşık olacak ve terfi yeteneği azalacak, bu nedenle alakasız veya gereksiz özelliklerin ortadan kaldırılması gerekiyor.

Yaygın olarak kullanılan algoritmalar tam arama, sezgisel arama ve rastgele algoritmadır.

Örneğin, Rastgele Orman:

sklearn.ensemble içeriğinden import RandomForestClassifier

Veya xgboost:

xgboost'u xgb olarak içe aktar

Seyrek veriler için iyi bilinen bir yöntem chi-2'dir:

sklearn.feature_selection'dan içe aktarma SelectKBest

sklearn.feature_selection import chi2'den

7. Adım: Eğitim için bir algoritma seçin

En alakalı parametreleri seçtikten sonra algoritma uygulanabilir. Yaygın olarak kullanılan algoritmalar şunlardır:

Sınıflandırma:

Rastgele Orman

GBM

Lojistik regresyon

Naif bayanlar

Vektör makineleri desteklemek

k-En Yakın Komşular

Regresyon

Rastgele Orman

GBM

Doğrusal Regresyon

çıkıntı

Kement

SVR

Scikit-learn'de sınıflandırma ve regresyon için mevcut algoritmaların bir listesini, prensipleri ve örnek kodları dahil olmak üzere görebilirsiniz.

Her bir algoritmayı uygulamadan önce, bu yöntemin uygun olup olmadığını netleştirmek gerekir.

Neden bu kadar çok algoritma sadece bu birkaç algoritmayı önermektedir? Farklı algoritmaların performansını karşılaştırmak gerekir.

Bu ilahi makale, Gerçek Dünya Sınıflandırma Problemlerini Çözmek İçin Yüzlerce Sınıflandırıcıya İhtiyacımız Var mı? 179 sınıflandırma modelinin tüm 121 UCI verisi üzerindeki performansını test etti ve Rastgele Ormanlar ve SVM'nin en iyi performansı gösterdiğini buldu.

İçerideki araştırma fikirlerinden öğrenebilir ve karşılaştırma sonuçlarını nasıl aldığımızı görebiliriz.Ayrıca uygulamamızda belirli bir yol gösterici rolü vardır.

Ancak algoritma direkt uygulandıktan sonra genel doğruluk pek tatmin edici olmuyor, şu anda parametrelerin ayarlanması gerekiyor.Çoğu kuru ürün sorunu geliyor. Hangi model için hangi parametrelerin ayarlanması gerekiyor?

Sklearn belgesinde olmasına rağmen, algoritmanın tüm parametreleri listelenecek, ancak hangi ayarlamanın etkili olacağını söylemeyecektir. Bazı mooc kurslarında, bazı algoritmalar uygulandığında ayarlamaya odaklandıkları parametreleri görebileceğiniz bazı proje kodları vardır, ancak bazıları neden diğerlerini ayarlamadıklarını açıklamaz. Yazar burada 100'den fazla yarışmadaki deneyimine dayanarak bu tabloyu listeliyor. Sanırım ondan öğrenebilirim. Elbette, eğer zamanınız varsa, belgedeki parametre listesini kontrol edin ve algoritmanın ilkesini kontrol edin. Teori ile değerlendirilebilir. Hangi parametrenin daha büyük etkisi vardır.

Parametreleri ayarladıktan sonra, bu büyük bir başarı değil. Şu anda, düşük doğruluğa neyin neden olduğunu ve ne tür verilerin araştırılmadığını düşünmemiz gerekiyor. Şu anda, ihtiyacımız var Verileri tekrar keşfetmek için istatistikleri ve görselleştirmeyi kullanın , Ve sonra yukarıdaki işlemden tekrar geçin.

Sanırım burada bahsedilen çok faydalı bir deneyim, Tüm transformatörleri kaydedin Doğrulama veri setinde uygulamayı kolaylaştırmak için:

Makale, sorunu analiz etme fikrini ortaya koydu ve ayrıca birkaç çok pratik deneyimden bahsetti.Ancak, deneyim başkalarının deneyimidir ve yalnızca referans için kullanılabilir.Kendi seviyenizi geliştirmek istiyorsanız, yine de yazarın arkasındaki şeyleri görmeniz gerekir. 100'den fazla gerçek savaş, Şimdi harekete geçelim , Algoritmalar, kodlar ve verilerle oynamanın heyecanını yaşayın.

TensorFlow ve Neural Network Algorithm Advanced Application Class "başlayacak!

Başlangıçtan ileri düzeye, teori + gerçek savaş, TensorFlow'u tek noktadan derinlemesine anlama!

Bu kurs, derin öğrenme geliştiricilerine yöneliktir ve TensorFlow'un görüntü tanıma ve metin analizi gibi belirli sorunları çözmek için nasıl kullanılacağını öğretir. Kurs 10 haftayı kapsıyor.TensorFlow'un ilkeleri ve temel pratik becerileriyle başlayacak ve öğrencilere TensorFlow'da adım adım CNN, kendi kendine kodlama, RNN, GAN ve diğer modellerin nasıl oluşturulacağını öğretecek ve son olarak TensorFlow'a dayalı eksiksiz bir derin öğrenme geliştirme setinde ustalaşacak. beceri.

İki öğretim görevlisi Tong Da ve Bai Fachuan, ThoughtWorks'ün kıdemli teknik uzmanlarıdır ve büyük veri platformları ve derin öğrenme sistemi geliştirme projeleri oluşturma konusunda zengin deneyime sahiptir.

Saat: Her Salı ve Perşembe gecesi 20: 00-21: 00

Kurs süresi: Toplam 20 saat, 10 haftada tamamlandı, haftada 2 kez, her seferinde 1 saat

Çevrimiçi öğretim adresi:

Leifeng.com'da İlgili Okumalar:

Bir örnek size şunu söyler: Kaggle veri rekabetinin rutinleri nelerdir?

Kaggle'ın çıkmazından, yerel veri rekabeti platformunun nasıl ortaya çıktığını görün

"Gintama" "Cosmic Stupid Edition" fragmanı, Shun Oguri'nin tutkulu ikincisi
önceki
Meitu T9 Sailor Moon Limited Edition: Neden küçük kız kardeşimin bakmasını sağlıyor?
Sonraki
Uzun metrajlı film: Marvelin yüksek puanlı yeni çalışması "Örümcek Adam: Kahramanların Dönüşü" önemli olaylardan bahsediyor
"Çalışma Notları" DSP Tabanlı İHA Yükseklik Edinim Sistemi Tasarımı
5G'nin arkasındaki temel teknolojiyi analiz edin: hüzmeleme
Yalama Ekran Süresi Enerjik Kız Chen Yihan
Kolay Yol Zhao Jie: Fiyat, yerel milimetre dalga radarının avantajıdır ve performans daha da fazladır
RPG macera oyunu "Gumball" 12 Nisan'da Steam'de satışa sunulacak.
Netizenler dünyanın her yerinden animasyonlu resimler kullanmayı severler, ancak bu iş önce sınır sorunlarıyla ilgilenmelidir.
Dapeng'in yeni filmi "Dikiş Makinesi Grubu" önceden deneme gösterimi öncesi kahkahalarla dolu ve "Bombman Versiyonu" nun posteri ortaya çıktı.
Güç hattı iletişim erişim ağı için akıllı şebeke fırsatçı yönlendirme
Altın Küre kazananları Netflix'e teşekkür ettiğinde teknoloji eğlenceyi nasıl etkiler?
Yüksek Güçlü Süper Kapasitör için Akıllı Şarj Cihazı Tasarımı
Xiaomi Mi 8 Screen Fingerprint Edition başlıyor: Snapdragon 845 nimet, "gözler" ve "çekirdekler" parlak
To Top