Các dự án khoa học dữ liệu nguồn mở để đóng góp


14

Đóng góp vào các dự án nguồn mở thường là một cách tốt để có được một số thực hành cho người mới và thử một lĩnh vực mới cho các nhà khoa học và phân tích dữ liệu có kinh nghiệm.

Những dự án nào bạn đóng góp? Vui lòng cung cấp một số liên kết giới thiệu + trên Github.


2
Kiểm tra ELKI (trên github, Java; xem thêm Wikipedia). Tôi sử dụng điều này rất nhiều vì đây là dự án đầy đủ nhất để phát hiện cụm và bất thường; và thường là cách nhanh hơn R, quá.
Anony-Mousse -Reinstate Monica

Câu trả lời:


14

Các dự án Julia là một mà tôi tích cực đóng góp vào việc, bao gồm cả máy tính tiên tiến và các thư viện XGBoost. Vì vậy, tôi chắc chắn có thể bảo đảm cho sự duy trì và chất lượng của cộng đồng.

Một số dự án khoa học dữ liệu nguồn mở thực sự tốt mà ngay cả những người mới bắt đầu cũng có thể đóng góp là:

  • Sklearn : Luôn phát triển với tốc độ nhanh, cộng đồng sklearn luôn mở cửa cho các nhà phát triển và người đóng góp mới.
  • H2O : H2O là một dự án khoa học dữ liệu đang phát triển nhanh khác, hoạt động trên các giải pháp máy học có thể mở rộng và giải pháp Deep Learning.
  • Go : Tài nguyên lộ trình dữ liệu và bản đồ. Không thực sự là một dự án kỹ thuật, nhưng rất hữu ích cho người mới bắt đầu tuyệt đối và các nhà phân tích đầy tham vọng.
  • Pylearn2 : Một dự án Machine Learning và Deep Learning đang phát triển nhanh.
  • Vowpal Wợi : Dự án Vowpal Wợi (VW) là một hệ thống học tập nhanh chóng được tài trợ bởi Microsoft Research và (trước đây) Yahoo! Nghiên cứu.

Dưới đây là một cuộc thảo luận về Quora về các dự án như vậy và một số điều nữa không được đề cập trong câu trả lời này.

Đây là một cuộc thảo luận thú vị khác về các dự án Khoa học dữ liệu và ML nguồn mở trong Python.


2
Tôi xác nhận - rất dễ dàng để cam kết với sklearn, chỉ cần mở một yêu cầu kéo và đó là nó.
Alexey Grigorev

Pylearn2 không hoạt động nữa. Keras, lasagne và khối là lựa chọn tốt hơn để đóng góp.
SHASHANK GUPTA

6

Có rất nhiều trong số họ có sẵn. Tôi không biết liệu tôi có được phép làm điều này không (xin vui lòng cho tôi biết nếu nó sai), nhưng tôi đã phát triển một và nó đã hơn 2 năm trên git hub (nó thực sự đã bắt đầu một năm trước khi github). Dự án được gọi là rapaio, nằm trên git hub ở đây và gần đây tôi bắt đầu viết một hướng dẫn cho nó (một số bạn bè của tôi đã hỏi tôi về điều đó). Hướng dẫn có thể được tìm thấy ở đây .

Nó phù hợp với nhu cầu của bạn nếu bạn sẵn sàng phát triển trong Java 8, nếu bạn muốn tự mình làm bất kỳ công cụ nào và nếu bạn muốn thử nghiệm. Chỉ có hai nguyên tắc mà tôi thi hành. Đầu tiên là viết một cái gì đó chỉ khi bạn cần nó . Đó là bởi vì tôi tin tưởng mạnh mẽ rằng chỉ khi bạn cần một công cụ, bạn cũng biết bạn thực sự muốn gì từ nó về sản lượng, hiệu suất, thông tin. Nguyên tắc thứ hai là bạn chỉ phụ thuộc vào jdk, nếu bạn cần một cái gì đó bạn sẽ viết nó . Tôi có thể đồng ý rằng tôi lỗi thời, nhưng bạn có thể điều chỉnh bất kỳ tính năng nào cho mục đích của bạn theo cách này.

Nếu tôi không được phép làm điều đó như một cái gạt, một lần nữa, xin vui lòng cho tôi biết. Mặc dù, vì đó là một sáng kiến ​​nguồn mở, một cái gì đó trả lại cho những người không có loại dự án lợi nhuận mà tôi thấy không phải là lý do tại sao tôi không thể làm điều đó.


2
+1 Tôi nghĩ rằng đó là một dự án tuyệt vời cho ai đó đóng góp. Cảm ơn bạn đã chia sẻ. Atleast, tôi không nghĩ nó không liên quan :)
Dawny33

1
Bạn đã cân nhắc tham gia nỗ lực của mình với một trong nhiều dự án tương tự khác chưa? Nói, ELKI, Weka, JSAT, Smile, Hubminer, ... bạn đã điểm chuẩn chưa? Từ cái nhìn nhanh, tôi thấy một vài cấu trúc trông rất đắt đối với tôi (mặc dù có lẽ không tệ như R).
Anony-Mousse -Reinstate Monica

Mục tiêu của tôi là có một bộ công cụ thân thiện với lập trình viên, hiệu suất không phải là mục tiêu. Nhưng tôi bắt đầu đánh giá lại điều đó. Về các dự án khác: do vấn đề pháp lý, tôi không thể cam kết phân phối và tôi chỉ có thể đóng góp cho các dự án với một số loại giấy phép nguồn mở. Dù sao, cảm ơn bạn đã xem, tôi sẽ rất vui nếu bạn có thể cho tôi biết thêm chi tiết về các cấu trúc bạn đã đề cập. Tôi hy vọng thời gian của bạn bị hạn chế và tôi không dám có một cuộc thảo luận đầy đủ
rapaio

1
ELKI là AGPL-3. Nó không được phân phối, nhưng có một số tối ưu hóa ở mức độ thấp cho hiệu năng "cục bộ" cao (chưa có Java 8). JSAT, Smile, Hubminer - tất cả chúng đều là nguồn mở, có lẽ chủ yếu là apache, không được phân phối và không được tối ưu hóa nếu tôi không nhầm (tôi chủ yếu sử dụng ELKI).
Anony-Mousse -Reinstate Monica

4

ELKI (cũng trên GitHub ) là dự án khai thác dữ liệu và khoa học dữ liệu. Nó là duy nhất đối với kiến ​​trúc mô đun của nó: bạn có thể kết hợp các thuật toán, hàm khoảng cách và chỉ mục để tăng tốc với rất ít hạn chế (tất nhiên, các thuật toán không sử dụng khoảng cách không thể kết hợp với khoảng cách). Nó không phải là mã dễ nhất vì hiệu quả. Để khai thác dữ liệu, bạn cần cẩn thận về bộ nhớ - sử dụng ArrayList<Integer>là không nên nếu bạn muốn khả năng mở rộng.

Do kiến ​​trúc mô-đun, rất dễ dàng chỉ đóng góp các mô-đun nhỏ, như một hàm hoặc thuật toán khoảng cách duy nhất.

Chúng tôi giữ một danh sách các ý tưởng dự án khai thác dữ liệu , được phân nhóm theo độ khó. Hầu hết các dự án là việc thực hiện một số biến thể của một thuật toán. ELKI nhằm mục đích cho phép các nghiên cứu so sánh các thuật toán, vì vậy chúng tôi cố gắng cho phép mọi sự kết hợp và bao gồm cả các biến thể của thuật toán. Ví dụ với k-mean, chúng tôi không chỉ có thuật toán Lloyds, mà còn có 10 biến thể của chủ đề k-mean chung. Hơn 220 bài báo đã được (ít nhất là một phần) được thực hiện lại trong ELKI.

Bằng cách thực hiện mọi thứ trong cùng một công cụ, chúng tôi nhận được kết quả tương đương hơn nhiều. Nếu bạn sử dụng R để đo điểm chuẩn, bạn thường so sánh táo và cam. k-mean trong bản thân R thực sự là một chương trình Fortran cũ, và rất nhanh. k-nghĩa là trong R nhưng trong gói "flexclust" chậm hơn 100 lần, vì nó được viết bằng mã R thực. Vì vậy, đừng tin vào điểm chuẩn trong R ... cũng vậy, các mô-đun R có xu hướng không tương thích, vì vậy bạn thường không thể sử dụng khoảng cách A từ các mô-đun A với thuật toán B từ mô-đun B. trong ELKI, chúng tôi cố gắng chia sẻ nhiều mã như có thể trên các triển khai để giảm các tạo phẩm đó (tất nhiên, sẽ không bao giờ có thể có điểm chuẩn công bằng 100% - luôn có chỗ để tối ưu hóa), nhưng cũng cho phép kết hợp các mô-đun một cách dễ dàng.

Bạn có thể bắt đầu với một cái gì đó nhỏ như biến thể k-mean của Hartigan & Wong, rồi tiếp tục thành phương tiện k hình cầu (có nghĩa là cho dữ liệu thưa thớt, trong đó tối ưu hóa hiệu suất khác nhau có thể trở nên cần thiết) và tiếp tục hỗ trợ tốt hơn cho dữ liệu phân loại; hoặc thêm chức năng lập chỉ mục.

Tôi cũng muốn thấy một UI tốt hơn cho ELKI , nhưng đó là một nỗ lực lớn.


4

Nếu một người thích các công cụ lập trình trực quan đa nền tảng, Orange là một lựa chọn. Gần đây đã chuyển sang Python 3, họ vẫn chưa có tất cả các widget được chuyển. Nó mang ngăn xếp PyData (NumPy, SciPy, SciKit Learn, ...) lên Python 3, PyQt, PyQtGraph và đó là GPL trên GitHub .

Màn hình màu cam


3

Kiểm tra dự án này trên github: https://github.com/josephmisiti/awclaw-machine-learning . Nó chứa một danh sách toàn diện các dự án nguồn mở được nhóm theo ngôn ngữ, với một số mô tả ngắn. Tôi nghĩ rằng bạn có thể tìm thấy ở đó một số trong số họ đáp ứng nhu cầu của bạn.

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.