ELKI (juga di GitHub ) adalah proyek sumber terbuka data mining dan ilmu data. Ini unik sehubungan dengan arsitektur modularnya: Anda dapat menggabungkan algoritma, fungsi jarak, dan indeks untuk akselerasi dengan sangat sedikit batasan (tentu saja, algoritma yang tidak menggunakan jarak tidak dapat digabungkan dengan jarak). Ini bukan kode termudah karena efisiensi. Untuk penggalian data, Anda perlu berhati-hati tentang memori - menggunakan ArrayList<Integer>
adalah jalan keluar jika Anda ingin skalabilitas.
Karena arsitektur modular, mudah untuk berkontribusi hanya modul kecil, seperti fungsi atau algoritma jarak tunggal.
Kami menyimpan daftar ide proyek penambangan data , yang secara kasar dikelompokkan berdasarkan kesulitan. Sebagian besar proyek adalah implementasi dari beberapa varian dari suatu algoritma. ELKI bertujuan untuk memungkinkan studi perbandingan algoritma, jadi kami mencoba untuk mengizinkan kombinasi apa pun, dan mencakup juga varian dari algoritma. Misalnya dengan k-means, kami tidak hanya memiliki algoritma Lloyds, tetapi 10 varian dari tema k-means umum. Lebih dari 220 artikel telah (setidaknya sebagian) diimplementasikan kembali di ELKI.
Dengan menerapkan semua yang ada di alat yang sama, kami mendapatkan hasil yang jauh lebih sebanding. Jika Anda menggunakan R untuk pembandingan, Anda biasanya membandingkan apel dan jeruk. k-means dalam R itu sendiri sebenarnya adalah program Fortran lama, dan sangat cepat. k-means dalam R tetapi dalam paket "flexclust" 100x lebih lambat, karena ditulis dalam kode R nyata. Jadi jangan percaya benchmark di R ... juga, modul R cenderung tidak kompatibel, jadi Anda sering tidak bisa menggunakan jarak A dari modul A dengan algoritma B dari modul B. di ELKI kami mencoba untuk membagikan kode sebanyak mungkin di seluruh implementasi untuk mengurangi artefak tersebut (tentu saja, tidak akan mungkin untuk memiliki tolok ukur yang adil 100% - selalu ada ruang untuk optimasi), tetapi juga untuk memungkinkan menggabungkan modul dengan mudah.
Anda bisa mulai dengan sesuatu yang kecil seperti varian Hartigan & Wong k-means, dan kemudian melanjutkan ke k-means bulat (yang dimaksudkan untuk data jarang, di mana berbagai optimasi kinerja mungkin diperlukan) dan terus menambahkan dukungan yang lebih baik untuk data kategori; atau menambahkan fungsi pengindeksan.
Saya juga ingin melihat UI yang lebih baik untuk ELKI , tetapi itu adalah upaya besar.