Ini adalah pertanyaan yang cukup besar, jadi ini tidak dimaksudkan untuk menjadi jawaban penuh, tetapi mudah-mudahan ini dapat membantu untuk menginformasikan praktik umum tentang menentukan alat terbaik untuk pekerjaan ketika datang ke ilmu data. Secara umum, saya memiliki daftar kualifikasi yang relatif singkat yang saya cari ketika datang ke alat apa pun di ruang ini. Tanpa urutan tertentu mereka adalah:
- Kinerja : Pada dasarnya bermuara pada seberapa cepat bahasa melakukan perkalian matriks, karena itu lebih atau kurang tugas yang paling penting dalam ilmu data.
- Skalabilitas : Setidaknya bagi saya pribadi, ini terjadi karena kemudahan membangun sistem terdistribusi. Ini adalah suatu tempat di mana bahasa seperti
Julia
benar - benar bersinar.
- Komunitas : Dengan bahasa apa pun, Anda benar-benar mencari komunitas aktif yang dapat membantu Anda ketika Anda terjebak menggunakan alat apa pun yang Anda gunakan. Di sinilah
python
menarik sangat jauh di depan sebagian besar bahasa lain.
- Fleksibilitas : Tidak ada yang lebih buruk daripada dibatasi oleh bahasa yang Anda gunakan. Itu tidak terlalu sering terjadi, tetapi mencoba merepresentasikan struktur grafik
haskell
adalah sebuah rasa sakit yang terkenal, dan Julia
dipenuhi dengan banyak sakit kode arsitektur sebagai hasil dari bahasa yang begitu muda.
- Kemudahan Penggunaan : Jika Anda ingin menggunakan sesuatu di lingkungan yang lebih besar, Anda ingin memastikan bahwa pengaturannya mudah dan bisa otomatis. Tidak ada yang lebih buruk daripada harus membangun sebuah pabrik dengan setengah lusin mesin.
Ada banyak artikel di luar sana tentang kinerja dan skalabilitas, tetapi secara umum Anda akan melihat perbedaan kinerja mungkin 5-10x antara bahasa, yang mungkin atau mungkin tidak masalah tergantung pada aplikasi spesifik Anda. Sejauh akselerasi GPU berjalan, cudamat
adalah cara yang benar-benar mulus untuk membuatnya bekerja python
, dan cuda
perpustakaan secara umum telah membuat akselerasi GPU jauh lebih mudah diakses daripada dulu.
Dua metrik utama yang saya gunakan untuk komunitas dan fleksibilitas adalah untuk melihat pengelola paket bahasa, dan pertanyaan bahasa di situs seperti SO. Jika ada sejumlah besar pertanyaan dan jawaban berkualitas tinggi, itu pertanda baik bahwa komunitas tersebut aktif. Jumlah paket dan aktivitas umum pada paket tersebut juga dapat menjadi proksi yang baik untuk metrik ini.
Sejauh kemudahan penggunaan berjalan, saya sangat percaya bahwa satu-satunya cara untuk benar-benar tahu adalah benar-benar mengaturnya sendiri. Ada banyak takhayul di sekitar banyak alat Data Science, khususnya hal-hal seperti database dan arsitektur komputasi terdistribusi, tetapi tidak ada cara untuk benar-benar tahu apakah ada sesuatu yang mudah atau sulit untuk disiapkan dan dipasang tanpa hanya membangunnya sendiri.