Daftar Isi:
- Cross-validating:
- dari sklearn. dataset import load_digits digit = load_digits () X, y = digit. data, angka target dari sklearn svm mengimpor SVC dari sklearn cross_validation import cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Out [1]: 1 loop, terbaik dari 3: 17. 9 s per loop
Video: Python Tutorial For Beginners | Python Full Course From Scratch | Python Programming | Edureka 2024
Sebagian besar komputer saat ini multicore (dua atau lebih prosesor dalam satu paket), beberapa dengan beberapa CPU fisik. Salah satu keterbatasan terpenting Python adalah menggunakan inti tunggal secara default. (Ini diciptakan pada saat single core menjadi norma.)
Proyek ilmu data memerlukan banyak perhitungan. Secara khusus, bagian dari aspek ilmiah ilmu data bergantung pada tes berulang dan eksperimen pada matriks data yang berbeda. Jangan lupa bahwa bekerja dengan jumlah data yang besar berarti bahwa kebanyakan transformasi memakan waktu mengulang pengamatan setelah pengamatan (misalnya, operasi yang identik dan tidak terkait pada bagian matriks yang berbeda).
Menggunakan lebih banyak core CPU mempercepat perhitungan dengan faktor yang hampir sesuai dengan jumlah core. Misalnya, memiliki empat inti berarti bekerja paling cepat empat kali lebih cepat. Anda tidak menerima kenaikan empat kali lipat penuh karena ada overhead saat memulai proses paralel - contoh Python yang baru berjalan harus disiapkan dengan informasi in-memory yang tepat dan diluncurkan; Akibatnya, perbaikan akan kurang dari yang dapat dicapai namun tetap signifikan.
Mengetahui bagaimana menggunakan lebih dari satu CPU karena itu merupakan keterampilan yang maju namun sangat berguna untuk meningkatkan jumlah analisis yang telah selesai, dan untuk mempercepat operasi Anda saat menyiapkan dan menggunakan produk data Anda.
Multiprocessing bekerja dengan mereplikasi kode dan konten memori yang sama dalam berbagai contoh Python baru (para pekerja), menghitung hasilnya untuk masing-masing, dan mengembalikan hasil gabungan ke konsol asli utama. Jika contoh asli Anda sudah memenuhi sebagian besar memori RAM yang tersedia, tidak mungkin membuat kasus baru, dan mesin Anda mungkin kehabisan memori.
Cross-validating:
Menguji hasil hipotesis belajar mesin dengan menggunakan data pelatihan dan pengujian yang berbeda
-
Pencarian grid: Secara sistematis mengubah parameter hiper dari hipotesis belajar mesin dan menguji hasil konsekuen [Prediksi Multilabel:
-
Menjalankan algoritma berkali-kali terhadap beberapa target bila ada banyak hasil target yang berbeda untuk memprediksi pada saat yang sama Metode pembelajaran mesin pembuat Ensemble:
-
Memodelkan sejumlah besar pengklasifikasi, masing-masing independen dari yang lain, seperti saat menggunakan pemodelan berbasis RandomForest Anda tidak perlu melakukan sesuatu yang istimewa untuk memanfaatkan perhitungan paralel - Anda dapat mengaktifkan paralelisme dengan menyetel n_jobs -parameter ke sejumlah core lebih dari 1 atau dengan menetapkan nilai ke -1, yang berarti Anda ingin menggunakan semua instance CPU yang ada.
-
Jika Anda tidak menjalankan kode Anda dari konsol atau dari Notebook IPython, sangat penting bahwa Anda memisahkan kode dari impor paket atau variabel global apapun dalam skrip Anda dengan menggunakan if __name __ == '__ main__': perintah pada awal kode apapun yang mengeksekusi paralelisme multicore. Pernyataan jika memeriksa apakah program dijalankan secara langsung atau dipanggil oleh konsol Python yang sudah berjalan, menghindari kebingungan atau kesalahan oleh proses multiparalel (seperti rekursif memanggil paralelisme). Mendemonstrasikan multiprocessing
Sebaiknya gunakan IPython saat Anda menjalankan demonstrasi tentang bagaimana multiprocessing dapat benar-benar menghemat waktu Anda selama proyek sains data. Menggunakan IPython memberikan keuntungan menggunakan perintah magic time time untuk eksekusi waktu. Anda memulai dengan memuat dataset multiclass, algoritma pembelajaran mesin yang kompleks (Support Vector Classifier, atau SVC), dan prosedur validasi silang untuk memperkirakan skor yang dapat diandalkan dari semua prosedur.
Hal yang paling penting untuk diketahui adalah bahwa prosedur menjadi cukup besar karena SVC menghasilkan 10 model, yang diulang 10 kali setiap kali menggunakan validasi silang, dengan total 100 model.
dari sklearn. dataset import load_digits digit = load_digits () X, y = digit. data, angka target dari sklearn svm mengimpor SVC dari sklearn cross_validation import cross_val_score% timeit single_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = 1) Out [1]: 1 loop, terbaik dari 3: 17. 9 s per loop
Setelah tes ini, Anda perlu mengaktifkan paralelisme multicore dan waktu hasilnya menggunakan perintah berikut:
% timeit multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1) Out [2]: 1 loop, terbaik dari 3: 11. 7 s per loop
Mesin contoh menunjukkan keuntungan positif dengan menggunakan pemrosesan multicore, walaupun menggunakan kumpulan data kecil dimana Python menghabiskan sebagian besar waktu mulai konsol dan menjalankan sebagian kode di masing-masing. Overhead ini, beberapa detik, masih signifikan mengingat total eksekusi meluas selama beberapa detik. Bayangkan apa yang akan terjadi jika Anda bekerja dengan kumpulan data yang lebih besar - waktu eksekusi Anda dapat dengan mudah dipotong dua atau tiga kali.
Meskipun kode tersebut berfungsi dengan baik dengan IPython, meletakkannya di dalam skrip dan meminta Python untuk menjalankannya di konsol atau menggunakan IDE dapat menyebabkan kesalahan karena operasi internal dari tugas multicore. Solusinya adalah meletakkan semua kode di bawah sebuah pernyataan jika, yang memeriksa apakah program dimulai secara langsung dan tidak dipanggil sesudahnya. Inilah contoh skripnya:
dari sklearn. dataset mengimpor load_digits dari sklearn. svm mengimpor SVC dari sklearn cross_validation import cross_val_score jika __name__ == '__main__': digits = load_digits () X, y = digit. data, angka target multi_core_learning = cross_val_score (SVC (), X, y, cv = 20, n_jobs = -1)