Đây là một câu hỏi khá lớn, vì vậy đây không phải là một câu trả lời đầy đủ, nhưng hy vọng điều này có thể giúp thông báo thực tiễn chung về việc xác định công cụ tốt nhất cho công việc khi nói đến khoa học dữ liệu. Nói chung, tôi có một danh sách tương đối ngắn về trình độ chuyên môn mà tôi tìm kiếm khi nói đến bất kỳ công cụ nào trong không gian này. Không theo thứ tự cụ thể nào:
- Hiệu suất : Về cơ bản nắm bắt được mức độ nhanh chóng của ngôn ngữ nhân ma trận, vì đó ít nhiều là nhiệm vụ quan trọng nhất trong khoa học dữ liệu.
- Khả năng mở rộng : Ít nhất là đối với cá nhân tôi, điều này giúp dễ dàng xây dựng một hệ thống phân tán. Đây là nơi mà các ngôn ngữ như
Julia
thực sự tỏa sáng.
- Cộng đồng : Với bất kỳ ngôn ngữ nào, bạn thực sự đang tìm kiếm một cộng đồng tích cực có thể giúp bạn khi bạn gặp khó khăn khi sử dụng bất kỳ công cụ nào bạn đang sử dụng. Đây là nơi
python
kéo rất xa so với hầu hết các ngôn ngữ khác.
- Tính linh hoạt : Không có gì tệ hơn việc bị giới hạn bởi ngôn ngữ mà bạn sử dụng. Điều đó không xảy ra rất thường xuyên, nhưng cố gắng thể hiện các cấu trúc đồ thị
haskell
là một nỗi đau khét tiếng và Julia
chứa rất nhiều kiến trúc mã đau đớn do một ngôn ngữ trẻ như vậy.
- Dễ sử dụng : Nếu bạn muốn sử dụng một cái gì đó trong một môi trường lớn hơn, bạn muốn đảm bảo rằng thiết lập là đơn giản và nó có thể được tự động hóa. Không có gì tệ hơn là phải thiết lập một bản dựng tinh xảo trên nửa tá máy.
Có rất nhiều bài viết về hiệu suất và khả năng mở rộng, nhưng nói chung bạn sẽ xem xét sự khác biệt về hiệu suất có thể là 5-10 lần giữa các ngôn ngữ, có thể có hoặc không quan trọng tùy thuộc vào ứng dụng cụ thể của bạn. Theo như tăng tốc GPU, cudamat
là một cách thực sự liền mạch để làm cho nó hoạt động python
và cuda
thư viện nói chung đã làm cho khả năng tăng tốc GPU trở nên dễ tiếp cận hơn nhiều so với trước đây.
Hai số liệu chính tôi sử dụng cho cả cộng đồng và tính linh hoạt là xem xét trình quản lý gói của ngôn ngữ và các câu hỏi về ngôn ngữ trên một trang web như SO. Nếu có một số lượng lớn câu hỏi và câu trả lời chất lượng cao, đó là một dấu hiệu tốt cho thấy cộng đồng đang hoạt động. Số lượng gói và hoạt động chung trên các gói đó cũng có thể là một proxy tốt cho số liệu này.
Theo như cách sử dụng dễ dàng, tôi là một người tin tưởng vững chắc rằng cách duy nhất để thực sự biết là thực sự tự thiết lập nó. Có rất nhiều sự mê tín xung quanh rất nhiều công cụ Khoa học dữ liệu, cụ thể là những thứ như cơ sở dữ liệu và kiến trúc điện toán phân tán, nhưng không có cách nào để thực sự biết có thứ gì dễ hay khó để thiết lập và triển khai mà không tự mình xây dựng nó.