Otomatik makine öğrenimi araçları panoraması: Simyacıları özgürleştirmek için seçilen 22 çeşit çerçeve

Yazar Alexander Allen, Adithya Balaji

Wang Xiaoxin, Georgian Impact Blog'dan derlendi

Qubit Üretildi | Genel Hesap QbitAI

Tipik bir makine öğrenimi projesi oluşturmak genellikle aşağıdaki adımlara bölünür:

Ham verileri toplayın, veri kaynaklarını birleştirin, verileri temizleyin, özellik mühendisliği, model oluşturma, hiper parametre ayarı, model doğrulama ve ekipman dağıtımı.

Tüm süreçte, model yapımı yaratıcılığı en iyi şekilde yansıtabilir ve en çok zaman alan, özellik mühendisliği ve hiperparametre ayarlamadır.

Sonuç olarak, bazen bir acele nedeniyle, modeller deneysel aşamadan üretim aşamasına çok erken aktarılır ve optimum performans gösterememelerine neden olur; bazen ayarlama için çok fazla zaman harcandığı için dağıtım gecikir.

Şu anda, otomatik makine öğrenimi (AML) çerçevesinin değeri yansıtılıyor.

Otomatik makine öğrenimi çerçeveleri, veri bilimcilerinin yükü azaltmasına, özellik mühendisliği ve hiperparametre ayarlamasının iş yükünü azaltmasına ve model mimarisini denemek için daha fazla zaman harcamalarına yardımcı olabilir. Olası çözümleri hızlı bir şekilde doğrulamak, veri bilimcilerinin hedef veri setini hızlı bir şekilde değerlendirmesine izin vermekle kalmaz, aynı zamanda iyileştirme için kıyaslama performansı sağlar.

Bu makale, mevcut otomatik makine öğrenimi çerçevesini olabildiğince kapsamlı bir şekilde tanıtır ve ilgili kod adresini de ekler.

Özet

Genellikle makine öğreniminin tek veya birden çok adımında hareket eden otomatik makine öğrenimi için mevcut açık kaynak çerçevelerini kapsamlı bir şekilde araştırdık.

Otomatik makine öğrenimi çerçevesi, model oluşturma, özellik mühendisliği ve hiperparametre optimizasyonu dahil olmak üzere projedeki bazı adımların üstesinden gelebilir. Bu nedenle, belirli görev kombinasyonlarını optimize edebileceğini iddia eden bazı olgun çerçeveleri analiz ettik.

Kurumsal veri bilimi ekibine kolayca uygulanabilecek bazı kütüphaneler seçtik. Her çerçeveyi tanıtırken, veritabanı oluşturma hedeflerini, kullanılan istatistiksel yöntemleri ve yeni veya mevcut projelerle entegre ederken dikkate alınması gereken ana faktörleri verdik.

Kısmi çözüm

Mevcut otomatik makine öğrenimi çerçevelerinden bazıları, veri bilimi sürecinin yalnızca tek bir adımını çözer. Uçtan uca çözümler sağlamasalar da, bu kitaplıklar belirli sorunları çözmek için gelişmiş yöntemler kullanmaya veya benzersiz kısıtlamalarla belirli ortamlarda çalışmaya odaklanır, bu nedenle yine de dikkate alınmaya değerdir.

Özellik mühendisliği

1. Özellik araçları

https://github.com/Featuretools/featuretools

1347 yıldız, 139 Çatal, 119 İşlem

En son sürüm 0.1.21 olup 2018.5.30 tarihinde güncellenmiştir.

Featuretools, bir dizi ilişkili tabloya dayalı olarak özellikleri otomatik olarak oluşturabilen otomatik bir özellik mühendisliği aracıdır. Bu açık kaynak kitaplık, kurumsal müşteriler için ticari ön uç hizmetlerinin bir alt kümesidir.

Featuretools, ilişkisel veritabanlarındaki örüntüler tarafından tanımlanan ilişkisel yolların üzerinden geçebilen Derin Özellik Sentezi (DFS) adlı bir algoritma kullanır. DFS bu yollardan geçtiğinde, veri işlemleri yoluyla (toplama, ortalama alma ve sayma dahil) sentetik özellikler üretir.

Örneğin, belirli bir müşteri kimliği için bir işlem listesine toplam işlemi uygulayabilir ve bunları tek bir sütunda toplayabilir. Bu sadece tek bir işlem olmasına rağmen, bu algoritma daha derin özelliklere gidebilir.

Bu kütüphanenin avantajı, güvenilirliği ve zaman serisi verilerini işlerken bilgi sızıntısını yönetme yeteneğidir.

2. Boruta-py

https://github.com/scikit-learn-contrib/boruta_py

318 yıldız, 82 Çatal, 62 İşlem

En son sürüm 0.1.5, 2017.3.5 güncellemesidir

Boruta-py, sorunu "tam korelasyon" yoluyla çözen, Brouta özellik boyutlarını azaltma stratejisinin bir uygulamasıdır.

Bu algoritma, birçok özellik boyutluluğu azaltma yönteminin kullandığı "minimum optimal özellik seti" fikrine aykırı olan modele önemli bir katkısı olan tüm özellikleri koruyabilir.

Boruta yöntemi öncelikle hedef özellikleri rastgele yeniden sıralar ve sentetik özellikler oluşturur, ardından orijinal özellik setinde basit bir karar ağacı sınıflandırıcı eğitir, ardından hedef özellikleri özellik setindeki sentetik özelliklerle değiştirir ve özelliklerin önemini belirlemek için bu üç adımı kullanır. Seks.

Bunlar arasında, farklı özelliklere karşılık gelen performans farklılıkları, göreceli önemlerini hesaplamak için kullanılabilir.

3. Kategorik kodlama

https://github.com/scikit-learn-contrib/categorical-encoding

494 yıldız, 115Forks, 171 Commits

En son sürüm 1.2.6, 2018.1.22 güncellemesi

Bu kütüphane, birçok sınıflandırma kodlama yöntemini genişletir ve Scikit-learn'de veri dönüştürücüler için bir arayüz olarak kullanılabilir.

Ayrıca, tek etkin kodlama ve karma kodlama gibi yaygın sınıflandırma kodlama yöntemlerinin yanı sıra birçok niş kodlama yöntemini (temel n kodlama ve hedef kodlama dahil) uygular.

Bu kütüphane genellikle, yüksek değişken tabana sahip olabilecek problemler gibi pratik problemlerde kategorik değişkenlerle ilgilenmek için kullanılır. Ayrıca doğrudan panda veri çerçeveleriyle paylaşabilir, eksik değerleri hesaplayabilir ve eğitim setinin dışında olabilecek dönüştürülmüş değerleri işleyebilir.

4. Tsfresh

https://github.com/blue-yonder/tsfresh

2781 yıldız, 340 Forks, 243 Commits

En son sürüm 0.11.0, 2017.10.14 güncellemesi

Bu kütüphane, zaman serisi verilerinin özellik oluşturmasına odaklanır.Alman perakende analiz şirketi tarafından desteklenir ve veri analizi sürecinde bir adımdır.

Bazı basit özellikler (varyans gibi) ve karmaşık özellikler (yaklaşık entropi) dahil olmak üzere, zaman serilerinin eğilimini tanımlamak için kullanılan bir dizi morfolojik özelliği çıkarabilir.

Bu kütüphane, verilerden trend özelliklerini çıkararak makine öğrenimi algoritmalarının zaman serisi veri setlerini daha kolay yorumlamasına olanak tanır. Çok sayıda oluşturulmuş özellik seti elde etmek ve bunları en açıklayıcı eğilim özelliklerine indirgemek için hipotez testini kullanır.

Tsfresh ayrıca pandalar ve sklearn ile uyumludur ve mevcut veri bilimi süreçlerine yerleştirilebilir. Tsfresh kitaplığının avantajı, büyük miktarda zaman serisi verileriyle bir üretim sisteminde test edilmiş olan ölçeklenebilir veri işleme uygulamasında yatmaktadır.

5. Trane

https://github.com/HDI-Project/Trane

4 yıldız, 1 Çatal, 245 Commits

En son sürüm 0.1.0, 2018.2.2 güncellemesi

Bu kütüphane, MIT HDI projesinin bir ürünüdür.

Trane kitaplığı, ilişkisel bir veritabanında depolanan zaman serisi verilerini işlemek ve zaman serisi problemlerini temsil etmek için kullanılabilir. Veri seti ile ilgili meta bilgileri sıralayabilir ve veri bilimcileri, denetlenen bir problem oluşturmak için bu özellikleri veritabanındaki zaman serisi verilerinden çıkarabilir.

Bu işlem bir JSON dosyasında saklanır ve veri bilimcileri, sütunları ve veri türlerini tanımlamak için bu dosyayı yeniden yazabilir. Çerçeve, veri setini değiştirmek için kullanılabilecek olası tahmin sorularını oluşturmak için bu dosyayı işler.

Bu proje, özellik araçları kitaplığı için çok faydalıdır ve yarı otomatik bir şekilde ek özellikler oluşturmak için kullanılabilir.

6. FeatureHub

https://github.com/HDI-Project/FeatureHub

32 yıldız, 5 Çatal, 249 İşlem

En son sürüm 0.3.0, 2018.5.9 güncellemesi

Bu proje aynı zamanda MIT HDI Lab'a aittir ve JupyterHub (çok kullanıcılı bir Jupyter Notebook sunucusu) üzerine inşa edilmiştir ve veri bilimcilerinin özellik mühendisliği geliştirme sürecinde işbirliği yapmasına olanak tanır.

Bu sistem, mevcut modelin genel değerini belirlemek için oluşturulan özellikleri otomatik olarak puanlayabilir. Bu kitle kaynak yöntemi özelliği, mühendislik ve makine öğrenimi de testlerde iyi sonuçlar elde etti.

Hiperparametre optimizasyonu

1. Skopt

https://scikit-optimize.github.io/

880 yıldız, 340 Çatal, 173 İşlem

En son sürüm 0.5.2, 2018.3.25 güncellemesi

Skopt, rastgele arama, Bayes araması, karar ormanı ve gradyan artırma ağacını içeren bir hiperparametre optimizasyon kitaplığıdır.

Bu kütüphane, teorik olarak olgun ve güvenilir bazı optimizasyon yöntemlerini içerir, ancak bu modeller en iyi küçük arama alanları ve iyi ilk tahminlerle çalışır.

2. Hiperopt

https://github.com/hyperopt/hyperopt-sklearn

2161 yıldız, 473 Forks, 939 Commits

En son sürüm 0.1, 2016.11.20 güncellemesi

Hyperopt, rastgele arama ve Tree Parzen Estimators (Bayes optimizasyonunun bir varyantı) gibi algoritmalar dahil olmak üzere, belirli koşullar veya kısıtlamalara sahip arama alanları için optimize edilmiş bir hiper parametre optimizasyon kitaplığıdır.

Birden fazla bilgisayarın paralel hesaplamasını gerçekleştirebilen hiperparametre kombinasyonunun sonucunu depolamak için merkezi yapı olarak MongoDb'yi kullanır.

Bu kütüphane hyperopt-sklearn ve hyperas ile gerçekleştirilir.Model seçimi ve optimizasyonu için bu iki fonksiyon kütüphanesi, sırasıyla scikit-learn ve keras'a dayanır.

3. Basit (x)

https://github.com/chrisstroemel/Simple, 362 yıldız, 22 Çatal, 4 İşlem

Manuel olarak yüklemeniz gerekiyor

Simple (x), Bayesian optimizasyonuna alternatif olarak kullanılabilen bir optimizasyon kitaplığıdır.

Basit (x), Bayesian arama gibi, olabildiğince az örnekle optimizasyon yapmaya çalışır, ancak aynı zamanda hesaplama karmaşıklığını n³'dan log (n) 'ye düşürür, bu da geniş arama alanları için çok yararlıdır.

Bu kütüphane, arama alanını simüle etmek için hiperküpler (n-boyutlu küpler) yerine simpleksler (n-boyutlu üçgenler) kullanır, bu da Bayes optimizasyonunda yüksek hesaplama maliyeti ile Gauss sürecini önleyebilir.

4. Ray.tune

https://github.com/ray-project/ray/tree/master/python/ray/tune

3435 yıldız, 462 Forks, 1.707 Commits

En son sürüm 0.4.0, 2018.3.27 güncellemesi

Ray.tune, esas olarak derin öğrenme ve pekiştirmeli öğrenme modelleri için uygun bir hiperparametre optimizasyon kitaplığıdır. Hyperband algoritması (hiperparametrelerin etkisini belirlemek için minimum eğitim modeli), popülasyon tabanlı eğitim algoritması (Popülasyon Tabanlı Eğitim, eşzamanlı eğitim ve paylaşılan hiperparametreler altında bir dizi ağın optimizasyonu), Hyperopt yöntemi gibi birçok gelişmiş algoritmayı birleştirir Ve medyan durdurma kuralı (model performansı orta performanstan düşükse eğitimi durdurun).

Bunların hepsi Ray dağıtılmış bilgi işlem platformunda çalışıyor ve bu da onu oldukça ölçeklenebilir kılıyor.

5. Çikolata

https://github.com/AIworx-Labs/chocolate

26 yıldız, 26 Çatal, 196 Commits

Manuel olarak yüklemeniz gerekiyor

Çikolata, çeşitli görevleri birlikte gerçekleştirmek için genel bir veritabanı kullanan, dağıtılmış bir hiperparametre optimizasyon kitaplığıdır (bilgisayar kümelerinin paralel hesaplanmasını destekler ve merkezi bir ana bilgisayar gerektirmez).

Aynı zamanda ızgara araması, rastgele arama, yarı rasgele arama, Bayes araması ve uyarlanabilir kovaryans matrisi evrim stratejisini destekler. Avantajı, kısıtlı arama alanı ve çok kayıplı fonksiyon optimizasyonu (çok amaçlı optimizasyon) desteğine yansımıştır.

6. GpFlowOpt

https://github.com/GPflow/GPflowOpt

102 yıldız, 27 Çatal, 407 İşlem

En son sürüm 0.1.0, 2017.9.11 güncellemesi

GpFlowOpt, GPU'da Gauss işlem görevlerini çalıştırmak için TensorFlow'u kullanabilen GpFlow kitaplığına dayalı bir Gauss işlem iyileştiricisidir.

Bayesian optimizasyonunu kullanmak ve mevcut GPU hesaplama kaynaklarına sahip olmak istiyorsanız, GpFlowOpt kitaplığı ideal seçim olmalıdır.

7. FAR-HO

https://github.com/lucfra/FAR-HO

22 yıldız, 5 Çatal, 110 İşlem

Manuel olarak yüklemeniz gerekiyor

FAR-HO kitaplığı TensorFlow üzerinde çalışır ve Reverse-HG ve Forward-HG dahil olmak üzere bir dizi gradyan tabanlı optimize edici içerir.

Bu kitaplık, TensorFlow'daki gradyan tabanlı hiperparametre optimize ediciye erişim sağlamak için tasarlanmıştır ve GPU'da veya diğer tensör optimizasyon hesaplama ortamlarında derin öğrenme modeli eğitimine ve hiperparametre optimizasyonuna olanak tanır.

8. Xcessiv

https://github.com/reiinakano/xcessiv

1055 yıldız, 76 Çatal, 316 İşlem

En son sürüm 0.5.1, 2017.8.10 güncellemesi

Xcessiv kitaplığı, büyük ölçekli model geliştirme, yürütme ve entegrasyonu destekler. Avantajı, birden çok makine öğrenimi modelinin eğitimini, yürütülmesini ve değerlendirmesini tek bir GUI arayüzünde yönetme becerisinde yatmaktadır.

En iyi performansı elde etmek için bu modelleri birleştirmek için birden fazla entegre araca sahiptir. Üst düzey paralel hesaplamayı destekleyen ve ayrıca TPOT kitaplığıyla entegrasyonu destekleyen bir Bayesian arama parametresi iyileştirici içerir.

9. KABA

https://github.com/ilija139/HORD

52 yıldız, 8 Çatal, 33 İşlem

Manuel olarak yüklemeniz gerekiyor

HORD, hiperparametre optimizasyonu için bağımsız bir algoritmadır.Optimize edilmesi gereken kara kutu modeli için bir vekil işlev oluşturabilir ve tüm modelin değerlendirmesini azaltmak için ideal duruma en yakın hiperparametre kombinasyonunu oluşturmak için kullanabilir.

Tree Parzen Estimators, SMAC ve Gaussian proses metotları ile karşılaştırıldığında her zaman daha yüksek tutarlılığa ve daha düşük hata oranına sahiptir ve bu metot özellikle son derece yüksek boyutlu veri analizi için uygundur.

10. ENAS-pytorch

https://github.com/carpedm20/ENAS-pytorch

848 yıldız, 135 Çatal, 33 İşlem

Manuel olarak yüklemeniz gerekiyor

ENAS-pytorch, pytorch'ta verimli derin öğrenme yapısı araması gerçekleştirebilir. Daha verimli bir ağ oluşturmak için parametre paylaşımını kullanır ve bu da onu derin öğrenme yapısı aramasına uygun hale getirir.

Tam süreç çözümü

1. ATM

https://github.com/HDI-Project/ATM

251 yıldız, 56 Forks, 557 Commits

Manuel olarak yüklemeniz gerekiyor

Auto-Tune Models, MIT HDI projesi tarafından geliştirilen bir çerçevedir ve makine öğrenimi modellerinin yalnızca az miktarda çalışma ile hızlı eğitilmesi için kullanılabilir.

Model seçimine ulaşmak için ayrıntılı arama ve hiperparametre optimizasyonunu kullanarak Bayesian optimizasyonu ve Bandits kitaplığını kullanır. ATM'nin yalnızca sınıflandırma sorunlarını desteklediği ve ayrıca AWS'de dağıtılmış hesaplamayı desteklediği unutulmamalıdır.

2. MLBox

https://github.com/AxeldeRomblay/MLBox

504 yıldız, 115 Forks, 854 Commits

En son sürüm 0.5.0, 2017.8.25 güncellemesi

MLBox, amacı otomatik makine öğrenimi için en yeni ve en gelişmiş yöntemi sağlamak olan yeni bir çerçevedir.

Mevcut birçok çerçeve tarafından uygulanan özellik mühendisliğine ek olarak, veri toplama, veri temizleme ve eğitim-test sapması algılama gibi işlevler de sağlar.

Ayrıca, seçilen modelin hiperparametrelerini optimize etmek için Tree Parzen Estimators kullanır.

3. auto_ml

https://github.com/ClimbsRocks/auto_ml

793 yıldız, 146 Forks, 1149 Commits

En son sürüm 2.7.0, 2017.9.11 güncellemesi

Auto_ml, veri temizleme dışında çok fazla çalışma gerektirmeden verilerden elde edilen bilgi miktarını artırmak için tasarlanmış pratik bir araçtır.

Çerçeve, özellik işleme ve model optimizasyonunun ağır çalışmasını tamamlamak için evrimsel ızgara arama algoritmasını kullanır. Hesaplama hızını artırmak için diğer olgun işlev kitaplıklarını (XGBoost, TensorFlow, Keras, LightGBM ve sklearn gibi) kullanır ve tahmini elde etmenin yalnızca 1 milisaniye sürdüğünü iddia eder ki bu da bu kitaplığın en önemli özelliklerinden biridir.

Çerçeve, ilk tahmine dayalı modelleri oluşturmak için veri kümelerine (özellik önemi gibi) hızlı bir şekilde içgörü kazandırabilir.

4. otomatik sklearn

https://github.com/automl/auto-sklearn

2271 yıldız, 438 Forks, 1839 Commits

En son sürüm 0.3.0, 2018.1.5 güncellemesi

Auto-sklearn, makine öğrenimi sürecinde kullanılan veri ön işlemcisini, özellik ön işlemcisini ve sınıflandırıcıyı optimize etmek için Bayesian aramayı kullanır ve birden çok adımı eğitimden sonra eksiksiz bir modele entegre eder.

Bu çerçeve Freiburg Üniversitesi'nin ML4AAD laboratuvarı tarafından yazılmıştır ve optimizasyon süreci aynı laboratuar tarafından yazılan SMAC3 çerçevesi kullanılarak tamamlanmıştır.

Adından da anlaşılacağı gibi, bu model, makine öğrenimi algoritmalarının sklearn'de otomatik olarak oluşturulmasını gerçekleştirir. Auto-sklearn'ın temel özellikleri tutarlılık ve kararlılıktır.

5. H2O

https://github.com/h2oai/h2o-3

3132 yıldız, 1217 Forks, 22936 Commits

En son sürüm 3.20.0.1, 2018.6.7 güncellemesi

H2O, Java ile yazılmış bir makine öğrenimi platformudur. Sklearn gibi makine öğrenimi kitaplıkları ile benzer bir deneyime sahiptir. Bununla birlikte, makine öğrenimi modelleri oluşturmak için yerleşik algoritmalarını kullanan otomatik bir makine öğrenimi modülü de içerir.

Çerçeve, H2O sistemine yerleşik ön işlemci üzerinde kapsamlı bir arama uygular ve hiper parametreleri optimize etmek için Kartezyen ızgara araması veya rastgele ızgara araması kullanır.

H2O'nun avantajı, ölçek olarak büyümesini sağlayan büyük bir bilgisayar kümesi oluşturabilmesidir. Python, javascript, tableau, R ve Flow (web UI) gibi ortamlarda da kullanılabilir.

6. TPOT

https://github.com/EpistasisLab/tpot

4130 yıldız, 705 Forks, 1766 Commits

En son sürüm 0.9, 2017.9.27 güncellemesi

TPOT, en iyi veri bilimi işlem kodunu bulmak ve oluşturmak için bir genetik programlama çerçevesi olan ağaç tabanlı bir süreç optimizasyon aracıdır. TPOT, diğer otomatik makine öğrenimi çerçeveleri gibi, sklearn kitaplığından algoritmalar alır.

TPOT'un avantajı, daha etkili bir optimizasyon süreci sağlayabilen benzersiz optimizasyon yönteminde yatmaktadır.

Ayrıca, eğitimli süreci doğrudan koda dönüştürebilen bir araç içerir; bu, üretken modeli daha fazla ayarlamak isteyen veri bilimcileri için önemli bir vurgu.

Orijinal: https://medium.com/georgian-impact-blog/automatic-machine-learning-aml-landscape-survey-f75c3ae3bbf2

- Bitiş -

Samimi işe alım

Qubit, editörleri / muhabirleri işe alıyor ve merkezi Pekin, Zhongguancun'da bulunuyor. Yetenekli ve hevesli öğrencilerin bize katılmasını dört gözle bekliyoruz! 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

Chongqing Lifan generali terk etti, Taylandlı süper çılgın 31 gol atarak AFC takımını gelecek yılki AFC'ye geri götürdü
önceki
2017 üzgün: Miu Hirano tek bayanlar Asya Şampiyonası'nı kazandı
Sonraki
Listedeki tek e-sporcu! Uzi, 2018'de CGTN'nin Çin sporuna en çok katkıda bulunan 10 üyesi seçildi
Mazda'nın teknik bir kompleksi olduğu söyleniyor, ikinci nesil "Chuangchi Blue Sky" gerçekten efsane kadar iyi mi?
Facebook'un sesli asistanı Aloha'nın detayları ortaya çıktı.Logosu küçük bir volkan mı çıktı?
Yinglun Fanerjike canlı ve sevimli ve 31 Aralık'ta sizinle çevrimiçi olacak.
Mavi Mağara Asla Bekleniyor! Bir yıl boyunca demlenen yeni model sadece Tencent tarafından "süper" miydi?
Pakistan devleri beş yılda 65 kişiye imza attı, Kongka en kötüsü seçildi
Bu SUV retro bir tarza sahip, bir Range Rover ile karşılaşsanız bile momentumunu kaybetmeyeceksiniz!
Jianwang 3'teki değişikliklerden memnun olmayan oyuncular, planı hicvetmek için flamalar gönderiyor, ancak taraftarlar Guo Weiwei'yi rahatlatmak için sütlü çay mı alıyor?
Lenovo'nun stratejik rezervleri, Venture Capital, Lenovo Venture Capital All in Smart Internet'e bakıyor
En iyi Mercedes-Benz deneyimlerinden biri olan 4,6 saniyede yüz kırabilir, ancak sonuç şaşırtıcıdır
World of Warcraft 8.12 yeni yarış başlatıyor! 1 Azeroth'un antik asilzadesi, 1'i patlayacak kadar güçlü
Bugün İtalya'nın en iyi forvet oyuncusu, Juventus tarafından yıllardır görmezden gelinmiştir.
To Top