Ev Kişisel Finans Veri Bilimi için Paralel Python'da çalışan Veri Bilimi için Paralel Python'da

Veri Bilimi için Paralel Python'da çalışan Veri Bilimi için Paralel Python'da

İçindekiler:

Video: Mustafa Murat Coşkun ile Soru Cevap 2025

Video: Mustafa Murat Coşkun ile Soru Cevap 2025
Anonim

Günümüzde çoğu bilgisayar çok çekirdekli (tek bir pakette iki veya daha fazla işlemci), bazıları birden fazla fiziksel işlemci ile. Python'ın en önemli kısıtlamalardan biri varsayılan olarak tek bir çekirdek kullanmasıdır. (Tek çekirdekli olduğu bir zamanda yaratılmıştır.)

Veri bilimi projeleri oldukça fazla hesaplama gerektirir. Özellikle, veri biliminin bilimsel yönünün bir kısmı, farklı veri matrisleri üzerinde yapılan tekrarlanan testler ve deneylere dayanmaktadır. Büyük veri miktarlarıyla çalışmanın, gözlemden sonra (örneğin, bir matrisin farklı bölümleri üzerinde özdeş ve ilgili olmayan işlemler) gözlemlemeyi en çok zaman alıcı dönüşümlerin tekrarladığı anlamına gelir.

Daha fazla CPU çekirdeği kullanmak, hesaplamayı, çekirdek sayısıyla hemen hemen eşleşen bir faktör hızlandırır. Örneğin, dört çekirdeğe sahip olmak en iyi dört kat daha hızlı çalışmak demektir. Paralel bir süreç başlatırken ek yük çıktığından tam dört kat artış elde etmiyorsunuz - yeni çalışan Python örnekleri doğru bellek içi bilgilerle kurulmalı ve başlatılmalıdır; Dolayısıyla, gelişme potansiyel olarak erişilebilen seviyeden daha az olacaktır, ancak yine de önemli olacaktır.

Bu nedenle, birden fazla CPU'nun nasıl kullanılacağını bilmek, hem tamamlanan analiz sayısını artırmak hem de veri ürünlerinizi kurarken ve kullanırken operasyonlarınızı hızlandırmak için gelişmiş fakat inanılmaz derecede faydalı bir beceridir.

Çok işlemcili, çeşitli yeni Python örneklerinde (işçiler) aynı kodu ve bellek içeriğini çoğaltarak, her biri için sonucu hesaplayarak ve birleştirilmiş sonuçları ana orijinal konsola döndürerek çalışır. Orijinal örneğiniz mevcut RAM belleğinin çoğunu zaten kullanıyorsa, yeni örnekler oluşturmak mümkün olmayacak ve makinenizin belleği dolabilir.

Çok çekirdekli paralelliği gerçekleştirme

Python ile çok çekirdekli paralellik gerçekleştirmek için Scikit öğrenme paketini, sonuçların doğrulanması için ya da sonuçların doğrulanması için modellerin çoğaltılması gibi çok zaman alan operasyonlar için joblib paketiyle bütünleştiriyorsunuz en iyi hiper parametreler.

  • Çapraz doğrulama: Farklı eğitim ve test verileri kullanılarak bir makine-öğrenme hipotezinin sonuçlarının test edilmesi

  • Şebeke araştırması: Hiper parametreleri sistematik olarak değiştiren Scikit öğrenir Çoklu etiket tahmini:

  • Aynı anda tahmin edilecek çok sayıda farklı hedef çıktığında birden çok hedefe karşı bir algoritma çalıştırma Topluluk makine öğrenme yöntemleri: Bir makine öğrenme hipotezi ve sonuçların test edilmesi

  • Çoklu etiket tahmini:

RandomForest tabanlı modelleme

kullanırken olduğu gibi, her biri birbirinden bağımsız olarak geniş bir sınıflandırıcı serisinin modellenmesi Paralel hesaplamalardan yararlanmak için özel bir şey yapmak zorunda değilsiniz - paralellik ayarını, n_jobs parametresini 1'den fazla çekirdek sayısına veya değeri -1 olarak ayarlayarak, mevcut tüm CPU örneklerini kullanmak istediğiniz anlamına gelir.

Kodunuzu konsoldan veya bir IPython Dizüstü Bilgisayarından çalıştırmıyorsanız, kodunuzu, komut dosyanızdaki herhangi bir paketi içe aktarma veya genel değişken atamasından ayırmak çok önemlidir; if __name __ == '__ main__': komutu, çok çekime sahip paralelliği yürüten tüm kodların başında. If deyimi, programın doğrudan çalışıp çalışmadığını veya zaten çalışmakta olan bir Python konsolu tarafından çağrıldığını kontrol eder; çok paralel işlemle herhangi bir karışıklık ya da hata önleme (örneğin, paralelliği tekrar tekrar çağırma gibi).

Çok işlemci gösterme

Çoklu işlemcinin veri bilim projeleri süresince size zaman kazandırabileceğine dair bir gösteri yaparken IPython kullanmak iyi bir fikirdir. IPython'u kullanmak zamanlamanın yürütülmesi için% timeit sihirli komutunu kullanmanın avantajını sağlar. Çok katmanlı bir veri kümesi, karmaşık bir makine öğrenme algoritması (Destek Vektör Sınıflandırıcısı veya SVC) ve tüm prosedürlerden gelen güvenilir sonuç skorlarını tahmin etmek için çapraz doğrulama prosedürü yükleyerek başlayın.

Bilmeniz gereken en önemli şey, prosedürlerin oldukça büyük olmasıdır; çünkü SVC her biri çapraz doğrulama kullanarak 10 kez tekrar eden 10 model üretir ve toplam 100 model sunar.

sklearn'dan. veri kümeleri import_load_digits basamak = yük_digits () X, y = rakamlar. veri, rakamlar. sklearn'tan hedef. svm SVC'yi sklearn'dan içe aktarır. cross_validation import cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Out [1]: 1 döngüler, en iyisi 3: 17. Döngü başına 9 saniye

Bu testten sonra, çok çekirdekli paralelliği etkinleştirmeniz ve sonuçları aşağıdaki komutları kullanarak zamanlamanız gerekir:

% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 döngüler, en iyi 3: 11. Her bir döngü için 7 saniye

Örnek makina, Python'un konsol başlangıcı zamanının çoğunu ve kodun bir bölümünü her birinde çalıştırdığı küçük bir veri kümesini kullanmasına rağmen çok çekimli işleme kullanarak olumlu bir avantaj ortaya koymaktadır. Birkaç saniyelik bu genel gider, toplam yürütmenin bir avuç saniye süreyle uzaması nedeniyle hala önemlidir. Daha büyük veri setleriyle çalışırsanız ne olacağını düşünün - uygulamanızın süresi iki ya da üç kez kolayca kesilebilir.

Kod, IPython ile iyi çalışsa da, bir komut dosyasına koyup Python'dan bir konsoldan çalıştırmasını isterse, bir çok çekirdekli görevin iç işlemleri nedeniyle hatalara neden olabilir. Çözüm, tüm kodu bir if ifadesinin altına koymaktır; bu, programın doğrudan başlatılıp başlatılmadığını ve sonradan çağrılmadığını denetler. İşte bir örnek komut dosyası:
sklearn. veri kümeleri, sklearn'dan load_digits'i içe aktarır. svm SVC'yi sklearn'dan içe aktarır. cross_validation import cross_val_score if __name__ == '__main__': rakamlar = yük_digitleri () X, y = rakamlar. veri, rakamlar. hedef multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)

Veri Bilimi için Paralel Python'da çalışan Veri Bilimi için Paralel Python'da

Editörün Seçimi

Genişletme Bağlantılar ve Bina Robotları için Pinouts - mankenler

Genişletme Bağlantılar ve Bina Robotları için Pinouts - mankenler

Eğer bir robot inşa ediyorsanız, çok sayıda elektrik bağlantısı, bu yüzden çok sayıda iğne ile uğraşıyorsunuz. Aşağıdaki tabloda, genişleme konektörleri ve pim numaraları için sinyal gösterilmektedir. İstenmeyen çapraz bağlantıları önlemeye yardımcı olabilir. Genişletme Konnektörü Pin Numarası Sinyal Genleşmesi Konnektör Pin Numarası Sinyal 1, 2 Toprak 16 P11 Yeşil LED 3, 4 + 5 ...

Dizinler içeren Kablosuz Erişim Noktalarını bulma - mankenler

Dizinler içeren Kablosuz Erişim Noktalarını bulma - mankenler

Sıcak noktaları bulma konusunda çevrimiçi dizinler, gezinmek için mükemmel bir araçtır. ABD, Kanada ve dünyadaki artan sayıda sıcak nokta. Size kolaylık sağlamak için, bu dizinlerden bazıları. Dizin Notları JiWire WiFi Bulucu 144 ülkede ücretsiz ve ücretli Wi-Fi yerleri dizini sağlar. AT & T ...

Ham Radyoda genel Sınıf Frekans Ayrıcalıkları - mankenler

Ham Radyoda genel Sınıf Frekans Ayrıcalıkları - mankenler

Yakında yapmadıysanız, siz Yükseltmeyi düşünüyorum. Aşağıdaki tabloda gösterildiği gibi, yüksek frekanslı (HF) bantlarda kullanmak için daha fazla frekansa sahipsiniz. Tüm lisans sınıfları için ABD frekansı ve mod ayrıcalıklarının eksiksiz bir listesi, Amerikan Radyo Röle Ligi'nden (ARRL) edinilebilir. Bant Frekansları ...

Editörün Seçimi

Adobe Flash CS6'da Maske Katmanlarını Kullanma - mankenler

Adobe Flash CS6'da Maske Katmanlarını Kullanma - mankenler

Adobe Flash CS6'da maskeleme kavramı Bir parçanın bölümlerini gizlemek ya da ortaya çıkarmak için bir şekli (ya da şekilleri) kullanır - tıpkı evinizdeki küçük bir pencere aracılığıyla dışarıdan bakmak gibi. Pencere boyutu, içerideyken görebileceğiniz şeyi sınırlar. Flash, özel bir katman özelliklerine sahiptir ...

Flash CS5 3D Rotasyon Aletinin Kullanımı - mankenler

Flash CS5 3D Rotasyon Aletinin Kullanımı - mankenler

Adobe'nin kapsamlı çizim ve animasyon yetenekleri Flash Creative Suite 5, Flash'ın 3D Döndürme aracıyla büyük ölçüde geliştirilebilir. 3B Döndürme aracı, sembolü x, y ve z eksenleri etrafında döndürmek ve dönüştürmek için herhangi bir film klibi örneğinde kullanılabilir. Bir film klibi örneğini 3D olarak oluşturmak için bunları izleyin ...

Flash CS5 3D Çeviri Aletini Kullanma - aumlalar

Flash CS5 3D Çeviri Aletini Kullanma - aumlalar

In 3D Döndürme aracının aksine Flash CS5 film kliplerini bir eksen etrafında döndüren Adobe Flash Creative Suite 5, 3D Çeviri aracı, bir film klibini algılanan mesafeyi ve sahnedeki diğer nesnelere göre derinliğini değiştirmek için belirli bir eksende kaydırır. Bu kavramı üçlü düşünün ...

Editörün Seçimi

Pratik İlköğretim Sınavı-Grafik Çözümleri - mankenler

Pratik İlköğretim Sınavı-Grafik Çözümleri - mankenler

Praxis İlköğretim sınavının Matematik bölümü bir dizi çizgide bir eşitsizliğe çözüm bulmanızı gerektiren bir soru. Başlamak için, çözümdeki sayıya bir nokta koyarsınız. Sembolü> veya

Pratik İlk Öğretim Sınavı-Ölüm Şekilleri - mankenler

Pratik İlk Öğretim Sınavı-Ölüm Şekilleri - mankenler

Praxis İlköğretim Matematik ve Bilim bölümleri Eğitim sınavı, farklı ölçme şekillerine aşina olmanız gereken sorular içerir. Ölçümler, çeşitli tiplerde tanımlanabilir. Mesafe için İngilizce sistem birimleri inç, feet, metre ve mil içerir. Bunlar birbirine dayanır. Bir ayak 12 ...

Pratik İlk Öğretim Sınavı-Akıcılık - mankenler

Pratik İlk Öğretim Sınavı-Akıcılık - mankenler

Praxis İlköğretim sınavı, yardımcı stratejilerinizi test eden sorular içerir öğrenciler akıcılıklarını İngilizce olarak geliştirirler. Bu stratejiler, grafik düzenleyicileri kullanarak ve çıkarımlar yapmayı içerebilir. Akıcı bir okuyucu, sınıf düzeyinde bir metni doğruluk, çabukluk ve ifade ile okuyabilir.