8

Tôi đang nghiên cứu khả năng bắt đầu một dự án khai phá dữ liệu sẽ bao gồm tính toán chuyên sâu và chuyển đổi dữ liệu, và nên tương đối dễ dàng để mở rộng quy mô.Có lý do nào để thích lập trình chức năng cho các dự án khai thác dữ liệu không?

Theo kinh nghiệm của bạn, việc chọn ngôn ngữ lập trình có quan trọng đối với dự án đã nói không?

Ví dụ: nếu tôi đã làm việc trên môi trường JVM, tôi có nên sử dụng Clojure trên Java thuần túy không? Môi trường chức năng có đảm bảo khả năng mở rộng dễ dàng hơn không? Hiệu suất tốt hơn?

Bỏ qua các yếu tố khác như quen thuộc với ngôn ngữ, chuỗi công cụ, v.v. Theo kinh nghiệm của bạn, việc chọn ngôn ngữ có phải là ngôn ngữ quan trọng không?

+3

Các yếu tố bạn "gạt sang một bên" * là * quan trọng. Nếu bạn bắt đầu học Clojure chỉ cho dự án này, bạn sẽ không áp dụng được sức mạnh của nó - trong trường hợp đó bạn chỉ có thể gắn bó với ví dụ: Java - hoặc mất rất nhiều thời gian mà nó sẽ có được thực sự tuyệt vời cho nhiệm vụ này để bù đắp cho thời gian bị mất. – delnan

Trả lời

16

Có một vài lý do chính đáng để chọn lập trình hàm cho các dự án khai phá dữ liệu.

  1. Thông thường các dự án khai thác dữ liệu liên quan đến algorithmics và toán học (hơn các loại khác của hệ thống) mà có thể được dễ dàng hơn hiện trong lập trình chức năng
  2. liệu dự án khai thác khoáng sản sẽ bao gồm chức năng tổng hợp - đó là tốt hơn trong chức năng lập trình , hãy nói Clojure
  3. Dữ liệu chương trình khai thác cũng sẽ có nhiều hơn phù hợp với song song - chắc chắn dữ liệu song song và thậm chí có thể nhiệm vụ xử lý song song, một lần nữa một sở trường của lập trình chức năng
  4. Và ngôn ngữ chức năng như Clojure có thể giao tiếp với java anyway cho I/O, tập đọc và ghi
  5. tôi nghĩ người ta có thể tìm hiểu chuỗi công cụ dễ dàng; nó không phải là khác nhau và do đó không phải là một yếu tố.

Tôi đã tự hỏi cùng một câu hỏi và đến với một chữ Có cho Clojure - tôi vẫn đang suy nghĩ về cách đưa R vào hỗn hợp.

+1

Ngoài ra, hoạt động khai thác dữ liệu có thể được xem như một chuỗi chuyển đổi dữ liệu, một cái gì đó mà ngôn ngữ lập trình chức năng là rất tốt tại –

+4

Nhìn vào Incanter của nó như R nhưng trong Clojure. – nickik

2

Không có lý do cụ thể. Chọn bất kỳ ngôn ngữ nào bạn cảm thấy thoải mái nhất.

Xem câu trả lời của tôi cho similar question about natural language processing. Tôi nghĩ rằng một số tính năng mà mọi người nghĩ rằng các ngôn ngữ không rõ ràng là phù hợp với AI thực sự phản tác dụng.

+0

"Tôi nghĩ rằng một số tính năng mà mọi người nghĩ rằng các ngôn ngữ không rõ ràng là phù hợp với AI thực sự phản tác dụng."<< Bạn có thể vui lòng giải thích về điều này, tốt nhất là với các ví dụ? – missingfaktor

+0

@missingfaktor: Xem câu trả lời tôi đã liên kết. –

0

Thông thường, các giải pháp lập trình chức năng có khả năng mở rộng hơn.

+0

Thậm chí thường xuyên hơn, chúng không phải là. –

3

Sử dụng ngôn ngữ mạnh nhất mà bạn cảm thấy thoải mái.

Trong mọi trường hợp, nếu bạn muốn có khả năng mở rộng, bạn cần phải thực hiện giảm bản đồ cho phép bạn so sánh và thu thập kết quả.

Các vấn đề liên quan