Công cụ khoa học dữ liệu sử dụng Scala


15

Tôi biết rằng Spark được tích hợp hoàn toàn với Scala. Trường hợp sử dụng dành riêng cho các tập dữ liệu lớn. Những công cụ khác có hỗ trợ Scala tốt? Scala có phù hợp nhất với các tập dữ liệu lớn hơn không? Hoặc nó cũng phù hợp cho các tập dữ liệu nhỏ hơn?


2
Bạn có muốn biết về các bộ công cụ Machine Learning như ví dụ FACTORIE không?
Erik Kaplun

Điều đó có vẻ liên quan đến câu hỏi của tôi, hãy chia sẻ thêm.
sheldonkreger

Câu trả lời:


11

Re: kích thước của dữ liệu

Câu trả lời ngắn

Scala hoạt động cho cả dữ liệu nhỏ và lớn, nhưng sự sáng tạo và phát triển của nó được thúc đẩy bằng cách cần một cái gì đó có thể mở rộng. Scala là từ viết tắt của Ngôn ngữ có thể mở rộng .

Câu trả lời dài

Scala là một ngôn ngữ lập trình chức năng chạy trên jvm . Phần 'chức năng' của điều này là một sự khác biệt cơ bản trong ngôn ngữ khiến bạn nghĩ khác về lập trình. Nếu bạn thích cách nghĩ đó, nó cho phép bạn nhanh chóng làm việc với dữ liệu nhỏ. Cho dù bạn có muốn hay không, các ngôn ngữ chức năng về cơ bản dễ dàng hơn để mở rộng quy mô. Đoạn jvm cũng rất quan trọng vì jvm về cơ bản ở khắp mọi nơi và do đó, mã Scala có thể chạy cơ bản ở mọi nơi. (Lưu ý có rất nhiều ngôn ngữ khác được viết trên jvm và rất nhiều ngôn ngữ lập trình chức năng khác và các ngôn ngữ ngoài Scala sẽ xuất hiện trong cả hai danh sách.)

Bài nói chuyện này cung cấp một cái nhìn tổng quan tốt về động lực đằng sau Scala.

Re: các công cụ khác có hỗ trợ Scala tốt:

Như bạn đã đề cập, Spark (xử lý hàng loạt phân phối tốt hơn ở các thuật toán lặp so với đối tác của nó) là một vấn đề lớn. Với Spark là các thư viện Mllib cho máy học và GraphX cho đồ thị. Như Erik Allik và Tris Nefzger đã đề cập, AkkaFactorie tồn tại. Ngoài ra còn có Chơi .

Nói chung, tôi không thể biết liệu có trường hợp sử dụng cụ thể nào mà bạn đang đào không (nếu vậy, hãy biến nó thành một phần câu hỏi của bạn) hoặc chỉ muốn khảo sát các công cụ dữ liệu lớn và tình cờ biết Scala một chút và muốn để bắt đầu từ đó



4

Từ việc nghe các bài thuyết trình của Martin Oderky, người tạo ra Scala, nó đặc biệt phù hợp để xây dựng các hệ thống có khả năng mở rộng cao bằng cách tận dụng các cấu trúc lập trình chức năng kết hợp với định hướng đối tượng và cú pháp dễ hiểu. Nó cũng hữu ích để phát triển các hệ thống nhỏ và tạo mẫu nhanh vì nó tốn ít dòng mã hơn một số ngôn ngữ khác và nó có chế độ tương tác để phản hồi nhanh. Một khung Scala đáng chú ý là Akka sử dụng mô hình diễn viên tính toán đồng thời. Nhiều bài thuyết trình của Oderky có trên YouTube và có một danh sách các công cụ được triển khai với Scala trên wiki.scala-lang.org.

Một điểm ngầm định là các công cụ và khung được viết bằng Scala vốn đã có tích hợp Scala và thường là API Scala. Sau đó, các API khác có thể được thêm vào để hỗ trợ các ngôn ngữ khác bắt đầu bằng Java vì Scala đã được tích hợp và trên thực tế phụ thuộc rất nhiều vào Java. Nếu một công cụ hoặc khung không được viết bằng Scala, không có khả năng nó cung cấp bất kỳ hỗ trợ nào cho Scala. Đó là lý do tại sao để trả lời câu hỏi của bạn, tôi đã chỉ ra các công cụ và khung được viết bằng Scala và Spark là một ví dụ. Tuy nhiên, Scala hiện có một thị phần nhỏ trên thị trường nhưng tỷ lệ chấp nhận của nó đang tăng lên và tốc độ tăng trưởng cao của Spark sẽ tăng cường điều đó. Lý do tôi sử dụng Scala là vì API của Spark dành cho Scala phong phú hơn API Java và Python.

Những lý do chính mà tôi thích Scala nói chung là vì nó biểu cảm hơn Java rất nhiều vì nó cho phép và tạo điều kiện cho việc sử dụng các hàm làm đối tượng và giá trị trong khi vẫn duy trì mô đun hướng đối tượng, cho phép phát triển các chương trình phức tạp và chính xác với ít mã hơn Java Tôi đã thích vì sử dụng rộng rãi, rõ ràng và tài liệu tuyệt vời.


1
Đây là thông tin tuyệt vời về Scala nói chung, nhưng tôi đang tìm kiếm thông tin về các công cụ hoặc khung khoa học dữ liệu cụ thể có tích hợp Scala và tại sao Scala là ngôn ngữ tốt cho những công cụ đó sử dụng.
sheldonkreger

0

Scala phù hợp cho cả ứng dụng khoa học dữ liệu lớn và nhỏ. Hãy xem xét DynaML nếu bạn muốn dùng thử thư viện máy học tích hợp tốt với Apache Spark. Nó vẫn còn ở giai đoạn sơ khai để nói về số lượng mô hình được cung cấp, nhưng nó bù lại bằng API học máy rộng và linh hoạt.

Để xem xét một số trường hợp sử dụng mẫu xem xét (nhiều hơn từ đó đến từ đâu)

  1. Nhận dạng hệ thống - Nhà máy điện Abott

Tuyên bố miễn trừ trách nhiệm: Tôi là tác giả của DynaML


Nếu đây là dự án của bạn, xin vui lòng lưu ý liên kết của bạn.
Sean Owen
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.