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.